要点を直視すると、これは可能ですか?
同じサブスクリプション内でAzure SQLデータベースを正常にコピーしました。その際、データベースを同じサーバー(サブスクリプション内)にコピーすることで、データベースをシンプルに保ちました。 PowershellコマンドAdd-AzureRmAccount
とNew-AzureRmSqlDatabaseCopy
を使用しました。
Add-AzureRmAccount
コマンドを2回(サブスクリプションごとに1回)実行しようとしましたが、New-AzureRmSqlDatabaseCopy
コマンドが指定されたリソースグループ(ソースサブスクリプションに存在する)を見つけられないことを報告するため、これはコンテキストの最初のサブスクリプションを2番目のサブスクリプションに置き換えます。
つまり、これが可能である場合、実行する必要がある手順/コマンドは何ですか?
別のリソースグループに新しいAzure SQL Serverを作成します。
New-AzureSqlDatabaseServer -Location "East US" -AdministratorLogin "AdminLogin" -AdministratorLoginPassword "AdminPassword"
ソースデータベースを新しく作成したAzure SQL Serverにコピーします。
Start-AzureSqlDatabaseCopy -ServerName "SourceServer" -DatabaseName "Orders" -PartnerServer "NewlyCreatedServer" -PartnerDatabase "OrdersCopy"
新しく作成したAzure SQL Serverのリソースグループを別のサブスクリプションに移動します。
Move-AzureRmResource -DestinationResourceGroupName [-DestinationSubscriptionId] -ResourceId [-Force] [-ApiVersion] [-Pre] [-DefaultProfile] [-InformationAction] [-InformationVariable] [-WhatIf] [-Confirm] []
別のオプションは、Stackoverflowで Richard Hauerの回答 に従ってCREATE DATABASE
を使用することです(SQL Server Management Studio v17.5から実行しました)。
CREATE DATABASE db_copy AS COPY OF ozabzw7545.db_original;
重要な注意事項:
サーバーは同じテナント上にあり、Azure PowerShellコンソール経由で次のように確認されました。
(Get-AzureRmSubscription -SubscriptionName <your-source-subscription>).TenantId
(Get-AzureRmSubscription -SubscriptionName <your-destination-subscription>).TenantId
次の方法で進行状況を監視できます。
SELECT state_desc, name
FROM sys.databases
参照リンク:
Start-AzureSqlDatabaseCopy
はNew-AzureRmSqlDatabaseCopy
に名前が変更されました
New-AzureRmSqlDatabaseCopy
[-DatabaseName] <String>
[-Tags <Hashtable>]
[-CopyResourceGroupName <String>]
[-CopyServerName <String>]
-CopyDatabaseName <String>
[-AsJob]
-ComputeGeneration <String>
-VCore <Int32>
[-LicenseType <String>]
[-ServerName] <String>
[-ResourceGroupName] <String>
[-DefaultProfile <IAzureContextContainer>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]