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 リファレンスの詳細な説明

推薦する

ユーザーエクスペリエンスの概要

最近では、ソフトウェアやウェブサイトのいずれの作業であっても、設計時に「ユーザー エクスペリエンス」...

シャドウソックスを使用してLAN透過ゲートウェイを構築する

目次dnsmasq をインストールして設定するChinaDNS をインストールして設定するshado...

Prometheus+Grafanaによるnginxの監視方法を分析する

目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...

Mysql を 5.7 にアップグレードした後のグループ クエリの問題を解決する

問題を見つける最近MySQLをMySQL 5.7にアップグレードした後、次のようなクエリでグループ化...

Ubuntu 16.04.4LTS に mininet をインストールする際に発生する問題と解決策

ミニネットMininet は軽量のソフトウェア定義ネットワークおよびテスト プラットフォームです。軽...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

ウェブカラーのコントラストと調和のテクニックの共有

色のコントラストと調和対照的な状況では、色の相互作用は単一の色によって与えられる感覚とは異なります。...

ウェブページのカラーマッチング例分析: 緑色のカラーマッチングウェブページ分析

<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...

MySQL コール初心者が犯しがちな 11 の間違いのまとめ

序文セキュリティ部門からSQLインジェクションやXSS攻撃の脆弱性などに関する警告メールを頻繁に受け...

Photoshop を使って Web ワイヤーフレームを作成する方法

この投稿では、通知、画像とビデオ、フォーム フィールド、タイトル、段落、箇条書きリスト、ナビゲーショ...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

CSS属性のマージンの理解について話す

1.マージンとは何ですか?マージンは、要素の周囲のスペースの間隔を制御するために使用され、視覚的にス...

Vueコンポーネントは、写真やビデオをアップロードするためのサンプルコードをカプセル化します

まず依存関係をダウンロードします: cnpm i -S vue-uuid ali-oss画像フィール...

Redis を Docker コンテナとして素早くデプロイする方法

目次はじめるデータストレージサーバーを構成するRedis セキュリティの管理Redisインストールの...