Hur du kopierar en Azure SQL Databas till en annan prenumeration

Azure SQL databaser kommer med inbyggd funktionalitet för backup och restore, men hur kopierar du en Azure SQL Database mellan prenumerationer? Det är faktiskt ganska snabbt och enkelt att göra. Jag skall beskriva hur i denna artikel.

Om du har använt on-premise SQL Server så har du förmodligen lärt dig att det enklaste sättet att kopiera en databas mellan servrar är att göra backup till en fil och sedan återställa backupfilen på mottagarservern. Tyvärr stödjer dock inte Azure SQL Databases backuper till eller återställning från filer.

Det finns en Copy database funktion i Azureportalen, men den kan bara kopiera inom samma prenumeration / resursgrupp.

Copy Azure SQL Database in Azure Portal

Kopiera din Azure SQL databas till en annan prenumeration

Det finns ett enkelt sätt att kopiera din Azure SQL databas till en annan prenumeration, men det kräver vissa förutsättningar:

  • Du kan inte göra det från Azureportalen. Du behöver använda ett verktyg såsom SQL Server Management Studio (som du kan ladda ned gratis).
  • I mottagande prenumeration så måste din databasserver ha samma användarnamn och lösenord för användarkontot som databasservern du kopierar ifrån.
  • Du måste använda SQL authentication när du loggar in.
  • Du måste se till att brandväggen är öppen så att du kan ansluta till både källdatabasen och mottagarsidan från SQL Server Management Studio.

Tricket är att logga in som administratör i mottagande databasserver och köra denna T-SQL sats:

1CREATE DATABASE [new_database_name] AS COPY OF [source_server_name].[source_database_name];

Notera hakparenteserna. De är nödvändiga om dina namn innehåller några specialtecken, såsom exempelvis minustecken.

Source_server_name är namnet på din databasserver i Azure. Till exempel om serveradressen är foo.database.windows.net, så är servernamnet foo. Servernamn är alltid globalt unika i Azure, så det finns inget behov att specificera namn på prenumeration eller något annat.

Kopian kommer att inkludera databasanvändare. Detta fungera bra om användarna är "fully contained users" (alltså att de har skapats med username/password direkt i databasen). Om de istället är kopplade till server logins så behöver du reda ut kopplingarna så att de kan kopplas till logins på din nya server.

Lycka till!

Relaterade Artiklar