ログポイントベースのレプリケーション 1. マスターデータベースとスレーブデータベースに専用のレプリケーションアカウントを作成する MariaDB [従業員]> '123456' によって識別される 'repl'@'172.%' のユーザーを作成します。 運用中のパスワードは、一定のパスワード強度を達成するために関連する仕様を満たす必要があり、マスター データベースにはスレーブ データベース上の特定のネットワーク セグメントからのみアクセスできる必要があることに注意してください。 2. マスターデータベースとスレーブデータベースにレプリケーション権限を付与する MariaDB [従業員]> *.* のレプリケーション スレーブを 'repl'@'172.%' に付与します。 3. メインデータベースを構成する バイナリ ログを有効にするにはサービスを再起動する必要があります。server_id は、コマンド ラインや構成ファイルと組み合わせて再起動不要の永続的な構成を実現できる動的パラメーターです。server_id はクラスター内で一意であることに注意してください。 [mysqld] log_bin = /var/log/mysql/mariadb-bin log_bin_index = /var/log/mysql/mariadb-bin.index binlog_format = 行 サーバーID = 101 注: ログをデータから分離し、できれば異なるデータ パーティションに分けることをお勧めします。 4. スレーブライブラリを構成する オプション log_slave_update は、リレー ログ relay_log をローカル binlog に保存するかどうかを決定します。リンク レプリケーションが構成されている場合は、このオプションが必須です。server_id はクラスター内で一意であることに注意してください。 [mysqld] # レプリケーション log_bin = /var/log/mysql/mariadb-bin log_bin_index = /var/log/mysql/mariadb-bin.index サーバーID = 102 # 奴隷 リレーログ = /var/log/mysql/リレー-bin リレーログインデックス = /var/log/mysql/リレー-bin.index リレーログ情報ファイル = /var/log/mysql/リレービン.info log_slave_updates = オン 読み取り専用 5. ライブラリからデータを初期化する ここでは、mysqldump を使用してマスター データベースをバックアップします。本番環境では、ロックフリーのホット バックアップ (innodb エンジンに基づく) には xtrabackup を使用することをお勧めします。 従業員データベースのデータをメインデータベースにバックアップする 次のようにコードをコピーします。 mysqldump --single-transaction --master-data=1 --triggers --routines --databases employees -u root -p >> backup.sql バックアップファイルbackup.sqlをscpまたはdockerボリューム経由でスレーブサーバーにマウントし、スレーブライブラリにインポートします。 mysql -u ルート -p < バックアップ.sql 6. レプリケーションリンクを開始する [email protected]と[email protected]があり、データはmysqldumpを通じてスレーブに同期されています。次に、スレーブサーバーでレプリケーションリンクを構成します。 MariaDB [(なし)]> マスターを MASTER_HOST='master'、MASTER_USER='repl'、MASTER_PASSWORD='123456'、MASTER_LOG_FILE='mariadb-bin.000029'、MASTER_LOG_POS=516 に変更します。 クエリは正常、影響を受けた行は 0 行 (0.02 秒) スレーブでレプリケーションリンクを開始する MariaDB [(なし)]> スレーブを起動します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) 7. スレーブライブラリのスレーブステータスを確認する Slave_IO_Running と Slave_SQL_Running は YES である必要があります。エラーが発生した場合は、Last_IO_Error または Last_SQL_Error のプロンプト情報を詳しく読んでください。 MariaDB [(なし)]> スレーブステータスを表示\G ************************** 1. 行 **************************** Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: マスター マスターユーザー: repl マスターポート: 3306 接続再試行: 60 マスターログファイル: mariadb-bin.000029 読み取りマスターログ位置: 516 リレーログファイル: リレーbin.000002 リレーログ位置: 539 リレーマスターログファイル: mariadb-bin.000029 スレーブIO実行中: はい スレーブSQL実行中: はい レプリケート_Do_DB: レプリケート_無視_DB: テーブルの複製: 無視テーブルを複製: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: 最終エラー番号: 0 最終エラー: スキップカウンタ: 0 実行マスターログポジション: 516 リレーログスペース: 831 Until_Condition: なし ログファイルまで: ログ位置まで: 0 マスターSSL許可: いいえ マスターSSLCAファイル: マスターSSLCAパス: マスターSSL証明書: マスターSSL暗号: マスターSSLキー: マスターより遅れている秒数: 0 Master_SSL_Verify_Server_Cert: いいえ 最終IOエラー番号: 0 最後のIOエラー: 最終SQLエラー番号: 0 最後のSQLエラー: Replicate_Ignore_Server_Ids: マスターサーバーID: 101 マスターSSL証明書: マスターSSLCrlパス: 使用Gtid: いいえ Gtid_IO_Pos: ドメイン ID を複製: ドメイン ID を無視する複製: Parallel_Mode: 保守的 セット内の 1 行 (0.00 秒) 8. メインライブラリのダンプスレッドを確認する binlogダンプスレッドが正しく開始されているかどうかを確認します MariaDB [(なし)]> プロセスリストを表示 \G ************************** 1. 行 **************************** 識別子: 7 ユーザー: root ホスト: 172.20.0.1:41868 db: 従業員 コマンド: スリープ 時間: 56 州: 情報: NULL 進捗: 0.000 ************************** 2. 行 **************************** 識別子: 10 ユーザー: repl ホスト: 172.20.0.3:45974 デシベル: NULL コマンド: Binlog ダンプ 時間: 246 状態: マスターはすべてのバイナリログをスレーブに送信しました。バイナリログが更新されるのを待機しています。 情報: NULL 進捗: 0.000 2 行目でコマンド Binlog Dump が開始されていることがわかります。これは、レプリケーション スレッドが正常に開始されたことを証明しています。 9. まとめ アドバンテージ
欠点
1 マスター複数スレーブ環境では、古いマスターがクラッシュし、クラスター内で新しいマスターが選出された場合、他のスレーブは新しいマスターと再同期する必要があります。各 DB のバイナリログは独立して存在するため、同期を開始するログ ポイントを見つけるのは困難です。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux がますます人気になっている 10 の理由
>>: Vue2.0の双方向データバインディング原則を手動で実装する
SSH ターミナル (putty、xshell など) を使用して Linux サーバーに接続し、時...
Firefox は、多くの拡張機能とプラグインを備えた、よく使用されるブラウザです。IE に比べて多...
この記事では、マウスがドロップダウンボックスの上を通過するときにドロップダウンボックスを表示するため...
vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...
1. 何ですか視差スクロールとは、複数の背景レイヤーを異なる速度で動かすことで、3次元のモーション...
目次1. JSの特徴1.1 マルチパラダイム1.2 説明1.3 シングルスレッド1.4 ノンブロッキ...
英語: IE では、リンク タグによって href が自動的に補完されます。 Ajax Link T...
アイデア:外側のボックスは背景を設定し、内側のボックスは背景の幅と高さを設定し、ボックスを動かすアニ...
シェル スクリプトで電子メールを作成する必要がある場合は、コマンド ラインから電子メールを送信する知...
この記事の例では、参考までに、シンプルなショッピングカートモジュールを実装するためのjsの具体的なコ...
最近、自宅サーバーにクラウドディスクを導入する予定なので、一連の環境構築作業を始めました。MySQL...
目次序文undefined と null の混同紛らわしい数値の加算と文字列の連結戻り文の改行の問題...
目次1. ルーティング構成2. Vueページのネスト3. ネストされた関係1. ルーティング構成 定...
序文この記事では主に、シングルクォートやバックスラッシュを含む値を挿入するMySQLステートメントに...
概要港とは何ですか?英語の単語の意味は「港」です。 Harborはコンテナ(貨物)を保管するために使...