Solte as conexões de banco de dados em MS Sql Server 2000
-
03-07-2019 - |
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.
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