Udostępnij za pośrednictwem


Migrowanie: program SQL Server do usługi SQL Managed Instance włączonej przez usługę Azure Arc

W tym scenariuszu przedstawiono kroki migracji bazy danych z wystąpienia programu SQL Server do wystąpienia zarządzanego usługi Azure SQL w usłudze Azure Arc za pomocą dwóch różnych metod tworzenia kopii zapasowych i przywracania.

Korzystanie z usługi Azure Blob Storage

Usługa Azure Blob Storage umożliwia migrowanie do usługi SQL Managed Instance włączonej przez usługę Azure Arc.

Ta metoda używa usługi Azure Blob Storage jako tymczasowej lokalizacji magazynu, z której można utworzyć kopię zapasową, a następnie przywrócić z.

Wymagania wstępne

Krok 1. Aprowizuj usługę Azure Blob Storage

  1. Wykonaj kroki opisane w temacie Tworzenie konta usługi Azure Blob Storage
  2. Uruchamianie Eksplorator usługi Azure Storage
  3. Zaloguj się do platformy Azure , aby uzyskać dostęp do magazynu obiektów blob utworzonych w poprzednim kroku
  4. Kliknij prawym przyciskiem myszy konto magazynu obiektów blob i wybierz polecenie Utwórz kontener obiektów blob, aby utworzyć nowy kontener, w którym będzie przechowywany plik kopii zapasowej

Krok 2. Pobieranie poświadczeń obiektu blob magazynu

  1. W Eksplorator usługi Azure Storage kliknij prawym przyciskiem myszy właśnie utworzony kontener obiektów blob i wybierz pozycję Pobierz sygnaturę dostępu współdzielonego

  2. Wybieranie pozycji Odczyt, Zapis i Lista

  3. Wybierz pozycję Utwórz

    Zanotuj identyfikator URI i ciąg zapytania z tego ekranu. Będą one potrzebne w kolejnych krokach. Kliknij przycisk Kopiuj, aby zapisać w Notatniku/programie OneNote itp.

  4. Zamknij okno Sygnatura dostępu współdzielonego.

Krok 3. Tworzenie kopii zapasowej pliku bazy danych w usłudze Azure Blob Storage

W tym kroku połączymy się ze źródłowym programem SQL Server i utworzymy plik kopii zapasowej bazy danych, którą chcemy przeprowadzić migrację do usługi SQL Managed Instance — Azure Arc.

  1. Uruchamianie narzędzia Azure Data Studio

  2. Nawiązywanie połączenia z wystąpieniem programu SQL Server, które ma bazę danych, którą chcesz przeprowadzić migrację do usługi SQL Managed Instance — Azure Arc

  3. Kliknij prawym przyciskiem myszy bazę danych i wybierz pozycję Nowe zapytanie

  4. Przygotuj zapytanie w następującym formacie, zastępując symbole zastępcze wskazane przy <...> użyciu informacji z sygnatury dostępu współdzielonego we wcześniejszych krokach. Po zastąpieniu wartości uruchom zapytanie.

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
       SECRET = '<SAS_TOKEN>';  
    
  5. Podobnie przygotuj polecenie BACKUP DATABASE w następujący sposób, aby utworzyć plik kopii zapasowej w kontenerze obiektów blob. Po zastąpieniu wartości uruchom zapytanie.

    BACKUP DATABASE <database name> TO URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  6. Otwórz Eksplorator usługi Azure Storage i sprawdź, czy plik kopii zapasowej utworzony w poprzednim kroku jest widoczny w kontenerze obiektów blob

Dowiedz się więcej o tworzeniu kopii zapasowej pod adresem URL tutaj:

Krok 4. Przywracanie bazy danych z usługi Azure Blob Storage do usługi SQL Managed Instance — Azure Arc

  1. W narzędziu Azure Data Studio zaloguj się i połącz się z wystąpieniem zarządzanym SQL — Azure Arc.

  2. Rozwiń węzeł Systemowe bazy danych, kliknij prawym przyciskiem myszy bazę danych master i wybierz pozycję Nowe zapytanie.

  3. W oknie edytora zapytań przygotuj i uruchom to samo zapytanie z poprzedniego kroku, aby utworzyć poświadczenia.

    IF NOT EXISTS  
    (SELECT * FROM sys.credentials
    WHERE name = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>')  
    CREATE CREDENTIAL [https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>]
      WITH IDENTITY = 'SHARED ACCESS SIGNATURE',  
      SECRET = '<SAS_TOKEN>';  
    
  4. Przygotuj i uruchom poniższe polecenie, aby sprawdzić, czy plik kopii zapasowej jest czytelny i nienaruszony.

    RESTORE FILELISTONLY FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    
  5. Przygotuj i uruchom polecenie RESTORE DATABASE w następujący sposób, aby przywrócić plik kopii zapasowej do bazy danych w usłudze SQL Managed Instance — Azure Arc

    RESTORE DATABASE <database name> FROM URL = 'https://<mystorageaccountname>.blob.core.windows.net/<mystorageaccountcontainername>/<file name>.bak'
    WITH MOVE 'Test' to '/var/opt/mssql/data/<file name>.mdf'
    ,MOVE 'Test_log' to '/var/opt/mssql/data/<file name>.ldf'
    ,RECOVERY;  
    GO
    

Metoda 2. Kopiowanie pliku kopii zapasowej do wystąpienia zarządzanego usługi Azure SQL — zasobnik usługi Azure Arc przy użyciu narzędzia kubectl

W tej metodzie pokazano, jak utworzyć plik kopii zapasowej za pomocą dowolnej metody, a następnie skopiować go do magazynu lokalnego w zasobniku wystąpienia zarządzanego usługi Azure SQL, aby można było przywrócić go z tego miejsca w typowym systemie plików w systemie Windows lub Linux. W tym scenariuszu użyjesz polecenia kubectl cp , aby skopiować plik z jednego miejsca do systemu plików zasobnika.

Wymagania wstępne

  • Instalowanie i konfigurowanie narzędzia kubectl w celu wskazania klastra Kubernetes, w którym są wdrażane usługi danych Azure Arc
  • Narzędzie, takie jak Azure Data Studio lub SQL Server Management Server, jest zainstalowane i połączone z programem SQL Server, w którym chcesz utworzyć plik kopii zapasowej LUB ma już istniejący plik .bak utworzony w lokalnym systemie plików.

Krok 1. Tworzenie kopii zapasowej bazy danych, jeśli jeszcze tego nie zrobiono

Utwórz kopię zapasową bazy danych programu SQL Server na ścieżkę pliku lokalnego, tak jak w przypadku dowolnego typowego tworzenia kopii zapasowej programu SQL Server na dysku:

BACKUP DATABASE Test
TO DISK = 'C:\Backupfiles\test.bak'
WITH FORMAT, MEDIANAME = 'Test' ;
GO

Krok 2. Kopiowanie pliku kopii zapasowej do systemu plików zasobnika

Znajdź nazwę zasobnika, w którym jest wdrażane wystąpienie sql. Zazwyczaj powinna wyglądać następująco: pod/<sqlinstancename>-0

Pobierz listę wszystkich zasobników, uruchamiając polecenie:

kubectl get pods -n <namespace of data controller>

Przykład:

Skopiuj plik kopii zapasowej z magazynu lokalnego do zasobnika SQL w klastrze.

kubectl cp <source file location> <pod name>:var/opt/mssql/data/<file name> -n <namespace name> -c arc-sqlmi

#Example:
kubectl cp C:\Backupfiles\test.bak sqlinstance1-0:var/opt/mssql/data/test.bak -n arc -c arc-sqlmi

Krok 3. Przywracanie bazy danych

Przygotuj i uruchom polecenie RESTORE, aby przywrócić plik kopii zapasowej do wystąpienia zarządzanego usługi Azure SQL — Azure Arc

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/<file name>.bak'
WITH MOVE '<database name>' to '/var/opt/mssql/data/<file name>.mdf'  
,MOVE '<database name>' to '/var/opt/mssql/data/<file name>_log.ldf'  
,RECOVERY;  
GO

Przykład:

RESTORE DATABASE test FROM DISK = '/var/opt/mssql/data/test.bak'
WITH MOVE 'test' to '/var/opt/mssql/data/test.mdf'  
,MOVE 'test' to '/var/opt/mssql/data/test_log.ldf'  
,RECOVERY;  
GO

Dowiedz się więcej o funkcjach i możliwościach usługi SQL Managed Instance włączonej przez usługę Azure Arc

Zacznij od utworzenia kontrolera danych

Tworzenie wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc