Säkerhetskopiera SQL-databaser i virtuella Azure-datorer med Hjälp av Azure CLI
Azure CLI används för att skapa och hantera Azure-resurser från kommandoraden eller via skript. Den här artikeln beskriver hur du säkerhetskopierar en SQL-databas på en virtuell Azure-dator och utlöser säkerhetskopieringar på begäran med Hjälp av Azure CLI. Du kan också utföra dessa åtgärder med hjälp av Azure Portal.
Den här artikeln förutsätter att du redan har en SQL-databas installerad på en virtuell Azure-dator. (Du kan också skapa en virtuell dator med Hjälp av Azure CLI).
I den här artikeln får du lära dig att:
- Skapa ett Recovery Services-valv
- Registrera SQL Server och identifiera databaser på den
- Aktivera säkerhetskopiering på en SQL-databas
- Utlösa en säkerhetskopiering på begäran
Se de scenarier som stöds för SQL på en virtuell Azure-dator.
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Skapa ett Recovery Services-valv
Ett Recovery Services-valv är en logisk container som lagrar säkerhetskopieringsdata för varje skyddad resurs, till exempel virtuella Azure-datorer eller arbetsbelastningar som körs på virtuella Azure-datorer, till exempel SQL- eller HANA-databaser. När säkerhetskopieringsjobbet för en skyddad resurs körs, skapas en återställningspunkt i Recovery Services-valvet. Du kan sedan använda någon av dessa återställningspunkter för att återställa data till en given tidpunkt.
Skapa ett Recovery Services-valv med kommandot az backup vault create . Använd resursgruppen och platsen som för den virtuella dator som du vill skydda. Lär dig hur du skapar en virtuell Windows-dator och en virtuell Linux-dator med Hjälp av Azure CLI.
I den här artikeln använder vi:
- En resursgrupp med namnet SQLResourceGroup
- En virtuell dator med namnet testSQLVM
- Resurser på platsen westus2 .
Kör följande kommando för att skapa ett valv med namnet SQLVault.
az backup vault create --resource-group SQLResourceGroup \
--name SQLVault \
--location westus2
Recovery Services-valvet är som standard inställt på geo-redundant lagring. Geo-redundant lagring säkerställer att dina säkerhetskopierade data replikeras till en sekundär Azure-region även om det är hundratals mil från den primära regionen. Om inställningen för lagringsredundans behöver ändras använder du kommandot az backup vault backup-properties set .
az backup vault backup-properties set \
--name SQLVault \
--resource-group SQLResourceGroup \
--backup-storage-redundancy "LocallyRedundant/GeoRedundant"
Om du vill kontrollera om valvet har skapats använder du kommandot az backup vault list . Svaret visas som:
Location Name ResourceGroup
--------- --------------- -------------
westus2 SQLVault SQLResourceGroup
Registrera och skydda SQL Server
Om du vill registrera SQL Server med Recovery Services-valvet använder du kommandot az backup container register . VMResourceId är resurs-ID för den virtuella dator som du skapade för att installera SQL.
az backup container register --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--resource-id VMResourceId
Kommentar
Om den virtuella datorn inte finns i samma resursgrupp som valvet använder SQLResourceGroup resursgruppen där valvet skapades.
Registrering av SQL-servern identifierar automatiskt alla dess aktuella databaser. Men om du vill identifiera nya databaser som kan läggas till i framtiden kan du läsa avsnittet Identifiera nya databaser som har lagts till i den registrerade SQL-servern .
Använd kommandot az backup container list för att kontrollera om SQL-instansen har registrerats med valvet. Svaret visas som:
Name Friendly Name Resource Group Type Registration Status
------------------------------------------------------ -------------- -------------------- --------- ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM testSQLVM SQLResourceGroup AzureWorkload Registered
Kommentar
Kolumnnamnet i ovanstående utdata refererar till containernamnet. Det här containernamnet används i nästa avsnitt för att aktivera säkerhetskopior och utlösa dem. Till exempel VMAppContainer; Beräkna; SQLResourceGroup; testSQLVM.
Aktivera säkerhetskopiering i SQL-databasen
Kommandot az backup protectable-item list list (az backup protectable-item list ) visar alla databaser som identifierades på SQL-instansen som du registrerade i föregående steg.
az backup protectable-item list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--workload-type SQLDataBase \
--backup-management-type AzureWorkload \
--protectable-item-type SQLDataBase
--output table
Du bör hitta databasen i den här listan som du vill säkerhetskopiera, som visas som:
Name Protectable Item Type ParentName ServerName IsProtected
----------------------------- ---------------------- ------------ ----------- ------------
sqldatabase;mssqlserver;master SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;model SQLDataBase MSSQLServer testSQLVM NotProtected
sqldatabase;mssqlserver;msdb SQLDataBase MSSQLServer testSQLVM NotProtected
Konfigurera nu säkerhetskopiering för sqldatabase. mssqlserver; huvuddatabas .
Om du vill konfigurera och skydda säkerhetskopior på en databas använder du kommandot az backup protection enable-for-azurewl . Ange namnet på den princip som du vill använda. Om du vill skapa en princip med CLI använder du kommandot az backup policy create . I den här artikeln har vi använt principen testSQLPolicy .
az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqldatabase;mssqlserver;master" \
--protectable-item-type SQLDataBase \
--server-name testSQLVM \
--workload-type SQLDataBase \
--output table
Du kan använda samma kommando om du har en SQL AlwaysOn-tillgänglighetsgrupp och vill identifiera den skyddade datakällan i tillgänglighetsgruppen. Här är den skyddsbara objekttypen SQLAG.
Kontrollera om säkerhetskopieringskonfigurationen ovan är klar med kommandot az backup job list . Utdata visas som:
Name Operation Status Item Name Start Time UTC
------------------------------------ --------------- --------- ---------- -------------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 ConfigureBackup Completed master 2019-12-03T03:09:210831+00:00
Kommandot az backup job list list all backup jobs (scheduled or on-demand) that have run or are currently running on the protected database, as addition to other operations, such as register, configure backup, and delete backup data.
Kommentar
Azure Backup justeras inte automatiskt för ändringar av sommartid när du säkerhetskopierar en SQL-databas som körs på en virtuell Azure-dator.
Ändra principen manuellt efter behov.
Aktivera automatiskt skydd
För sömlös säkerhetskopieringskonfiguration kan alla databaser som läggs till i framtiden automatiskt skyddas med en viss princip. Om du vill aktivera automatiskt skydd använder du kommandot az backup protection auto-enable-for-azurewl .
Eftersom instruktionen är att säkerhetskopiera alla framtida databaser utförs åtgärden på SQLInstance-nivå.
az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--policy-name SQLPolicy \
--protectable-item-name "sqlinstance;mssqlserver" \
--protectable-item-type SQLInstance \
--server-name testSQLVM \
--workload-type MSSQL\
--output table
Utlösa en säkerhetskopiering på begäran
Om du vill utlösa en säkerhetskopiering på begäran använder du kommandot az backup protection backup-now .
Kommentar
Kvarhållningsperioden för den här säkerhetskopian bestäms av vilken typ av säkerhetskopiering på begäran du har kört.
- Full på begäran behåller säkerhetskopior i minst 45 dagar och högst 99 år.
- Vid kopiering på begäran godkänns endast alla värden för kvarhållning.
- Differentiella skillnader på begäran behåller säkerhetskopieringen enligt kvarhållningen av schemalagda differentier som anges i principen.
- Loggen på begäran behåller säkerhetskopior enligt kvarhållningen av schemalagda loggar som angetts i principen.
az backup protection backup-now --resource-group SQLResourceGroup \
--item-name sqldatabase;mssqlserver;master \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--backup-type Full
--retain-until 01-01-2040
--output table
Utdata visas som:
Name ResourceGroup
------------------------------------ -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3 sqlResourceGroup
Svaret ger dig jobbnamnet. Du kan använda det här jobbnamnet för att spåra jobbstatusen med kommandot az backup job show .