Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como adicionar um arquivo de log a um banco de dados SQL Server (T-SQL)


Quando você cria um banco de dados no SQL Server usando as opções padrão, um arquivo de dados e um arquivo de log são criados. O arquivo de dados armazena os dados e objetos do banco de dados (como tabelas, visualizações, procedimentos armazenados, etc). O arquivo de log armazena as informações necessárias para recuperar todas as transações no banco de dados. Se você tiver um banco de dados em crescimento, poderá se encontrar na situação em que precisa adicionar um novo arquivo de log (e/ou arquivo de dados).

Assim como você pode adicionar mais arquivos de dados a um banco de dados existente no SQL Server, você também pode adicionar mais arquivos de log. No entanto, a sintaxe é um pouco diferente dependendo se você está criando um arquivo de dados ou um arquivo de log. Adicionar um arquivo de dados requer ADD FILE ao adicionar um arquivo de log requer ADD LOG FILE .

Este artigo demonstra como usar o T-SQL para adicionar um arquivo de log a um banco de dados existente no SQL Server.


Exemplo


Para adicionar um arquivo de log a um banco de dados existente, use o ALTER DATABASE declaração com o ADD LOG FILE argumento. Forneça os detalhes do novo arquivo de log e execute a instrução.

Aqui está um exemplo:
USE master;  
GO

ALTER DATABASE Solutions   
ADD LOG FILE 
(  
    NAME = Solutions_log_2,  
    FILENAME = '/var/opt/mssql/data/Solutions_log2.ldf',  
    SIZE = 10MB,  
    MAXSIZE = 100MB,  
    FILEGROWTH = 5%  
);
GO

Isso adiciona um arquivo de registro com um nome lógico de Solutions_log_2 para as Solutions base de dados. Especificamos que o caminho físico é /var/opt/mssql/data/Solutions_log2.ldf . Observe que esse caminho usa a sintaxe Linux/Mac. Se você usa o Windows, precisará usar a sintaxe aplicável (barras invertidas em vez das barras).

Verifique o resultado


Você pode verificar o resultado executando a seguinte consulta:
USE Solutions;  
GO

SELECT name, physical_name  
FROM sys.database_files;  
GO

Resultado:
name             physical_name                         
---------------  --------------------------------------
Solutions        /var/opt/mssql/data/Solutions.mdf     
Solutions_log    /var/opt/mssql/data/Solutions_log.ldf 
Solutions_dat_2  /var/opt/mssql/data/Solutions_dat2.ndf
Solutions_dat_3  /var/opt/mssql/data/Solutions_dat3.ndf
Solutions_log_2  /var/opt/mssql/data/Solutions_log2.ldf

Podemos ver o novo arquivo de log listado além do arquivo de log original (assim como vários arquivos de dados).

Neste exemplo, seleciono apenas duas colunas do sys.database_files vista para exibir. Você também pode usar o asterisco (* ) para retornar todas as colunas, se preferir.