Wykonywanie przywracania do punktu w czasie

Użyj przywracania do punktu w czasie (PITR), aby utworzyć bazę danych jako kopię innej bazy danych z jakiegoś czasu w przeszłości, która znajduje się w okresie przechowywania. W tym artykule opisano sposób wykonywania przywracania bazy danych do punktu w czasie w wystąpieniu zarządzanym SQL włączonym przez usługę Azure Arc.

Przywracanie do punktu w czasie może przywrócić bazę danych:

  • Z istniejącej bazy danych
  • W nowej bazie danych w tym samym wystąpieniu zarządzanym SQL włączonym przez usługę Azure Arc

Bazę danych można przywrócić do punktu w czasie w ramach wstępnie skonfigurowanego ustawienia przechowywania. Możesz sprawdzić ustawienie przechowywania dla wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc w następujący sposób:

W przypadku trybu bezpośredniego połączenia:

az sql mi-arc show --name <SQL instance name> --resource-group <resource-group>
#Example
az sql mi-arc show --name sqlmi --resource-group myresourcegroup

W przypadku trybu połączenia pośredniego :

az sql mi-arc show --name <SQL instance name> --k8s-namespace <SQL MI namespace> --use-k8s
#Example
az sql mi-arc show --name sqlmi --k8s-namespace arc --use-k8s

Obecnie przywracanie do punktu w czasie może przywrócić bazę danych:

  • Z istniejącej bazy danych na wystąpieniu
  • Do nowej bazy danych w tym samym wystąpieniu

Automatyczne kopie zapasowe

Usługa SQL Managed Instance włączona przez usługę Azure Arc ma wbudowaną funkcję automatycznego tworzenia kopii zapasowych. Za każdym razem, gdy tworzysz lub przywracasz nową bazę danych, usługa SQL Managed Instance włączona przez usługę Azure Arc natychmiast inicjuje pełną kopię zapasową i automatycznie planuje różnicowe i transakcyjne kopie zapasowe dziennika. Wystąpienie zarządzane SQL przechowuje te kopie zapasowe w klasie magazynu określonej podczas wdrażania.

Przywracanie do punktu w czasie umożliwia przywrócenie bazy danych do określonego punktu w czasie w okresie przechowywania. Aby przywrócić bazę danych do określonego punktu w czasie, usługi danych z obsługą usługi Azure Arc stosują pliki kopii zapasowych w określonej kolejności. Na przykład:

  1. Pełna kopia zapasowa
  2. Różnicowa kopia zapasowa
  3. Co najmniej jedna kopia zapasowa dziennika transakcji

Point-in-time restore

Obecnie pełne kopie zapasowe są wykonywane raz w tygodniu, różnicowe kopie zapasowe są wykonywane co 12 godzin, a kopie zapasowe dziennika transakcji co 5 minut.

Okres utrzymania

Domyślny okres przechowywania dla nowego wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc wynosi siedem dni i można go dostosować przy użyciu wartości 0 lub 1–35 dni. Okres przechowywania można ustawić podczas wdrażania wystąpienia zarządzanego SQL, określając --retention-days właściwość . Pliki kopii zapasowej starsze niż skonfigurowany okres przechowywania są automatycznie usuwane.

Tworzenie bazy danych z punktu w czasie przy użyciu polecenia az CLI

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s

Możesz również użyć --dry-run opcji , aby zweryfikować operację przywracania bez faktycznego przywrócenia bazy danych.

az sql midb-arc restore --managed-instance <SQL managed instance> --name <source DB name> --dest-name <Name for new db> --k8s-namespace <namespace of managed instance> --time "YYYY-MM-DDTHH:MM:SSZ" --use-k8s --dry-run
#Example
az sql midb-arc restore --managed-instance sqlmi1 --name Testdb1 --dest-name mynewdb --k8s-namespace arc --time "2021-10-29T01:42:14.00Z" --use-k8s --dry-run

Tworzenie bazy danych z punktu w czasie przy użyciu narzędzia kubectl

  1. Aby przeprowadzić przywracanie do punktu w czasie za pomocą narzędzi natywnych platformy Kubernetes, możesz użyć polecenia kubectl. Utwórz plik yaml specyfikacji zadania. Na przykład:

    apiVersion: tasks.sql.arcdata.microsoft.com/v1
    kind: SqlManagedInstanceRestoreTask                 
    metadata:                                       
      name: myrestoretask20220304
      namespace: test                              
    spec:                                           
      source:                                       
        name: miarc1                                
        database: testdb                            
      restorePoint: "2021-10-12T18:35:33Z"          
      destination:                                  
        name: miarc1                           
        database: testdb-pitr
      dryRun: false  
    
  2. Edytuj właściwości w następujący sposób:

    1. name: Unikatowy ciąg dla każdego zasobu niestandardowego (CR). Wymagane przez platformę Kubernetes.
    2. namespace: Przestrzeń nazw kubernetes, w której znajduje się wystąpienie.
    3. source: ... name: Nazwa wystąpienia źródłowego.
    4. source: ... database: Nazwa źródłowej bazy danych, z której będzie stosowane przywracanie.
    5. restorePoint: Punkt w czasie operacji przywracania w formacie UTC datetime.
    6. destination: ... name: Nazwa docelowego wystąpienia zarządzanego SQL z obsługą usługi Arc. Obecnie przywracanie do punktu w czasie jest obsługiwane tylko w wystąpieniu zarządzanym usługi Arc SQL. Powinno to być takie samo jak źródłowe wystąpienie zarządzane SQL.
    7. destination: ... database: Nazwa nowej bazy danych, do której ma zostać zastosowane przywracanie.
  3. Utwórz zadanie uruchamiania przywracania do punktu w czasie. Poniższy przykład inicjuje zadanie zdefiniowane w pliku myrestoretask20220304.yaml.

    kubectl apply -f myrestoretask20220304.yaml
    
  4. Sprawdź stan zadania przywracania w następujący sposób:

    kubectl get sqlmirestoretask -n <namespace>
    

Stan zadania przywracania będzie aktualizowany co 10 sekund na podstawie postępu przywracania do punktu w czasie. Stan przechodzi z Waiting do do Restoring lub CompletedFailed.

Tworzenie bazy danych z punktu w czasie przy użyciu narzędzia Azure Data Studio

Bazę danych można również przywrócić do punktu w czasie z usługi Azure Data Studio w następujący sposób:

  1. Uruchamianie narzędzia Azure Data Studio
  2. Upewnij się, że masz wymagane rozszerzenia Arc zgodnie z opisem w temacie Narzędzia.
  3. Połączenie do kontrolera danych usługi Azure Arc
  4. Rozwiń węzeł kontrolera danych, kliknij prawym przyciskiem myszy wystąpienie i wybierz polecenie Zarządzaj. Usługa Azure Data Studio uruchamia pulpit nawigacyjny wystąpienia zarządzanego SQL.
  5. Kliknij kartę Kopie zapasowe na pulpicie nawigacyjnym
  6. Powinna zostać wyświetlona lista baz danych w wystąpieniu zarządzanym SQL oraz ich najwcześniejszych i najnowszych oknach czasu przywracania oraz ikona inicjowania przywracania
  7. Kliknij ikonę bazy danych, z której chcesz przywrócić bazę danych. Usługa Azure Data Studio uruchamia blok w kierunku prawej strony
  8. Podaj wymagane dane wejściowe w bloku i kliknij pozycję Przywróć

Monitorowanie postępu

Po zainicjowaniu przywracania zadanie jest tworzone w klastrze Kubernetes, które wykonuje rzeczywiste operacje przywracania pełnych, różnicowych i kopii zapasowych dziennika. Postęp tego działania można monitorować z poziomu klastra Kubernetes w następujący sposób:

kubectl get sqlmirestoretask -n <namespace>
#Example
kubectl get sqlmirestoretask -n arc

Więcej szczegółów zadania można uzyskać, uruchamiając kubectl describe polecenie w zadaniu. Na przykład:

kubectl describe sqlmirestoretask <nameoftask> -n <namespace>

Konfigurowanie okresu przechowywania

Okres przechowywania dla wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc można ponownie skonfigurować z oryginalnego ustawienia w następujący sposób:

Ostrzeżenie

Jeśli zmniejszysz bieżący okres przechowywania, utracisz możliwość przywracania do punktów w czasie starszym niż nowy okres przechowywania. Kopie zapasowe, które nie są już potrzebne do zapewnienia przywracania do punktu w czasie dla nowego okresu przechowywania, są usuwane. Jeśli zwiększysz bieżący okres przechowywania, nie uzyskasz od razu możliwości przywrócenia do starszych punktów w czasie w ramach nowego okresu przechowywania. W miarę upływu czasu system zaczyna przechowywać kopie zapasowe na dłużej.

Element --retention-period można zmienić dla usługi SQL Managed Instance-Azure Arc w następujący sposób. Poniższe polecenie dotyczy zarówno trybów, jak direct i indirect połączonych.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days <retentiondays>

Na przykład:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 10

Wyłączanie automatycznych kopii zapasowych

Wbudowane automatyczne kopie zapasowe dla określonego wystąpienia usługi SQL Managed Instance włączone przez usługę Azure Arc można wyłączyć, ustawiając --retention-days właściwość na 0 w następujący sposób. Poniższe polecenie dotyczy trybów direct i .indirect

Ostrzeżenie

Jeśli wyłączysz automatyczne kopie zapasowe dla wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc, wszystkie skonfigurowane automatyczne kopie zapasowe zostaną usunięte i utracisz możliwość wykonywania przywracania do punktu w czasie. W razie potrzeby możesz zmienić właściwość w retention-days celu ponownego zainicjowania automatycznych kopii zapasowych.

az sql mi-arc update  --name <SQLMI name> --k8s-namespace <namespace>  --use-k8s --retention-days 0

Na przykład:

az sql mi-arc update  --name sqlmi --k8s-namespace arc  --use-k8s --retention-days 0

Monitorowanie kopii zapasowych

Kopie zapasowe są przechowywane w /var/opt/mssql/backups/archived/<dbname>/<datetime> folderze, gdzie <dbname> jest nazwą bazy danych i <datetime> będzie sygnaturą czasową w formacie UTC, na początku każdej pełnej kopii zapasowej. Za każdym razem, gdy zostanie zainicjowana pełna kopia zapasowa, zostanie utworzony nowy folder z pełnym powrotem i wszystkimi kolejnymi kopiami zapasowymi dziennika różnicowego i transakcyjnego w tym folderze. Najbardziej aktualna pełna kopia zapasowa, a kolejne różnicowe i transakcyjne kopie zapasowe dziennika są przechowywane w /var/opt/mssql/backups/current/<dbname><datetime> folderze.

Ograniczenia

Przywracanie do punktu w czasie w usłudze SQL Managed Instance włączone przez usługę Azure Arc ma następujące ograniczenia:

  • Przywracanie do punktu w czasie to funkcja na poziomie bazy danych, a nie funkcja na poziomie wystąpienia. Nie można przywrócić całego wystąpienia z przywracaniem do punktu w czasie.
  • Możesz przywrócić tylko do tego samego wystąpienia zarządzanego SQL włączonego przez usługę Azure Arc, z którego utworzono kopię zapasową.

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