Dodawanie trwałego buforu dziennika do bazy danych
Dotyczy:programu SQL Server
W tym temacie opisano sposób dodawania i usuwania trwałego buforu dziennika do bazy danych w programie SQL Server 2016 (13.x) i nowszym przy użyciu języka Transact-SQL.
Uprawnienia
Wymaga uprawnienia ALTER
w bazie danych.
Konfigurowanie urządzenia pamięci trwałej (Linux)
Aby skonfigurować urządzenie pamięci trwałej w systemie Linux.
Konfigurowanie urządzenia pamięci trwałej (Windows)
Aby skonfigurować urządzenie pamięci trwałej w systemie Windows.
Dodawanie trwałego buforu dziennika do bazy danych
Wolumin lub punkt montowania dla nowego pliku dziennika musi być sformatowany z włączonym DAX (NTFS) lub zamontowany z opcją DAX (XFS/EXT4).
Użyj następującej składni, aby dodać trwały bufor dziennika do istniejącej bazy danych. Składnia różni się w zależności od wersji programu SQL Server.
Dodawanie trwałego buforu dziennika w programie SQL Server 2017 (14.x) i nowszych
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');
Na przykład:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');
Nazwa trwałego buforu pliku dziennika jest generowana automatycznie. Rozmiar pliku to zawsze 20 megabajtów.
Dodawanie trwałego buforu dziennika w programie SQL Server 2016 (13.x)
ALTER DATABASE [DB] ADD LOG FILE
(
NAME = [DAXlogLogicalName],
FILENAME = 'path-to-log-file-on-a-DAX-volume',
SIZE = 20 MB
);
Na przykład:
ALTER DATABASE WideWorldImporters ADD LOG FILE
(
NAME = wwi_log2,
FILENAME = 'F:\SQLTLog\wwi_log2.pldf',
SIZE = 20 MB
);
Plik buforu dziennika na woluminie DAX będzie miał rozmiar 20 megabajtów niezależnie od rozmiaru określonego za pomocą polecenia ALTER DATABASE ADD LOG FILE
.
Usuwanie trwałego buforu dziennika z bazy danych
Aby bezpiecznie usunąć trwały bufor dziennika, baza danych musi zostać umieszczona w trybie pojedynczego użytkownika, aby opróżnić trwały bufor dziennika.
Po usunięciu trwałego buforu dziennika plik buforu dziennika na dysku zostanie usunięty.
Składnia różni się w zależności od wersji programu SQL Server.
Usuń trwały bufor dziennika w programie SQL Server 2017 (14.x) lub nowszym
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;
Na przykład:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;
Usuń trwały bufor dziennika w programie SQL Server 2016 (13.x)
ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] SET MULTI_USER;
Na przykład:
ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;
Ograniczenia
Przezroczyste szyfrowanie danych (TDE) nie jest zgodne z trwałym buforem dziennika.
pl-PL: Grupy dostępności mogą korzystać z tej funkcji tylko na replikach pomocniczych ze względu na wymóg agenta odczytu dzienników dotyczący standardowych semantyk zapisu dzienników na replikach głównych. Należy jednak utworzyć mały plik dziennika we wszystkich węzłach (najlepiej w przypadku woluminów lub instalacji języka DAX). W przypadku przejścia w tryb failover musi istnieć trwała ścieżka buforu dziennika, aby przejście w tryb failover zakończyło się pomyślnie.
Ostrożność
Jeśli ścieżka lub plik buforu dziennika trwałego nie jest obecny podczas zdarzenia trybu failover grupy dostępności lub uruchamiania bazy danych, baza danych wprowadza stan RECOVERY PENDING
do momentu rozwiązania problemu.
Współdziałanie z innymi funkcjami PMEM
Po włączeniu zarówno buforu dziennika trwałego, jak i hybrydowej puli buforów, wraz z flagą uruchomieniową śledzenia 809, hybrydowa pula buforów będzie działać w trybie bezpośredniego zapisu.
Operacje tworzenia kopii zapasowej i przywracania
Obowiązują normalne warunki przywracania. Jeśli trwały bufor dziennika zostanie przywrócony do woluminu lub instalacji języka DAX, będzie nadal działać. Jeśli dziennik zostanie przywrócony do woluminu dysku innego niż DAX, można go bezpiecznie usunąć przy użyciu polecenia ALTER DATABASE REMOVE FILE
.