Pergunta

Eu tenho um banco de dados que nós estamos tendo problemas com. De alguma forma o log tornou-se 400 Gb e o banco de dados foi inútil. Eu quero largar todas as conexões existentes para o banco de dados e, em seguida, retire o banco de dados.

Basicamente o que eu vou fazer é se livrar do arquivo de log gigante e criar um novo e recolocar se funciona. Se não, vamos indo para restaurar a partir de backups.

Foi útil?

Solução 3

Bem, basicamente, nenhum comando será executado agaisnt o banco de dados, em tudo. O que acabamos fazendo era desligar o serviço e criar cópias vazias dos arquivos mdf e ldf e substituindo as que estão sendo usados ??pelo servidor SQL. Depois que restaurou o banco de dados a partir do último backup e pronto, está funcionando novamente (principalmente).

Outras dicas

Se o log é inútil, você pode usar esses comandos, mas agradar documento sobre eles mesmo antes de aplicar em um servidor de produção.

BACKUP LOG WITH NO_LOG para disgard as páginas de log,

sp_helpdb para olhar o nome dos arquivos do db

DBCC SHRINKFILE ( 'seu nome de arquivo log', 0) -. Para trunking o arquivo físico para o tamanho especificado

Se você está se que não há transações abertas você pode colocar o banco de dados em modo de usuário único.

ALTER DATABASE [YourDB] SET SINGLE_USER COM NO_WAIT

Quando você terminar de colocá-lo novamente no modo multi usuário ALTER DATABASE [YourDB] SET MULTI_USER COM NO_WAIT

O

log de backup yourdb com TRUNCATE_ONLY então dbcc SHRINKDATABASE (yourdb) não encolher o arquivo de log para você?

ALTER DATABASE [DB_NAME_HERE] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

ALTER DATABASE [DB_NAME_HERE] SET MULTI_USER
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top