この記事は主に、MySQL のトランザクション ログとログ ファイルが大きすぎて縮小できない問題を解決する方法を紹介します。必要な方は参考にしていただければ幸いです。
一.MS SQL SERVER 2005
--1. ログをクリアします
exec('DUMP TRANSACTION データベース名 WITH NO_LOG')
--2. トランザクション ログを切り詰めます:
exec('BACKUP LOG データベース名 WITH NO_LOG' )
--3. データベース ファイルを圧縮します (圧縮されていない場合、データベース ファイルは縮小されません
exec('DBCC SHRINKDATABASE (データベース名) ')
--4. 自動圧縮を設定します exec('EXEC sp_dboption データベース名, autoshrink, TRUE')
--在SQL2008中清除日志就必须在简单模式下进行,等清除动作完毕再调回到完全模式。 USE [master] GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY SIMPLE --简单模式 GO USE 数据库名 GO --crm50sp1_log 为数据库日志文件逻辑名 DBCC SHRINKFILE (N'crm50sp1_log' , 11, TRUNCATEONLY) GO USE [master] GO ALTER DATABASE 数据库名 SET RECOVERY FULL WITH NO_WAIT GO ALTER DATABASE 数据库名 SET RECOVERY FULL --还原为完全模式 GO3. ログファイルが異常に大きくて圧縮できない問題この時点で、送信済みまたはロールバックされたトランザクションがあるかどうかを確認する必要があります DBCC OPENTRAN コマンドを実行して、非常に早く実行されているトランザクションがあるかどうかを確認します (トランザクションの開始時刻がメッセージに表示されます)。トランザクションが送信されていないか、ロールバックされていないため、MinLSN は先に進むことができません。
これがある場合は、2 つの方法があります (もちろん、SQL を再起動します)。シャットダウン操作が許可されている場合は、サービスも可能です);
php Mysql トランザクションのサンプル コードの使用方法
以上がMysql 圧縮トランザクション ログと問題解決策の解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。