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

推薦する

JavaScript の document.activeELement フォーカス要素の紹介

目次1. デフォルトの焦点はボディにあります2. テキストボックスのフォーカスを手動で取得する3. ...

mysqlを使用して、URLから返されたhttp GETリクエストデータを記録します。

ビジネスシナリオの要件と実装ロジックの分析ビジネスでは、HTTP GET を使用してデータを要求する...

Puppeteer を使用して Linux (CentOS) で Web ページのスクリーンショット機能を実装する

Linux に puppeteer をインストールするときに、次の問題が発生する可能性があります。こ...

純粋な CSS でマークダウンの自動番号付けを実装するサンプル コード

問題の起源私がタイトルの番号付けの問題に初めて注目したのは、学部の論文を書いていた頃まで遡ります。当...

HTML テーブルタグチュートリアル (20): 行の背景色属性 BGCOLOR

BGCOLOR 属性を使用して、行の背景色を設定できます。基本的な構文<TR BGcolor...

Vue でコンポーネントを一括インポート、登録、使用する方法

序文コンポーネントは、非常に頻繁に使用されるものです。多くの人は、コンポーネントを 1 つのファイル...

VueでEchartsチャートの幅と高さの適応を実現する実践

目次1. インストールとインポート2. 手ぶれ補正機能を定義する3. チャートコードを描くinit ...

Nginx を使用して DoNetCore を Alibaba Cloud にデプロイする方法

基本的な環境設定まずはご自身でドメイン名とサーバーを購入してくださいクラウドサーバーECSに基づいて...

Bootstrap 3.0 の特殊効果の学習ノート(表示と非表示、フローティングの除去、閉じるボタンなど)

この記事の主な内容は次のとおりです。 1. 閉じるボタン2.キャレット3. フローティングを素早く設...

要素ツリーコントロールは、ドロップダウンメニューとアイコンを統合します(ツリー+ドロップダウン+入力)

目次要件:実装手順:この記事では主に以下について説明します: カスタムツリーコントロール<el...

Dockerコンテナでの静的ウェブサイトレイアウトの実装

サーバーの配置数日間無料で使用できるクラウドサーバー(Alibaba Cloud、Huawei Cl...

HTMLからReactを実装する方法を教えます

ReactとはReact は、効率的で高速なユーザー インターフェイスを構築するためのシンプルな J...

Linux(中心OS7)は、Java Webプロジェクトの実行環境を構築するためにJDK、Tomcat、MySQLをインストールします。

1. JDKをインストールする1. 古いバージョンまたはシステム独自のJDKをアンインストールする...

Navicat 経由で MySQL にリモート接続する方法

Navicat を使用して IP 経由で直接接続すると、次のようなさまざまなエラーが報告されます: ...

K8Sの5つのコントローラーの紹介と使用

目次k8sのコントローラータイプポッドとコントローラの関係デプロイメント(ステートレスアプリケーショ...