Quantcast
Channel: Microsoft Dynamics NAV
Viewing all articles
Browse latest Browse all 64865

Blog Post: NAV 2013 R2: Migrating from Multi-Tenancy back to Single-Tenancy

$
0
0

A lot has been written about how to migrate from Single Tenancy to Multi-Tenancy. Video’s have been created, blogs have been written, Sessions have been given.. . The question that I always get – is “what about the other way around?”. So, how do I migrate back to a Single Tenant Environment?

I’ve spend some time to sort this out for you. And it wasn’t that difficult. In fact, it’s easy and logical. Just one trick to realize: when you export an app, it’s not only possible to export it to a new database, but it’s also possible to “export” it to an existing database.

So basically, migrating a Tenant to a Single Tenant database, means:

  1. Dismounting the Tenant
  2. “Export” the app to that Tenant database
  3. Start a server in Single Tenancy mode to that database

Or .. when you want to move a complete Multi Tenant environment to a Single Tenancy Environment, it’s quite the same:

  1. Move all companies (or the ones you want to convert to a single tenancy database) from all tenants to one (new) tenant
  2. Do the exact same as above with this tenant

As I said, the real trick is the export of the application to the tenant that you want to migrate.. . I wrote a script for that:

function HowTo-ConvertTenantToSingleTenantDb

{

[CmdletBinding()]

param (

[parameter(Mandatory=$true)]

[String]$SourceServerInstance,

[parameter(Mandatory=$true)]

[String]$SourceTenantId

)

PROCESS

{

$SourceTenant = Get-NAVTenant -ServerInstance $SourceServerInstance -Tenant $SourceTenantId

$SourceApp = Get-NAVApplication -ServerInstance $SourceServerInstance

Dismount-NAVTenant -ServerInstance $SourceServerInstance -Tenant $SourceTenantId -Force

Export-NAVApplication -DatabaseServer $SourceApp.’Database server’ -DatabaseName $SourceApp.’Database name’ -DestinationDatabaseName $SourceTenant.DatabaseName -Force

}

}

This script is creating a function that needs two parameters: the SourceServerInstance and the SourceTenantID. And then, it will create a Single Tenant Database of that tenant. You can use this “function” in a script like this:

$SourceServerInstance = “DynamicsNAV71″

$SourceTenantId = “prscompany”

$SourceTenant = Get-NAVTenant -ServerInstance $SourceServerInstance -Tenant $SourceTenantId -ErrorAction Stop

HowTo-ConvertTenantToSingleTenantDb -SourceServerInstance $SourceServerInstance -SourceTenantId $SourceTenantId -ErrorAction Stop -verbose

$DestinationServerInstance = “NewSingleTenant”

Remove-NAVServerInstance -ServerInstance $DestinationServerInstance -Force

New-NAVServerInstance -ServerInstance $DestinationServerInstance -ManagementServicesPort 8045 -ClientServicesPort 8046 -SOAPServicesPort 8047 -ODataServicesPort 8048 -DatabaseServer $SourceTenant.DatabaseServer -DatabaseName $SourceTenant.DatabaseName -Force

Set-NAVServerInstance -ServerInstance $DestinationServerInstance -stop

Set-NAVServerConfiguration -ServerInstance $DestinationServerInstance -KeyName MultiTenant -KeyValue “false”

Set-NAVServerInstance -ServerInstance $DestinationServerInstance -start

The script above is going to convert a tenant to a Single Tenancy database, and going to set up a new (Single Tenant) ServerInstance for that database.. .

Enjoy!



Viewing all articles
Browse latest Browse all 64865

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>