MySQLフィルタリングレプリケーションのアイデアの詳細な説明

MySQLフィルタリングレプリケーションのアイデアの詳細な説明

mysql フィルター レプリケーション

2つのアイデア:

  • メインライブラリのバイナリログに実装されています (推奨されません。メインライブラリのバイナリログが完全であることを確認してください)
  • ライブラリのSQLスレッドから実装

したがって、バイナリログの整合性を可能な限り保証する必要があるため、マスター/スレーブ フィルタリング レプリケーションは使用せず、スレーブ データベースでのみ使用するようにしてください。

メインデータベースに実装

マスター側のバイナリ ログの整合性を保証するために、バイナリ ログ フィルタリングは使用されません。

メインライブラリの構成パラメータ:

# 設定ファイルに binlog-do-db=db_name を追加します。# ホワイトリストを定義し、指定されたデータベースに関連する操作のみをバイナリ ログに記録します。メイン データベースがクラッシュした場合、指定されたデータベースの内容のみが復元されます。ログが不完全になるため、メイン サーバーではこの方法は推奨されません。
binlog-ignore-db=db_name #ブラックリストを定義します。無視として定義されたデータベースへの書き込み操作はバイナリ ログに記録されません。

ライブラリから実装

設定ファイルをダウンロードできます

REPLICATE_DO_DB = (db_list) #コピーするライブラリをフィルターしますREPLICATE_IGNORE_DB = (db_list) #コピーしないライブラリREPLICATE_DO_TABLE = (tbl_list) #テーブルをフィルターしますREPLICATE_IGNORE_TABLE = (tbl_list) #フィルターされたテーブルを無視しますREPLICATE_WILD_DO_TABLE = (wild_tbl_list) #通常の一致に従ってテーブルをフィルターしますREPLICATE_WILD_IGNORE_TABLE = (wild_tbl_list) #通常の一致に従ってこれらのテーブルのフィルターを無視しますREPLICATE_REWRITE_DB = (db_pair_list)
#ソースデータベースのdb1のステートメントをスレーブデータベースのdb2に書き換えます
レプリケーション フィルターの変更 REPLICATE_REWRITE_DB = ((db1, db2));

文法:

公式ウェブサイトの構文リファレンス: https://dev.mysql.com/doc/refman/5.7/en/change-replication-filter.html

レプリケーション フィルターの変更 filter[, filter][, ...]

フィルター: {
    REPLICATE_DO_DB = (db_list)
  | REPLICATE_IGNORE_DB = (db_list)
  | REPLICATE_DO_TABLE = (tbl_list)
  | REPLICATE_IGNORE_TABLE = (テーブルリスト)
  | REPLICATE_WILD_DO_TABLE = (ワイルドテーブルリスト)
  | REPLICATE_WILD_IGNORE_TABLE = (ワイルドテーブルリスト)
  | REPLICATE_REWRITE_DB = (db_pair_list)
}
# ライブラリからフィルターされたレプリケーションを実装します stop slave sql_thread;
レプリケーションフィルターを変更します。replicate_do_db=(db);
​ スレーブ sql_thread を開始します。

# フィルターされたレプリケーションをキャンセルします stop slave sql_thread;
​ レプリケーション フィルターを変更します。replicate_do_db=();
​ スレーブ sql_thread を開始します。

いくつかの質問

マスター データベースはテーブルを削除しますが、スレーブ データベースにはこのテーブルがないため、スレーブ データベースの SQL スレッドが閉じられます。

または、マスターとスレーブは正常ですが、スレーブが誤ってテーブルを削除し、その後マスターがそのテーブルを削除します。すると、スレーブは存在しないテーブルを削除し、エラーを報告して、SQL スレッドを終了させます。

解決策: この手順をスキップする

解決策: スレーブ SQL スレッドの誤った操作手順をスキップします。stop slave sql_thread;

#Executed_Gtid_Setを見つけて19まで実行
gtid_next='94fc1fbe-b7a0-11eb-b0a0-000c2969aba1:20' を設定し、gtid を次のトランザクションに割り当てて、開始し、コミットします。
gtid_next=automatic に設定すると、システムが自動的に gtid を割り当てます。
スレーブ sql_thread を開始します。

MySQL フィルタリングとレプリケーションのアイデアの詳細な説明に関するこの記事はこれで終わりです。MySQL フィルタリングとレプリケーションに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL はどのようにしてマルチバージョンの同時実行性を実現するのでしょうか?
  • MySQL 外部キー (FOREIGN KEY) の使用例の詳細な説明
  • MySQL のストアド プロシージャを使用して 100 万件のレコードをすばやく生成する方法
  • Pythonインターフェース自動化はpymysqlデータベース操作プロセスを簡単に分析します
  • MySQL トランザクション制御フローと ACID 特性
  • MySQLはストアドプロシージャを使用して数百万のデータを素早く追加します。サンプルコード
  • MySQL で重複時間を削除して時間差を計算する実装
  • MySQL データベースでは、datetime、bigint、timestamp を使用して時間の選択を表します。時間を保存するのに最も効率的なのはどれですか?
  • MySQL グローバルロックとテーブルレベルロックの具体的な使用法
  • Redo ログと Undo ログに基づく MySQL クラッシュ回復の分析

<<:  画像ファイルの形式とその選択方法

>>:  CSS と JavaScript を使用して管理ダッシュボードのレイアウトを構築するためのサンプル コード

推薦する

15行のCSSコードがAppleデバイスをクラッシュさせる可能性があり、最新のiOS 12も例外ではない

たった15行のCSSでiPhoneがクラッシュするWire のセキュリティ研究者 Sabri Had...

泡の小さな鋭角効果を実現するCSS

効果画像(境界線の色が薄すぎるので、{} で囲みます): { }参考リンク Pure CSS バブル...

Linux ソースコードの解析 epoll

目次1. はじめに2. シンプルなepollの例2.1、epoll_create 2.2、構造体イベ...

VMware ESXi CLI の一般的なコマンドを調べる

目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...

モバイルウェブ画面適応(rem)

序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...

MySQL における単一テーブルと複数テーブル、およびビューと一時テーブルに対する Update と Select の違い

1. テーブルAのデータを使用してMySQLのテーブルBの内容を更新するたとえば、データ テーブル内...

Linux trコマンドの使い方

01. コマンドの概要tr コマンドは、標準入力からの文字を置換、圧縮、削除できます。ある文字セット...

Vue の匿名スロットと名前付きスロットの詳細な説明

目次1. 匿名スロット2. 名前付きスロット要約するスロット (slot) は、Vue のコンテンツ...

MySQL で誤って削除したテーブル データを回復する方法 (必読)

バックアップがあれば、非常に簡単です。最新のバックアップ データを生成し、mysqlbinlog を...

js を使用してシンプルなスイッチ ライト コードを実装する

体の部位: <button>ライトのオン/オフを切り替える</button>...

ファイル操作のためのLinuxシステムコール

目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...

Vue のスロットの使用法と適用シナリオの詳細な分析

スロットとは何ですか? Vue では、子コンポーネント タグの中央に何もラップできないことはわかって...

負のマージントップ値は、ラベルテキストと入力の間の垂直中央揃えの問題を解決します。

ラベルテキストと入力の垂直方向の中央揃えを調整するのは簡単ではありません。padding、verti...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...