Udostępnij za pośrednictwem


Najlepsze rozwiązania dotyczące linków usługi Managed Instance — Azure SQL Managed Instance

Dotyczy: Azure SQL Managed Instance

W tym artykule opisano najlepsze rozwiązania dotyczące używania linku wystąpienia zarządzanego do replikowania danych między usługą Azure SQL Managed Instance i wystąpieniami programu SQL Server hostowanymi w dowolnym miejscu, zapewniając replikację danych niemal w czasie rzeczywistym między połączonymi replikami.

Regularne wykonywanie kopii zapasowych dzienników

Jeśli program SQL Server jest podstawowym elementem podstawowym, należy wykonać pierwszą kopię zapasową dziennika w programie SQL Server po zakończeniu początkowego rozmieszczania, gdy baza danych nie jest już w stanie Przywracanie... w usłudze Azure SQL Managed Instance. Następnie regularnie twórz kopie zapasowe dziennika transakcji programu SQL Server, aby zachować prawidłowy rozmiar pliku dziennika transakcji, podczas gdy program SQL Server jest w roli głównej.

Funkcja linku replikuje dane przy użyciu technologii rozproszonych grup dostępności na podstawie zawsze włączonych grup dostępności. Replikacja danych z rozproszonymi grupami dostępności jest oparta na replikowaniu rekordów dziennika transakcji. Żadne rekordy dziennika transakcji nie mogą być obcięte z bazy danych w podstawowym wystąpieniu programu SQL Server, dopóki nie zostaną zreplikowane do bazy danych w replice pomocniczej. Jeśli replikacja rekordów dziennika transakcji jest niska lub zablokowana z powodu problemów z połączeniem sieciowym, plik dziennika nadal rośnie w wystąpieniu podstawowym. Szybkość wzrostu zależy od intensywności obciążenia i szybkości sieci. Jeśli w wystąpieniu podstawowym występuje długotrwała awaria połączenia sieciowego i duże obciążenie, plik dziennika może zająć całe dostępne miejsce do magazynowania.

Wykonywanie regularnych kopii zapasowych dziennika transakcji obcina dziennik transakcji i minimalizuje ryzyko wyczerpania miejsca w podstawowym wystąpieniu programu SQL Server z powodu wzrostu pliku dziennika. Nie jest konieczne żadne dodatkowe działanie, gdy wystąpienie zarządzane SQL jest podstawowym elementem, ponieważ kopie zapasowe dzienników są już wykonywane automatycznie. Regularne wykonywanie kopii zapasowych dzienników w programie SQL Server podstawowego sprawia, że baza danych jest bardziej odporna na nieplanowane zdarzenia wzrostu dziennika. Rozważ zaplanowanie codziennych zadań tworzenia kopii zapasowej dziennika przy użyciu zadania agenta programu SQL Server.

Aby utworzyć kopię zapasową pliku dziennika, takiego jak przykład podany w tej sekcji, możesz użyć skryptu języka Transact-SQL (T-SQL). Zastąp symbole zastępcze w przykładowym skrypcie nazwą bazy danych, nazwą i ścieżką pliku kopii zapasowej oraz opisem.

Aby utworzyć kopię zapasową dziennika transakcji, użyj następującego przykładowego skryptu języka Transact-SQL (T-SQL) w programie SQL Server:

-- Execute on SQL Server
-- Take log backup
BACKUP LOG [<DatabaseName>]
TO DISK = N'<DiskPathandFileName>'
WITH NOFORMAT, NOINIT,
NAME = N'<Description>', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 1

Użyj następującego polecenia Języka Transact-SQL (T-SQL), aby sprawdzić obszar dziennika używany przez bazę danych w programie SQL Server:

-- Execute on SQL Server
DBCC SQLPERF(LOGSPACE); 

Dane wyjściowe zapytania wyglądają jak w poniższym przykładzie przykładowej bazy danych tpcc:

Zrzut ekranu przedstawiający wyniki polecenia przedstawiającego rozmiar pliku dziennika i używane miejsce

W tym przykładzie baza danych użyła 76% dostępnego dziennika z bezwzględnym rozmiarem pliku dziennika wynoszącym około 27 GB (27 971 MB). Progi akcji różnią się w zależności od obciążenia. W poprzednim przykładzie rozmiar dziennika transakcji i procent użycia dziennika jest zazwyczaj wskazaniem, że należy wykonać kopię zapasową dziennika transakcji, aby obcinać plik dziennika i zwolnić trochę miejsca lub, należy wykonać częstsze kopie zapasowe dziennika. Może to również wskazywać, że obcinanie dziennika transakcji jest blokowane przez otwarte transakcje. Aby uzyskać więcej informacji na temat rozwiązywania problemów z dziennikiem transakcji w programie SQL Server, zobacz Rozwiązywanie problemów z pełnym dziennikiem transakcji (błąd programu SQL Server 9002). Aby uzyskać więcej informacji na temat rozwiązywania problemów z dziennikiem transakcji w usłudze Azure SQL Managed Instance, zobacz Rozwiązywanie problemów z błędami dziennika transakcji w usłudze Azure SQL Managed Instance.

Uwaga

Podczas udziału w linku automatyczne kopie zapasowe dziennika transakcji i pełne są pobierane z wystąpienia zarządzanego SQL niezależnie od tego, czy jest to replika podstawowa. Różnicowe kopie zapasowe nie są wykonywane, co może prowadzić do dłuższego czasu przywracania.

Dopasowywanie wydajności między replikami

Jeśli używasz funkcji linku, ważne jest, aby dopasować wydajność między programem SQL Server i usługą SQL Managed Instance, aby uniknąć problemów z wydajnością, jeśli replika pomocnicza nie może nadążyć za replikacją z repliki podstawowej lub po przejściu w tryb failover. Pojemność wydajności obejmuje rdzenie procesora CPU (lub rdzenie wirtualne na platformie Azure), pamięć i przepływność operacji we/wy.

Wydajność replikacji można sprawdzić przy użyciu rozmiaru kolejki ponownego wykonania w repliki pomocniczej. Rozmiar kolejki ponownej próby wskazuje liczbę rekordów dziennika, które oczekują na ponowne ponowne wdrożenie repliki pomocniczej. Stale duży rozmiar kolejki ponownego ponownego uruchamiania wskazuje, że replika pomocnicza nie może nadążać za repliką podstawową. Rozmiar kolejki ponownej można sprawdzić w następujący sposób:

Jeśli rozmiar ponownie kolejki jest stale wysoki, rozważ zwiększenie zasobów w repliki pomocniczej.

Obracanie certyfikatu

Istnieje możliwość wygaśnięcia certyfikatu używanego do zabezpieczenia punktu końcowego dublowania bazy danych, co może prowadzić do obniżenia poziomu łącza. Aby zapobiec temu problemowi, należy obrócić certyfikat przed jego wygaśnięciem.

Użyj następującego polecenia Języka Transact-SQL (T-SQL), aby sprawdzić datę wygaśnięcia bieżącego certyfikatu:

-- Run on SQL Server
USE MASTER
GO
SELECT * FROM sys.certificates WHERE pvt_key_encryption_type = 'MK' 

Jeśli certyfikat wkrótce wygaśnie lub już wygasł, możesz utworzyć nowy certyfikat, a następnie zmienić istniejący punkt końcowy, aby zastąpić bieżący certyfikat.

Po skonfigurowaniu punktu końcowego do korzystania z nowego certyfikatu można usunąć wygasły certyfikat.

Dodawanie flag śledzenia uruchamiania

W programie SQL Server istnieją dwie flagi śledzenia (-T1800 i -T9567), które po dodaniu jako parametry uruchamiania mogą zoptymalizować wydajność replikacji danych za pośrednictwem linku. Aby dowiedzieć się więcej, zobacz Włączanie flag śledzenia uruchamiania.

Aby użyć linku:

Aby dowiedzieć się więcej na temat linku:

W przypadku innych scenariuszy replikacji i migracji należy wziąć pod uwagę następujące kwestie: