Sdílet prostřednictvím


Přidání trvalého logového bufferu do databáze

platí pro:SQL Server

Toto téma popisuje, jak přidat a odebrat trvalou vyrovnávací paměť protokolu do databáze v SQL Serveru 2016 (13.x) a novější pomocí jazyka Transact-SQL.

Dovolení

Vyžaduje oprávnění ALTER k databázi.

Konfigurace trvalého paměťového zařízení (Linux)

Konfigurace trvalého paměťového zařízení v Linux.

Konfigurace trvalého paměťového zařízení (Windows)

Konfigurace trvalého paměťového zařízení v systému Windows.

Přidání trvalého logovacího bufferu do databáze

Svazek nebo přípojný bod pro nový soubor protokolu musí být naformátovaný s povoleným režimem DAX (NTFS) nebo připojený s možností DAX (XFS/EXT4).

Pomocí následující syntaxe přidejte trvalou paměť protokolu do existující databáze. Syntaxe se liší v závislosti na verzi SQL Serveru.

Přidání trvalého logovacího bufferu v SQL Serveru 2017 (14.x) a novějším

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');

Například:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');

Název trvalé vyrovnávací paměti souboru protokolu se vygeneruje automaticky. Velikost souboru je vždy 20 megabajtů.

Vytvoření trvalé vyrovnávací paměti protokolu v SQL Serveru 2016 (13.x)

ALTER DATABASE [DB] ADD LOG FILE
(
NAME = [DAXlogLogicalName],
FILENAME = 'path-to-log-file-on-a-DAX-volume',
SIZE = 20 MB
);

Například:

ALTER DATABASE WideWorldImporters ADD LOG FILE
(
NAME = wwi_log2, 
FILENAME = 'F:\SQLTLog\wwi_log2.pldf',
SIZE = 20 MB
);

Soubor vyrovnávací paměti protokolu na svazku DAX bude mít velikost 20 megabajtů bez ohledu na velikost zadanou příkazem ALTER DATABASE ADD LOG FILE.

Odstraňte trvalou vyrovnávací paměť protokolu z databáze

Chcete-li bezpečně odebrat trvalou vyrovnávací paměť protokolu, musí být databáze umístěna v režimu jednoho uživatele, aby bylo možné vyprázdnit trvalou vyrovnávací paměť protokolu.

Když odeberete trvalou vyrovnávací paměť protokolu, odstraní se soubor vyrovnávací paměti protokolu na disku.

Syntaxe se liší v závislosti na verzi SQL Serveru.

Odstraňte trvalou vyrovnávací paměť protokolu v SQL Serveru 2017 (14.x) a novějších verzích

ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;

Například:

ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;

Odstranit trvalou vyrovnávací paměť protokolu v SQL Serveru 2016 (13.x)

ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] SET MULTI_USER;

Například:

ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;

Omezení

Transparentní šifrování dat (TDE) není kompatibilní s trvalým log bufferem.

Skupiny dostupnosti mohou tuto funkci využívat pouze na sekundárních replikách kvůli požadavku agenta pro čtení protokolu na standardní sémantiku zápisu protokolu na primárním. Malý soubor protokolu se ale musí vytvořit na všech uzlech (ideálně na svazcích DAX nebo připojeních). V případě selhání musí existovat trvalá cesta vyrovnávací paměti protokolu, aby bylo převzetí úspěšné.

Opatrnost

Pokud během události převzetí služeb při selhání skupiny dostupnosti nebo při spuštění databáze neexistuje cesta k trvalé vyrovnávací paměti protokolu nebo soubor, databáze přejde do stavu RECOVERY PENDING, dokud se problém nevyřeší.

Interoperabilita s dalšími funkcemi PMEM

Pokud je povolena trvalá vyrovnávací paměť protokolu i fond hybridní vyrovnávací paměti, spustí se příznak trasování 809, fond hybridní vyrovnávací paměti bude fungovat v režimu direct write.

Operace zálohování a obnovení

Platí normální podmínky obnovení. Pokud je trvalá vyrovnávací paměť protokolu obnovena na svazek DAX nebo připojený bod, pokračuje ve své funkci. Pokud se protokol obnoví na svazek disku jiného než DAX, můžete ho bezpečně odebrat pomocí příkazu ALTER DATABASE REMOVE FILE.

Další kroky