Mysql 圧縮トランザクション ログと問題解決策の解決

小云云
リリース: 2017-12-25 13:33:08
オリジナル
1353 人が閲覧しました

この記事は主に、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')

2. MS SQL SERVER 2008 &2008r2 &2012 &2016

--在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 --还原为完全模式
GO
ログイン後にコピー
3. ログファイルが異常に大きくて圧縮できない問題

この時点で、送信済みまたはロールバックされたトランザクションがあるかどうかを確認する必要があります

DBCC OPENTRAN コマンドを実行して、非常に早く実行されているトランザクションがあるかどうかを確認します (トランザクションの開始時刻がメッセージに表示されます)。トランザクションが送信されていないか、ロールバックされていないため、MinLSN は先に進むことができません。

これがある場合は、2 つの方法があります (もちろん、SQL を再起動します)。シャットダウン操作が許可されている場合は、サービスも可能です);

そうでない場合、長期間クローズされていないトランザクション、シンプル モード: 最初にデータベースをバックアップしてから、BACKUP LOG データベース名 WITH NO_LOG を実行します フル モード:完全バックアップは実行されていません。最初に完全バックアップを実行し、次にログ ファイルをバックアップし、最後に DBCC SHRINKFILE (N 'ログ ファイル論理名', 0, TRUNCATEONLY) を実行すると、ログ ファイルのみが圧縮されます

ログ ファイルの論理名次のステートメントで取得できます。 USE erp database go SELECT [name] FROM sys.database_files WHERE type_desc='LOG'

関連推奨事項:


Mysql トランザクションについて

php Mysql トランザクションのサンプル コードの使用方法

MySQLトランザクション処理例の説明

以上がMysql 圧縮トランザクション ログと問題解決策の解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート