Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Este tópico descreve como adicionar e remover um buffer de log persistente a um banco de dados no SQL Server 2016 (13.x) e superior usando o Transact-SQL.
Permissões
Requer a permissão ALTER no banco de dados.
Configurar dispositivo de memória persistente (Linux)
Para configurar um dispositivo de memória persistente no Linux.
Configurar dispositivo de memória persistente (Windows)
Para configurar um dispositivo de memória persistente no Windows.
Adicionar um buffer de log persistente a um banco de dados
O volume ou o ponto de montagem para o novo arquivo de log deve ser formatado com DAX habilitado (NTFS) ou montado com a opção DAX (XFS/EXT4).
Use a sintaxe a seguir para adicionar um buffer de log persistente a um banco de dados existente. A sintaxe difere dependendo da versão do SQL Server.
Adicionar buffer de log persistente no SQL Server 2017 (14.x) e posterior
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'path-to-directory-on-a-DAX-volume');
Por exemplo:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = ON (DIRECTORY_NAME = 'F:\SQLTLog');
O nome do buffer do arquivo de log persistente é gerado automaticamente. O tamanho do ficheiro é sempre de 20 megabytes.
Adicionar buffer de log persistente no 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
);
Por exemplo:
ALTER DATABASE WideWorldImporters ADD LOG FILE
(
NAME = wwi_log2,
FILENAME = 'F:\SQLTLog\wwi_log2.pldf',
SIZE = 20 MB
);
O arquivo de buffer de log no volume DAX será dimensionado em 20 megabytes, independentemente do tamanho especificado com o comando ALTER DATABASE ADD LOG FILE.
Remover um buffer de log persistente de um banco de dados
Para remover com segurança um buffer de log persistente, o banco de dados deve ser colocado no modo de usuário único para drenar o buffer de log persistente.
Quando você remove um buffer de log persistente, o arquivo de buffer de log no disco é excluído.
A sintaxe difere dependendo da versão do SQL Server.
Remover o buffer de log persistente no SQL Server 2017 (14.x) e versões posteriores
ALTER DATABASE [DB] SET PERSISTENT_LOG_BUFFER = OFF;
Por exemplo:
ALTER DATABASE WideWorldImporters SET PERSISTENT_LOG_BUFFER = OFF;
Remover buffer de log persistente no SQL Server 2016 (13.x)
ALTER DATABASE [DB] SET SINGLE_USER;
ALTER DATABASE [DB] REMOVE FILE [DAXlogLogicalName];
ALTER DATABASE [DB] SET MULTI_USER;
Por exemplo:
ALTER DATABASE WideWorldImporters SET SINGLE_USER;
ALTER DATABASE WideWorldImporters REMOVE FILE wwi_log2;
ALTER DATABASE WideWorldImporters SET MULTI_USER;
Limitações
TDE (Transparent Data Encryption) não é compatível com buffer de log persistente.
Grupos de Disponibilidade só podem usar este recurso em réplicas secundárias devido à exigência do agente do leitor de logs para semântica padrão de gravação de log na réplica primária. No entanto, um pequeno arquivo de log deve ser criado em todos os nós (idealmente em volumes ou montagens DAX). No caso de um failover, o caminho do buffer de log persistente deve existir, para que o failover seja bem-sucedido.
Atenção
Se o caminho ou arquivo do buffer de log persistente não estiver presente durante um evento de failover do Grupo de Disponibilidade ou inicialização do banco de dados, o banco de dados entrará em um estado RECOVERY PENDING até que o problema seja resolvido.
Interoperabilidade com outros recursos do PMEM
Quando o buffer de log persistente e o Pool de Buffer Híbrido estiverem habilitados, juntamente com o sinalizador de rastreamento de inicialização 809, o Pool de Buffer Híbrido operará no que é conhecido como modo de Gravação Direta .
Operações de backup e restauração
Aplicam-se condições normais de restauração. Se o buffer de log persistente for restaurado para um volume ou montagem DAX, isso continuará a funcionar. Se o log for restaurado para um volume de disco não-DAX, ele poderá ser removido com segurança usando o comando ALTER DATABASE REMOVE FILE.