Re-atribuindo / alterando o arquivo de log primário - SQL 2000

2

Eu tenho um grande banco de dados (chamado Navision4) que atualmente possui 2 arquivos de log:

Navision4_Log Navision4_Log3

Havia um log chamado Navision4_Log2, mas eu consegui remover isso.

O Navision4_Log está localizado na unidade C: \ - e não é usado. Navision4_Log3 está localizado na unidade G: \ - mas é enorme - e parece ser onde todas as transações são gravadas.

No entanto, quero remover um, deixando apenas um arquivo de log.

Como devo fazer isso? Eu tentei remover Navision4_Log - mas tenho:

Error 5020: The primary data or log file cannot be removed from a database

    
por alex 27.11.2009 / 18:31

2 respostas

1

Qual modelo de recuperação seu banco de dados está usando? você está fazendo backups regulares de log? Se você está em plena recuperação & não tendo backups de log, isso pode explicar por que o Navision4_Log3 é tão grande. Você deve corrigir isso fazendo backups de log ou alternando para a recuperação simples.

Eu movo Navision4_Log para a unidade G, em vez de tentar removê-lo. Meu palpite é que Navision4_Log3 existe porque o servidor estava ficando sem espaço em C: & o administrador não sabia como movê-lo.

Para mover o arquivo de log para G: use o seguinte:

ALTER DATABASE Navision4 SET OFFLINE;
    --move o arquivo de log para G:
    ALTER DATABASE Navision4
          MODIFICAR ARQUIVO (
                NAME = 'Navision4_Log',
                FILENAME = 'G: \ MSSQL \ TLOG \ Navision4_Log.ldf');
    ALTER DATABASE Navision4 SET ONLINE;

** EDIT: ** SQL Server 2000 não suporta essas opções, então você terá que usar sp_detachdb & sp_attachdb, você também pode separar & anexar na GUI do Enterprise Manager. Apenas certifique-se de anexar o db & especifique o proprietário como sa.

Depois, você pode remover o Navision4_Log3, se desejar. O que você precisa fazer (se estiver em plena recuperação) é fazer um backup de log e, em seguida, reduzir o log usando DBCC SHRINKFILE('Navision4_Log3', EMPTYFILE) Você pode precisar fazer vários backups & faça vários encolhimentos antes que o arquivo seja esvaziado & então você deve ser capaz de removê-lo.

    
por 28.11.2009 / 14:40
0

Como é um banco de dados replicado, você terá que remover a replicação antes de desanexar. O SQL Server 2000 não permitirá que você desanexe um banco de dados replicado.

Depois que Nick estiver correto, desanexe o banco de dados e reconecte-o apenas com o único arquivo que você deseja usar no G:

    
por 23.02.2010 / 20:13