Mysql binlog ログファイルが大きすぎる場合の解決策

Mysql binlog ログファイルが大きすぎる場合の解決策

ディスク使用量が高すぎます。原因を確認したところ、MySQL の binlog ファイルが大きすぎることが判明しました。

注文

ls -l -h 

ここに画像の説明を挿入

mysql-binlog は、MySQL データベースのバイナリ ログであり、データベースに対するユーザーの操作の SQL ステートメント (データ クエリ ステートメントを除く) を記録するために使用されます。バイナリ ログの内容を表示するには、mysqlbin コマンドを使用します。

my.cof 構成ファイルを設定することで、binlog ファイルの出力を制限できます。

1. 関連するbinlog設定

vim /etc/my.cof

[mysqld]
有効期限切れログ日数 = 3
#binlog クリーンアップ時間を設定します max_binlog_size = 100m
#binlog 各ログファイルのサイズ binlog_cache_size = 4m
#binlog キャッシュ サイズ max_binlog_cache_size = 512m
#最大 binlog キャッシュ サイズ

mysqlを再起動して、過去3日間のログのみが保持されていることを確認します。

ここに画像の説明を挿入

2. binlogに関する詳細設定

2.1 バイナリログモードの変更

また、バイナリログ モードには、STATEMENT、ROW、MIXED の 3 つがあります。これら 3 つの形式についての説明は次のとおりです。

ステートメントモード

SQL ステートメント ベースのレプリケーション (SBR) では、データを変更するすべての SQL ステートメントが binlog に記録されます。

利点: すべての SQL ステートメントとすべてのデータ行の変更を記録する必要がないため、binlog ログは比較的小さくなり、ディスク IO が削減され、パフォーマンスが向上します。

デメリット: 場合によっては、マスターとスレーブの間でデータの不整合が発生する可能性があります (sleep() 関数、last_insert_id()、ユーザー定義関数 (udf) の問題など)。

ROWモード

各 SQL 文のコンテキスト情報は記録されません。どのデータがどのように変更されたかを記録することのみが必要です。

利点: 特定の状況でストアド プロシージャ、関数、またはトリガーの呼び出しとトリガーが正しく複製されないという問題は発生しません。

デメリット: 特にテーブルを変更するときに大量のログが生成され、ログが膨れ上がります。

混合モード

混合ベースレプリケーション (MBR): 上記の 2 つのモードを組み合わせたものです。一般的なレプリケーションでは、STATEMENT モードを使用してバイナリログを保存します。STATEMENT モードでレプリケートできない操作では、ROW モードを使用してバイナリログを保存します。MySQL は、実行された SQL ステートメントに基づいてログ保存方法を選択します。
設定ファイルを変更する

[mysqld]
binlog_format = 混合
#ログフォーマットを設定する

2.2 関連SQL操作バイナリログ

バイナリログを表示します。                            
# binlog の既存の詳細を表示します。'%log%' のような変数を表示します。            
# ログ変数の関連する構成を表示します。set global expire_logs_days = 3;    
# バイナリログ保存時間のリセットマスターを設定します。                                 
# すべての binlog をリセットします。これは、すべての binlog を削除することと同じです。マスター スレーブの割り当ては binlog ログに基づいているため、この操作はマスター スレーブ クラスターに大きな影響を与えます。PURGE {MASTER | BINARY} LOGS TO 'log_name'
'date' より前の {MASTER | BINARY} ログを消去します
# 指定されたログまたは日付より前のログ インデックス内のすべてのバイナリ ログを削除します。 MASTER と BINARY は同義語です。PURGE MASTER LOGS TO 'binlog.000013'; 
#binlog.000013 ログを消去して、「2020-01-08 10:00:00」より前のマスター ログを消去します。  
#2020-01-08 10:00:00 より前の binlog ログを消去します。PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); 
# 3 日前より前の binlog ログをクリアします。変数の日付引数は、「YYYY-MM-DD hh:mm:ss」の形式にすることができます。

これで、Mysql binlog ログファイルが大きすぎる問題を解決する方法についての記事は終わりです。Mysql binlog ログが大きすぎることの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • mysql binlog ログを正しくクリーンアップする 2 つの方法
  • MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明
  • MySQL binlog ログを自動的にクリーンアップする方法
  • mysql binlog バイナリログの詳細な説明
  • mysql binlog (バイナリログ) を表示する方法
  • MySQLはデータ復旧を実装するためにbinlogログを使用する
  • MySQL binlog ログを開く方法
  • MySQL binlog の使用方法の詳細な説明

<<:  JavaScript オブジェクトからプリミティブ値への変換の詳細な説明

>>:  HTML スタイル タグと関連する CSS リファレンスの詳細な説明

推薦する

HTMLフローティングプロンプトボックス機能の実装コード

一般的なフォーム プロンプトは常にフォームのスペースを占有し、フォームが長くなったり広くなったりして...

HTML の相対パス (Relative Path) と絶対パス (Absolute Path) の詳細な理解

私は 1 年以上 Java Web 開発に携わっており、HTML または JSP ページの作成は避け...

Centos7 での Rsync+crontab 定期同期バックアップ

最近、社内の重要なサーバデータを定期的にストレージにバックアップし、ついでにメモしておきたい以前、W...

Dockerコンテナシェルスクリプトの実行ステータスを監視する方法

シナリオ会社のプロジェクトはDockerでデプロイされています。原因不明ですが、コンテナが時々停止し...

Vueバインディングオブジェクトと配列変数を変更した後にレンダリングできない問題の解決策

プロジェクトシナリオ:ページ表示には <ul> タグがあります。リストデータを動的に表示...

Vueにログイン認証傍受機能を設置するアイデアを詳しく解説

目次1. 解決策2. サーバーから返されたトークンをブラウザに保存する3. リクエストにアクセス権限...

Vueはブラウザ側のコードスキャン機能を実装します

背景少し前にブラウザカメラの取得とスキャンコード認識の機能を作りました。その際の知識ポイントと具体的...

jQueryをベースにカルーセル効果を実現する

この記事では、カルーセルマップの効果を実現するためのjQueryの具体的なコードを参考までに共有しま...

MySQL 8.0.18コマンドの詳細な説明

解凍したフォルダ C:\web\mysql-8.0.11 を開き、フォルダ内に my.ini 構成フ...

JavaScript に関する 6 つの奇妙で便利な点

目次1. 解体のヒント2. デジタルセパレーター3. try...catch...finally が...

MySql テーブル、データベース、シャーディング、パーティショニングの知識の詳細な説明

1. はじめにデータベース内のデータ量が一定レベルに達すると、システムパフォーマンスのボトルネックを...

Nginx ベースの Mencached キャッシュ構成の詳細な説明

導入Memcached は分散キャッシュ システムです。Memcached には認証とセキュリティ制...

ChromeはCookieの変更を監視し、値を割り当てます

次のコードは、Chrome による Cookie の変更の監視を導入しています。コードは次のとおりで...

DeepinでPyenvをインストールする手順

序文これまでは、/bin/ ディレクトリのソフトリンクを変更して Python のバージョンを切り替...

Windows 10 での MySQL 5.7.19 インストール チュートリアル MySQL のルート パスワードを忘れた場合の変更方法

MySQL 5.7.19のインストールを例に挙げると、まずダウンロードしますもちろん、最初に行うこと...