web-dev-qa-db-fra.com

Copier la base de données Azure SQL entre les abonnements Azure

Pour aller droit au but, est-ce même possible?

J'ai copié avec succès une base de données Azure SQL dans le même abonnement. Ce faisant, je suis resté simple en copiant la base de données sur le même serveur (dans l'abonnement). J'ai utilisé les commandes Powershell Add-AzureRmAccount Et New-AzureRmSqlDatabaseCopy.

J'ai essayé d'exécuter le Add-AzureRmAccount Deux fois (une fois pour chaque abonnement) mais cela semble remplacer le premier abonnement par le second dans le contexte car la commande New-AzureRmSqlDatabaseCopy Signale qu'elle ne peut pas trouver le groupe de ressources spécifié (qui existe dans l'abonnement source).

Cela dit, si c'est quelque chose qui est possible, quelles sont les étapes/commandes que je dois exécuter?

5
Jason Richmeier

Créez un nouveau Azure SQL Server sur un autre groupe de ressources.

New-AzureSqlDatabaseServer -Location "East US" -AdministratorLogin "AdminLogin" -AdministratorLoginPassword "AdminPassword"

Copiez la base de données source sur Azure SQL Server nouvellement créé.

Start-AzureSqlDatabaseCopy -ServerName "SourceServer" -DatabaseName "Orders" -PartnerServer "NewlyCreatedServer" -PartnerDatabase "OrdersCopy"

Déplacez le groupe de ressources d'Azure SQL Server nouvellement créé vers un autre abonnement.

Move-AzureRmResource -DestinationResourceGroupName [-DestinationSubscriptionId] -ResourceId [-Force] [-ApiVersion] [-Pre] [-DefaultProfile] [-InformationAction] [-InformationVariable] [-WhatIf] [-Confirm] []

2
Alberto Morillo

Une autre option consiste à utiliser CREATE DATABASE, selon réponse de Richard Hauer sur Stackoverflow (que j'ai exécuté à partir de SQL Server Management Studio v17.5):

CREATE DATABASE db_copy AS COPY OF ozabzw7545.db_original;

Quelques notes importantes:

  • Le compte d'administrateur SQL et le mot de passe étaient les mêmes sur les deux serveurs.
  • Les serveurs étaient dans différents abonnements.
  • Les serveurs étaient sur le même locataire, vérifiés via la console Azure PowerShell avec:

    (Get-AzureRmSubscription -SubscriptionName <your-source-subscription>).TenantId 
    (Get-AzureRmSubscription -SubscriptionName <your-destination-subscription>).TenantId
    

Vous pouvez suivre les progrès avec:

SELECT state_desc, name 
FROM sys.databases 

Liens de référence:

2
Colin K

Start-AzureSqlDatabaseCopy a été renommé 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>]

tilisation d'Azure pour créer une copie de la base de données SQL à partir d'un instantané

0
inspite