MySQL読み書き分離技術
1949 ワード
一、読み書き分離(主従複製)
**プライマリコピー:**プライマリサーバーに書き込み(insert/update/delete)文がある場合、サーバーから自動的に**読み書き分離を取得します:**insert/update/delete文は1台のサーバーを操作し、selectは別のサーバーを操作してライブラリから2つのスレッド、1つのI/Oスレッド、1つのSQLスレッドを生成します.i/oスレッドは、メインライブラリのbinlogを要求し、得られたbinlogログをrelay log(中継ログ)ファイルに書き込む.メインライブラリは、ライブラリi/oスレッドからbinlogを転送するためのlog dumpスレッドを生成します.SQLスレッドは、relay logファイルのログを読み込み、特定の操作に解析して主従の操作が一致し、最終的なデータが一致する
二、bin-logログ
コンセプト:binlogは、データベース上のすべての変更を記録し、ディスクにバイナリ形式で保存するバイナリ・ログです.データベースの変更履歴、データベースのインクリメンタル・バックアップとリカバリ、Mysqlのレプリケーション(プライマリ・データベースからのレプリケーション)を表示できます.簡単な要約:binlogログはMySQLデータベースのSQL文の増加/削除/変更を記録する役割である:主従レプリケーション、災害復旧を実現する
1、binlogログを開く手順1:MySQLプロファイルvi/etc/myを開く.cnfと修正ステップ2:サービス再開ステップ3:MySQLにログインbin-logログが開いているかどうかを確認する2、binlogログの内容リストを表示する
三、主従レプリケーションの具体的な構成手順
1、マスターサーバーの構成手順1:プロファイルの変更、binlogログのオープン手順2:プロファイルの変更、server_の設定id=数値(注:数値は一意でなければならない)ステップ3:サービスを再起動するステップ4:サーバからデータをコピーするためのユーザーを作成するcreate user'copyer'@'%'IDENTIFIED BY'6666';grant all on . to ‘copyer’@’%’; FLUSH PRIVILEGES; 手順5:ファイアウォールを閉じるか3306ポートを開くか、サーバーから設定手順1:プロファイルを変更し、server-id=数値を設定する(注:数値は一意でなければならない)手順2:サービスを再起動する手順3:change master文で同期ホームを指定する->プライマリ・サーバーに切り替え、現在のプライマリ・サーバー情報を表示するSQL文による:【show master status】->サーバから同期文change master to masterを実行するに切り替えるhost=‘192.168.142.131’,master_user=‘copyer’,master_password=“666666”,master_log_file=‘localhost-bin.000013’,master_log_pos=839; 手順4:サーバから同期を開始する手順5:サーバからの検証注意:->エラーが発生した場合は、MySQLに再ログインしてslaveサービス試行を再開できます.->仮想マシンでクローンされた2つのシステムを使用する場合、MySQLは同じであり、「UUIDs」の問題もエラーで報告され、MySQLデータディレクトリのautoを削除する必要があります.cnfを再起動し(注意:再起動すると自動的に一意のuuidが作成されます)、nysqlサービスを再起動すればいいです.3、テスト
**プライマリコピー:**プライマリサーバーに書き込み(insert/update/delete)文がある場合、サーバーから自動的に**読み書き分離を取得します:**insert/update/delete文は1台のサーバーを操作し、selectは別のサーバーを操作してライブラリから2つのスレッド、1つのI/Oスレッド、1つのSQLスレッドを生成します.i/oスレッドは、メインライブラリのbinlogを要求し、得られたbinlogログをrelay log(中継ログ)ファイルに書き込む.メインライブラリは、ライブラリi/oスレッドからbinlogを転送するためのlog dumpスレッドを生成します.SQLスレッドは、relay logファイルのログを読み込み、特定の操作に解析して主従の操作が一致し、最終的なデータが一致する
二、bin-logログ
コンセプト:binlogは、データベース上のすべての変更を記録し、ディスクにバイナリ形式で保存するバイナリ・ログです.データベースの変更履歴、データベースのインクリメンタル・バックアップとリカバリ、Mysqlのレプリケーション(プライマリ・データベースからのレプリケーション)を表示できます.簡単な要約:binlogログはMySQLデータベースのSQL文の増加/削除/変更を記録する役割である:主従レプリケーション、災害復旧を実現する
1、binlogログを開く手順1:MySQLプロファイルvi/etc/myを開く.cnfと修正ステップ2:サービス再開ステップ3:MySQLにログインbin-logログが開いているかどうかを確認する2、binlogログの内容リストを表示する
show master logs
クリア:reset master
リフレッシュ:flush logs
指定ログを表示するshow binlog events in ' '
ステップ1:リストを表示するステップ2:リフレッシュ(新しいファイルストレージを生成する)ステップ3:d 1データベースとt 1テーブルcreate database data 1を作成する;use data1; create table table1 (id int); 手順4:binlogログのSQL文の表示三、主従レプリケーションの具体的な構成手順
1、マスターサーバーの構成手順1:プロファイルの変更、binlogログのオープン手順2:プロファイルの変更、server_の設定id=数値(注:数値は一意でなければならない)ステップ3:サービスを再起動するステップ4:サーバからデータをコピーするためのユーザーを作成するcreate user'copyer'@'%'IDENTIFIED BY'6666';grant all on . to ‘copyer’@’%’; FLUSH PRIVILEGES; 手順5:ファイアウォールを閉じるか3306ポートを開くか、サーバーから設定手順1:プロファイルを変更し、server-id=数値を設定する(注:数値は一意でなければならない)手順2:サービスを再起動する手順3:change master文で同期ホームを指定する->プライマリ・サーバーに切り替え、現在のプライマリ・サーバー情報を表示するSQL文による:【show master status】->サーバから同期文change master to masterを実行するに切り替えるhost=‘192.168.142.131’,master_user=‘copyer’,master_password=“666666”,master_log_file=‘localhost-bin.000013’,master_log_pos=839; 手順4:サーバから同期を開始する手順5:サーバからの検証注意:->エラーが発生した場合は、MySQLに再ログインしてslaveサービス試行を再開できます.->仮想マシンでクローンされた2つのシステムを使用する場合、MySQLは同じであり、「UUIDs」の問題もエラーで報告され、MySQLデータディレクトリのautoを削除する必要があります.cnfを再起動し(注意:再起動すると自動的に一意のuuidが作成されます)、nysqlサービスを再起動すればいいです.3、テスト