Aggiungere un buffer di log persistente a un database

Si applica a:SQL Server

Questo argomento descrive come fare ad aggiungere un buffer di log peristente a un database in SQL Server 2019 (15.x) e versioni successive usando Transact-SQL.

Autorizzazioni

È richiesta l'autorizzazione ALTER per il database.

Configurare un dispositivo con memoria persistente (Linux)

Per configurare un dispositivo con memoria persistente in Linux, vedere questo articolo.

Configurare un dispositivo con memoria persistente (Windows)

Per configurare un dispositivo con memoria persistente in Windows, vedere questo articolo.

Aggiungere un buffer di log persistente a un database

Nell'esempio seguente viene aggiunto un buffer di log persistente.

ALTER DATABASE <MyDB> 
  ADD LOG FILE 
  (
    NAME = <DAXlog>, 
    FILENAME = '<Filepath to DAX Log File>', 
    SIZE = 20MB
  );

Ad esempio:

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

Il file di resoconto nel volume DAX verrà ridimensionato a 20 MB indipendentemente dalle dimensioni specificate con il comando ADD FILE.

Il volume o il montaggio del nuovo file di resoconto deve essere formattato con DAX (NTFS) o montato con l'opzione DAX (XFS/EXT4).

Rimuovere un buffer di log persistente

Per rimuovere in modo sicuro un buffer di log persistente, è necessario che il database sia impostato in modalità utente singolo per consentire lo svuotamento del buffer.

Nell'esempio seguente viene rimosso un buffer di log persistente.

ALTER DATABASE <MyDB> SET SINGLE_USER;
ALTER DATABASE <MyDB> REMOVE FILE <DAXlog>;
ALTER DATABASE <MyDB> SET MULTI_USER;

Ad esempio:

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

Limiti

La crittografia TDE (Transparent Data Encryption) non è compatibile con il buffer di log persistente.

I gruppi di disponibilità possono usare questa caratteristica solo nelle repliche secondarie a causa della necessità, da parte di un agente di lettura log, di una semantica di scrittura standard del log nel database primario. È tuttavia necessario creare il file di log di piccole dimensioni in tutti i nodi (preferibilmente su volumi o montaggi DAX). In caso di failover, il percorso del buffer di log persistente deve esistere affinché il failover venga eseguito correttamente.

Nei casi in cui il percorso o il file non è presente durante un evento di failover del gruppo di disponibilità o l'avvio del database, il database entra in uno stato RECOVERY PENDING fino a quando il problema non viene risolto.

Interoperabilità con altre caratteristiche PMEM

Quando sia il buffer di log persistente sia il pool di buffer ibrido sono abilitati congiuntamente, insieme al flag di traccia di avvio 809, il pool di buffer ibrido funzionerà in quella che è nota come modalità scrittura diretta.

Operazioni di backup e ripristino

Si applicano le normali condizioni di ripristino. Se il buffer di log persistente viene ripristinato in un volume o un montaggio DAX, continuerà a funzionare. In caso contrario, può essere rimosso senza alcun rischio.

Passaggi successivi