#msyql 5.6マスタースレーブ障害回復プロセス
################## aultシミュレーション ###主库 #1 データベースの構築とテーブルの構築 mysql -e " データベースクラスの削除; データベースクラスの作成; クラスの使用; テーブルStudentの作成( 名前CHAR(20でない)ヌル、 年齢INT(2)ないNULL); " ## 2 ライブラリからのコマンドで実行することができるコマンド、等、搬送項目3にノックを実行することなくデータ#に挿入 するための I で { 1 .. 10 }; do mysql -e " USE class; insert into student values( 'aaabbb $ i'、$ i); "; done mysql -e " select * from class.student; " /etc/init.d/ mysqld stop #### 3 execute mysql -e ' stop slave; show slave status \ G; ' | grep Slave ## ##メインライブラリを実行した後、次のコマンドを実行します mysql -e ' show slave status \ G; ' | grep Slave ######################### ###### From√主操作手順 ## 1 ## master.infoファイルを表示し、最大のposを持つファイルを比較して、新しいマスターデータベースとして選択します mysql -e ' show slave status \ G; ' | grepRead_Master_Log_Posは 頭を/ usr / local / MySQLの/データ/マスター。情報 ###データベースディレクトリ、削除master.infoとリレーログ奴隷-更新がある場合は、ログ・ビンを開いて、ファイル-log.info、my.cnfの設定ファイルをそして、読み取り専用はコメントアウトする必要があります。リセットマスターを実行 mv -f / usr / local / mysql / data / master。Info {、bak} mv -f / usr / local / mysql / data / relay-log。Info {、 mysql } -e " *にレプリケーションスレーブを付与します。*を 'replpwd'で識別される 'repl' @ '%'に フラッシュします。特権をフラッシュし 、mysql.userからユーザー、ホストを選択します。" sed -i ' s / ^ log-slave -updates = /#log-slave-updates = / g ' / etc / my.cnf sed -i ' s / ^ read-only = /#read-only = / g ' / etc / my.cnf egrep -v ' ^#| ^ $ ' / etc / my.cnf /etc/init.d/ mysqld restart mysql -e " スレーブの停止;スレーブの リセット; マスターのリセット; " mysql -e " マスターのステータス\ G " ############### ##########その他库 mysql -e " スレーブを停止し、スレーブを リセットし、 マスターを変更してマスターをマスター ホストに変更 = ' 192.168.11.41 '、 MASTER_USER = ' repl ' 、 MASTER_PASSWORD = ' replpwd ' 、 MASTER_PORT = 3306 、 MASTER_LOG_FILE = ' mysql-bin.000001 ' 、 MASTER_LOG_POS = 149976 、 MASTER_CONNECT_RETRY = 10 ; start slave; " mysql -e ' show slave status \ G; ' | grep スレーブ ############################################## #############古いメインライブラリのbinlogを使用してデータを復元します #################1。まず古いは/ usr / local / mysqlの/データを見つける / によって新しいプライマリ・データベースでmaster.infoバイナリログファイル名とファイルがあるべきMASTER_LOG_POSの値を見つけるための二行目とファイルの3行 ヘッドは/ usr / local / mysqlの/データ / マスター。情報 #23である #mysql -bin。000002 #65428 #192.168。11.43 #repl #replpwd #3306 #10 #0 # ########## 2 。mysqlbinlogはコマンドデータを介しては、SQLファイルを抽出し、そして新しいプライマリ・データベースまでの同期 ## - B test1のデータベース名 mysqlbinlogは -b test1の--start-位置= 65428 MySQLのビン。000002 > test.sql内 SCP test.sql内ルート@ 192.168。11.41:〜/ ########### 。3 。test.sql内の新しいマスタファイルリポジトリに導入さ msyql -e " ソース/root/test.sql " ### #######データリカバリの状況を確認する mysql -e " select * from test.student; " #######################机机主库 ### 1を復元し ます。 MySQLの -e " STOPスレーブ; RESETスレーブ; RESETマスター; " ##### 2 。 #### /etc/my.cnf [mysqld]の下に1行を追加します。読み取り専用= 1 sed -i '/ \ [mysqld \] /読み取り専用= 1 ' / etc / my.cnf /etc/init.d/ mysqld restart ######### 3 ## MASTER_LOG_FILE = ' mysql-bin.000001 '、MASTER_LOG_POS = 149976 、新しいメインライブラリで見つかったファイルとノードの場合 mysql -e " stop slave; reset slave; CHANGE MASTER TO MASTER_HOST = ' 192.168.11.41 ' 、 MASTER_USER = ' repl ' 、 MASTER_PASSWORD = ' replpwd ' 、 MASTER_PORT = 3306、 MASTER_LOG_FILE = ' mysql-bin.000001 ' 、 MASTER_LOG_POS = 149976 、 MASTER_CONNECT_RETRY = 10 ; スレーブを開始します。" mysql -e ' show slave status \ G; ' | grep Slave