2

まず、私はSQLまたはSQLServerの専門家ではありません。私はデータベースを作成し、それを使用するWebサイトを開発する方法を知っています。それを超えて、db管理は私に完全に失われます:(

それは私が立ち往生していると言われています。2つのデータベースのログファイルが途方もなく大きくなりました。1つは650MB、もう1つは16 GBで、GIGABYTESです。これらのデータベースの両方のデータは10MB未満であるため、これがどのように起こったのか想像できません...

私はこれについていくつかの調査を行い、データベースの完全バックアップまたはトランザクションログのバックアップのいずれかを実行するとこれが修正されると信じるようになりました...

データベースの完全バックアップを実行しようとすると、トランザクションログがいっぱいであるというエラーが表示されました。代わりにログバックアップを試しました

これは機能しましたが、データベースの完全バックアップを実行しても、そのエラーは発生しなくなりました。

ただし、データベースログファイルは以前と同じサイズのままです。

私も縮小しました。650MB程度のスペースは空きスペースですが、スペースを解放するように指示したところ、何も起こりませんでした。エラーメッセージは表示されませんでした。閉じただけで何もしませんでした。少なくとも、私のログファイルはまだ巨大なので、何もしなかったと思います...

だからまず第一に、一体どうやってこれが起こったのですか?!私がしたのは、データベースを開いて、あちこちで列を変更することだけでした。そして他のデータベースでは私はそれさえしませんでした!!

最後に、ログをクリアできるようにこれを修正するにはどうすればよいですか?

どんな助けでもありがたいです、ありがとう!

4

2 に答える 2

3

ポイントインタイムの復元が必要な場合や頻繁にバックアップを実行する必要がある場合を除いて、ログファイルがなくても実行できるように思えます。シンプルリカバリモードに変更します。これにより、ログファイルのバックアップを待つ代わりに、コミットされた各トランザクションの後にログが切り捨てられます。

于 2010-04-20T21:07:53.237 に答える
2
USE MyDatabase
GO
Backup Log MyDatabase WITH TRUNCATE_ONLY
GO
DBCC SHRINKFILE (MyDatabase_Log, 1)
GO

これによりバックアップ履歴が無効になるため、使用後TRUNCATE_ONLYは完全バックアップを実行する必要があります。

于 2010-04-20T21:06:51.173 に答える