Snabbstart: Säkerhetskopiering och återställning av SQL till S3-Compatible Object Storage

Gäller för: SQL Server 2022 (16.x)

Den här snabbstarten hjälper dig att förstå hur du skriver säkerhetskopior till och återställer från S3-kompatibel objektlagring.

Anmärkning

SQL Server 2022 introducerade stöd för säkerhetskopiering till och återställning från S3-kompatibel objektlagring. SQL Server 2019 och tidigare versioner stöder inte den här funktionen.

Förutsättningar

För att slutföra den här snabbstarten måste du känna till begreppen för säkerhetskopiering och återställning av SQL Server och Transact-SQL syntax (T-SQL). Du behöver en S3-slutpunkt, SQL Server Management Studio (SSMS) och åtkomst till antingen en server som kör SQL Server eller Azure SQL Managed Instance. Dessutom bör det konto som används för att utfärda kommandona BACKUP och RESTORE vara i databasrollen db_backupoperator med ALTER ANY CREDENTIAL-behörigheter och ha CREATE DATABASE-behörighet att ÅTERSTÄLLA till en ny databas, eller vara medlem i antingen den fasta serverrollen sysadmin och dbcreator eller ägaren (dbo) för databasen om den återställs över en befintlig databas.

Skapa en testdatabas

I det här steget skapar du en testdatabas med SQL Server Management Studio (SSMS).

  1. Starta SQL Server Management Studio (SSMS) och anslut till din SQL Server-instans.

  2. Öppna ett nytt frågefönster.

  3. Kör följande T-SQL-kod för att skapa testdatabasen. Uppdatera noden Databaser i Object Explorer för att se den nya databasen. Nyligen skapade databaser på SQL Managed Instance har automatiskt TDE aktiverat så du måste inaktivera det för att fortsätta.

    USE [master];
    GO
    
    -- Create database
    CREATE DATABASE [SQLTestDB];
    GO
    
    -- Create table in database
    USE [SQLTestDB];
    GO
    CREATE TABLE SQLTest (
        ID INT NOT NULL PRIMARY KEY,
        c1 VARCHAR(100) NOT NULL,
        dt1 DATETIME NOT NULL DEFAULT GETDATE()
    );
    GO
    
    -- Populate table 
    USE [SQLTestDB];
    GO
    
    INSERT INTO SQLTest (ID, c1) VALUES (1, 'test1');
    INSERT INTO SQLTest (ID, c1) VALUES (2, 'test2');
    INSERT INTO SQLTest (ID, c1) VALUES (3, 'test3');
    INSERT INTO SQLTest (ID, c1) VALUES (4, 'test4');
    INSERT INTO SQLTest (ID, c1) VALUES (5, 'test5');
    GO
    
    SELECT * FROM SQLTest;
    GO
    
    -- Disable TDE for newly-created databases on SQL Managed Instance 
    USE [SQLTestDB];
    GO
    ALTER DATABASE [SQLTestDB] SET ENCRYPTION OFF;
    GO
    DROP DATABASE ENCRYPTION KEY;
    GO
    

Skapa autentiseringsuppgifter

Följ dessa steg för att skapa SQL Server-autentiseringsuppgiften:

  1. Starta SQL Server Management Studio (SSMS) och anslut till din SQL Server-instans.

  2. Öppna ett nytt frågefönster.

  3. Skapa autentiseringsuppgifter på servernivå. Namnet på autentiseringsuppgifterna beror på den S3-kompatibla lagringsplattformen. Till skillnad från autentiseringsuppgifter med PolyBase-databasomfattning lagras autentiseringsuppgifter för säkerhetskopiering/återställning på instansnivå. När den används med S3-kompatibel lagring måste autentiseringsuppgifterna namnges enligt URL-sökvägen.

    CREATE CREDENTIAL [s3://<endpoint>:<port>/<bucket>]
    WITH
            IDENTITY    = 'S3 Access Key',
            SECRET      = '<AccessKeyID>:<SecretKeyID>';
    GO
    

Anmärkning

Fler exempel på S3-kompatibel lagring med serverautentiseringsuppgifter finns i CREATE CREDENTIAL (Transact-SQL).

Säkerhetskopiera databas

I det här steget säkerhetskopierar du databasen SQLTestDB till din S3-kompatibla objektlagring med hjälp av T-SQL.

Säkerhetskopiera databasen med hjälp av T-SQL genom att köra följande kommando:

USE [master];
GO

BACKUP DATABASE [SQLTestDB]
TO      URL = 's3://<endpoint>:<port>/<bucket>/SQLTestDB.bak'
WITH    FORMAT /* overwrite any existing backup sets */
,       STATS = 10
,       COMPRESSION;

Ta bort databas

I det här steget tar du bort databasen innan du utför återställningen. Det här steget är bara nödvändigt för den här självstudien och kommer sannolikt inte att användas i normala procedurer för databashantering. Du kan hoppa över det här steget, men sedan måste du antingen ändra namnet på databasen under återställningen på Azure SQL Managed Instance eller köra återställningskommandot WITH REPLACE för att återställa databasen lokalt.

  1. Expandera noden Databaser i Objektutforskaren, högerklicka på SQLTestDB databasen och välj Ta bort för att starta guiden Ta bort objekt .
  2. På Azure SQL Managed Instance väljer du OK för att ta bort databasen. Lokalt markerar du kryssrutan bredvid Stäng befintliga anslutningar och väljer sedan OK för att ta bort databasen.

Återställa databas

I det här steget återställer du databasen med antingen GUI i SQL Server Management Studio eller med Transact-SQL.

  1. Högerklicka på noden Databaser i Object Explorer i SQL Server Management Studio och välj Återställ databas.

  2. Välj Enhet och välj sedan ellipserna (...) för att välja enheten.

    Skärmbild som visar skärmen Välj återställ enhet.

  3. Välj URL i listrutan Typ av säkerhetskopieringsmedia och välj Lägg till för att lägga till enheten.

    Skärmbild som visar skärmen Lägg till säkerhetskopieringsenhet.

  4. Ange den virtuella värd-URL:en och klistra in det hemliga nyckel-ID:t och åtkomstnyckel-ID:t för den S3-kompatibla objektlagringen.

    Skärmbild av dialogrutan Välj plats för S3-säkerhetskopieringsfil med url- och nyckelfälten ifyllda.

  5. Välj OK för att välja platsen för säkerhetskopieringsfilen.

  6. Välj OK för att stänga dialogrutan Välj säkerhetskopieringsenheter .

  7. Välj OK för att återställa databasen.

Följande är en rekommenderad läsning för att förstå begreppen och metodtipsen när du använder S3-kompatibel objektlagring för SQL Server-säkerhetskopior.