導入 mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツールのコレクションです。この記事では、mysqlreplicate ツールを使用して MySQL マスター/スレーブ環境を迅速に構築する方法を紹介します。 HE1:192.168.1.248 スレーブ HE3:192.168.1.250 マスター 実際の戦闘 パート1: mysql-utilitiesをインストールする [root@HE1 ~]# tar xvf mysql-utilities-1.5.4.tar.gz [root@HE1 ~]# cd mysql-utilities-1.5.4 [root@HE1 mysql-utilities-1.5.4]# python setup.py ビルド [root@HE1 mysql-utilities-1.5.4]# python setup.py をインストール パート2: 基本的な使い方 [root@HE1 ~]# mysqlreplicate --help MySQL ユーティリティ mysqlreplicate バージョン 1.5.4 ライセンスタイプ: GPLv2 使用方法: mysqlreplicate --master=root@localhost:3306 --slave=root@localhost:3310 --rpl-user=rpl:passwd mysqlreplicate - マスターとのレプリケーションを確立する オプション: --version プログラムのバージョン番号を表示して終了する --help ヘルプメッセージを表示して終了します --license プログラムのライセンスを表示して終了する --master=MASTER マスター サーバーの接続情報 (形式: <ユーザー>[:<パスワード>]@<ホスト>[:<ポート>][:<ソケット>] または <ログインパス>[:<ポート>][:<ソケット>] または <config- パス>[<[グループ]>]。 --slave=SLAVE スレーブ サーバーの接続情報 (形式: <ユーザー>[:<パスワード>]@<ホスト>[:<ポート>][:<ソケット>] または <ログインパス>[:<ポート>][:<ソケット>] または <config- パス>[<[グループ]>]。 --rpl-user=RPL_USER レプリケーションユーザーのユーザー名とパスワード 要件は、次の形式で指定します: <user>[:<password>] または <ログインパス>。例: rpl:passwd -p、--pedantic は、マスターとスレーブ間でストレージ エンジンが異なる場合は失敗します。 --test-db=TEST_DB レプリケーション設定のテストに使用するデータベース名 (オプション) --master-log-file=マスターログファイル このマスター ログ ファイルを使用してスレーブを初期化します。 --master-log-pos=マスターログPOS マスターログファイルのこの位置を使用して開始します 奴隷。 -b, --最初から開始 最初に記録されたイベントからレプリケーションを開始します マスターのバイナリログ。--master- では無効です。 log-file または --master-log-pos。 --ssl-ca=SSL_CA 信頼できるSSLのリストを含むファイルへのパス CA。 --ssl-cert=SSL_CERT SSL証明書ファイルの名前 安全な接続を確立します。 --ssl-key=SSL_KEY SSL接続を確立するために使用するSSLキーファイルの名前 安全な接続。 --ssl=SSL サーバー接続にSSLの使用が必要かどうかを指定します SSL。暗号化された接続を確立できない場合は、 接続試行が失敗する。デフォルトは0(SSLなし) 必須)。 -v、--verbose は表示される情報量を制御します。例: -v = 詳細、-vv = より詳細、-vvv = デバッグ -q、--quiet は、静かな実行のためにすべてのメッセージをオフにします。 パート3: メインライブラリの準備 マスターデータベースにレプリケーションユーザーを作成する [root@HE3 ~]# mysql -uroot -p パスワードを入力してください: MySQL モニターへようこそ。コマンドは ; または \g で終わります。 MySQL接続IDは23329です サーバーバージョン: 5.7.16-log MySQL コミュニティサーバー (GPL) Copyright (c) 2000, 2016, Oracle およびその関連会社。無断複写・転載を禁じます。 OracleはOracle Corporationおよびその関連会社の登録商標です。 その他の名称は各社の商標である場合があります。 所有者。 ヘルプを表示するには、「help;」または「\h」と入力します。現在の入力ステートメントをクリアするには、「\c」と入力します。 mysql> 'MANAGER' によって識別される 'mysync'@'%' に、*.* 上のレプリケーション クライアント、レプリケーション スレーブを許可します。 クエリは正常、影響を受けた行は 0 行、警告は 1 件 (0.01 秒) mysql> 権限をフラッシュします。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) パート4: ワンクリック構成 スレーブライブラリを設定し、次のコマンドを実行します [root@HE1 ~]# mysqlreplicate --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 --rpl-user=mysync:MANAGER -b 警告: コマンド ライン インターフェイスでパスワードを使用すると安全でない可能性があります。 # 192.168.1.250 のマスター: ... 接続されました。 # 192.168.1.248 のスレーブ: ... 接続されました。 # マスター上のバイナリ ログをチェックしています... # レプリケーションを設定しています... # ...終わり。 診る パート 1:mysqlrplcheck [root@HE1 ~]# mysqlrplcheck --master=sys_admin:[email protected]:3306 --slave=sys_admin:[email protected]:3306 -s 警告: コマンド ライン インターフェイスでパスワードを使用すると安全でない可能性があります。 # 192.168.1.250 のマスター: ... 接続されました。 # 192.168.1.248 のスレーブ: ... 接続されました。 テストの説明ステータス --------------------------------------------------------------------------- マスターのバイナリログをチェックしています [pass] binlog 例外はありますか? [pass] レプリケーション ユーザーは存在しますか? [pass] server_id値の確認 [pass] server_uuid値の確認 [pass] スレーブはマスターに接続されていますか? [pass] マスター情報ファイルのチェック[合格] InnoDB の互換性を確認中 [合格] ストレージ エンジンの互換性を確認しています [合格] lower_case_table_names 設定の確認 [pass] スレーブの遅延を確認中(マスターより数秒遅れ)[合格] # # スレーブステータス: # Slave_IO_State: マスターがイベントを送信するのを待機中 マスターホスト: 192.168.1.250 マスターユーザー: mysync マスターポート: 3306 接続再試行: 60 マスターログファイル: mysql-bin.000003 読み取りマスターログ位置: 384741 リレーログファイル: HE1-relay-bin.000004 リレーログ位置: 384954 リレーマスターログファイル: mysql-bin.000003 スレーブIO実行中: はい スレーブSQL実行中: はい レプリケート_Do_DB: レプリケート_無視_DB: テーブルの複製: 無視テーブルを複製: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: 最終エラー番号: 0 最終エラー: スキップカウンタ: 0 実行マスターログポジション: 384741 リレーログスペース: 1743112 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を無視する: マスターサーバー ID: 1250 マスター_UUID : 1b1daad8-b501-11e6-aa21-000c29c6361d マスター情報ファイル: /data/mysql/master.info SQL_遅延: 0 SQL_Remaining_Delay: なし Slave_SQL_Running_State: スレーブはすべてのリレーログを読み取りました。さらに更新を待機しています。 マスター再試行回数: 86400 マスターバインド: 最終IOエラータイムスタンプ: 最終SQLエラータイムスタンプ: マスターSSL証明書: マスターSSLCrlパス: 取得されたGtidセット: 実行されたGtidセット: 自動位置: 0 Replicate_Rewrite_DB: チャンネル名: マスターTLSバージョン: # ...終わり。 その他の一般的なツール パート 1: mysqldiskusage はデータベースのスペース サイズをチェックします [root@HE1 ~]# mysqldiskusage --server=sys_admin:MANAGER@localhost 警告: コマンド ライン インターフェイスでパスワードを使用すると安全でない可能性があります。 # ローカルホスト上のソース: ... 接続されました。 # データベースの合計: +---------------------+--------------+ | db_name | 合計 | +---------------------+--------------+ | 最大スケールスキーマ | 14,906 | |mysql | 14,250,013 | | パフォーマンススキーマ | 818,071 | | システム | 500,802 | | 925,929,868 | +---------------------+--------------+ データベースの合計ディスク使用量 = 941,513,660 バイトまたは 897.90 MB #...終わり。 パート2: mysqlindexcheckは冗長なインデックスをチェックする [root@HE1 ~]# mysqlindexcheck --server=sys_admin:MANAGER@localhost wms 警告: コマンド ライン インターフェイスでパスワードを使用すると安全でない可能性があります。 # ローカルホスト上のソース: ... 接続されました。 # 次のインデックスは、テーブル wms.auth_user に対して重複または冗長です。 # BTREE を使用して、`wms`.`auth_user` (`user_name`) に一意のインデックス `index_user_name` を作成します。 # は冗長または重複している可能性があります: BTREE を使用して、`wms`.`auth_user` (`user_name`, `state`) に `user_name` インデックスを作成します。 # 次のインデックスは、テーブル wms.basic_storeage_sapce に対して重複または冗長です。 # BTREE を使用して、`wms`.`basic_storeage_sapce` (`store_id`、`district_id`、`store_space_no`) に `idx_store_district_space_no` インデックスを作成します。 # は冗長または重複している可能性があります: BTREE を使用して、`wms`.`basic_storeage_sapce` (`store_id`、`district_id`、`store_space_no`) に一意のインデックス `idx_store_district_space_no_un` を作成します。 --要約-- mysql-utilities ツール セットの mysqlreplicate を使用して MySQL マスター/スレーブを構成するのは非常に簡単であることがわかります。mysqlreplicate はさまざまなパラメータも提供します。この記事の -b は、レプリケーションがマスター バイナリ ログの最初のイベントから開始されることを意味します。 mysqlrplcheck の -s は、show slave status\G の出力を参照します。著者の能力の限界と記事執筆の急ぎにより、記事には必然的に誤りや不正確な点があります。不適切な点がありましたら、読者の皆様のご批判と訂正を心からお願い申し上げます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: 1つの記事でTypeScriptのデータ型について学ぶ
>>: Linux で SVN サーバーをインストールする方法
mysql 行から列へ、列から行へ難しい文章ではないので、詳しく説明はしません。文章を読むときは、一...
イベント応答の更新: 要求されたときのみ更新1. JS HTML DOM または jQuery を介...
W3C 標準化プロセスは 7 つの異なるステップに分かれています。 W3C 標準化プロセスは 7 つ...
序文Vue で要素を初回取得できない問題の解決方法は、ポップアップ ウィンドウで要素を取得するために...
DockerイメージからDockerfileを取得する docker 履歴 --format {{....
Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...
例を見てみましょう。コードは次の通り非常にシンプルです。コードをコピーコードは次のとおりです。 &l...
目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...
序文当社の MySQL オンライン環境のほとんどはバージョン 5.7.18 を使用しています。このバ...
目次1. はじめに2. 詳しい説明2.1、非同期2.1.1. 関数はPromise以外のオブジェクト...
最近、Microsoft は 2019 サーバー システムをリリースしました。一般的に、Micros...
目次ルーティングとは純粋コンポーネントの基本的な使用純粋なコンポーネントの使用に関する注意事項ルーテ...
アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するため...
関連記事: Web コンテンツ ページを作成するための 9 つの実用的なヒント<br />...
目次JS スリーマウンテンズ同期 非同期同期と非同期の違い範囲、終了関数スコープチェーンブロックスコ...