マスタースレーブの同期を達成するためのMySQLデータベース

MySQLは、広く様々な用途に使用LAMPの重要な部分(のLinux + Apacheの+ MySQLの+のPerl / PHP / Pythonの)として、世界で最も人気のあるオープンソースのデータベース、オープンソース・ソフトウェア・ポートフォリオです。Web2.0の時代、人気のコミュニティフォーラムソフトウェア清華システムとWordpressのブログプラットフォームのネットワーク全体は、基礎となるアーキテクチャはMySQLのに基づいて達成することです。Web3.0の時代には、アリババは、Facebook、Googleや他の大手インターネット企業は、より柔軟なビルド成熟した大規模なMySQLデータベースクラスタ採用しています。MySQLのソースコードのブランチをベースとアリババのアリクラウドデータベースのMySQLのバージョンは、ダブル11高同時実行、テスト大量のデータの後に、優れたパフォーマンスとスループットを持っています。また、アリのクラウドデータベースのMySQLバージョンも読んで分離、データ圧縮、インテリジェントなトーン優れた高度な機能を記述するために最適化されています。

別々の読み取りおよび(読み取り/書き込み分割)、プライマリ・データベースのトランザクション処理を追加するように、変更は、(DELETE、INSERT、UPDATE)操作を削除し、データベースSELECTクエリ操作からの処理は、大規模なシステムで、独立した読み取りおよび書き込みで高い同時実行を向上させることで書き込みパフォーマンスは非常に重要なツール。それは非常に重要であるマスター・スレーブの同期管理のためのように、別々の読み取りおよび書き込みは、MySQLのマスタースレーブの同期を達成するための基礎です。


MySQLのデータ同期モードのRDS:

MySQLの5.1非同期モードのプライマリ同期RDS間のデータは、高性能非同期モードを使用するが、欠点がある確率がプライマリバックアップデータと矛盾することがあります。

5.5の間のMySQL装置マスタデータ同期のためのRDSは、このモードで書き込み性能が低下する準同期モードを使用するが、一貫性のないデータ・スタンバイの確率を大幅に低減するという利点を有します。あなたは非常に高い信頼性(例えば、金融システムなど)の要件のデータを持っている場合、あなたがMySQL用のRDSのバージョン(含む)上記5.5を購入することをお勧めします。

MySQLの5.6 GTID、性能を確保することができますが、また、スタンバイ・データの一貫性を確保するための特性を利用した新機能の間でのMySQL 5.6のためのRDSは、スタンバイ・データの同期。


MYSQLマスタースレーブ同期効果:

1.データの配布

均衡2.ロード(負荷分散)

3.バックアップ(コピー)

4.ハイアベイラビリティ(高可用性)およびフォールトトレランス


次のように詳細なプロセスからのマスタ同期は次のようになります。

1.メインサーバは、接続を確認します。

2.プライマリサーバは、サーバからのスレッドを開きます。

サーバーから3.、メインサーバのログビットオフセットは、マスターサーバーに指示します。

値が現在のビットオフセットバイナリログ未満であるか否かを前記メインサーバをチェックします。

5未満の場合は、サーバーからの通知は、データをフェッチします。

6.マスターサーバーのスレッドがスリープ状態に、睡眠を入力するために、サーバのスレッドから、この時間まで完全に取り、プライマリサーバからの連続データサーバから取得しました。

7.プライマリサーバが更新されると、メインサーバースレッドがアクティブであり、サーバからバイナリログにプッシュし、サーバ・スレッドからの操作に通知します。

8. SQLスレッドからバイナリログを実行した後、スリープ状態に入ります。


マスター・スレーブ同期プロセスを構築するためのMySQL:

(1)マスター同期環境はじめから

オペレーティング・システム環境:CentOSに64ビット

MySQLバージョン:MYSQL 5.1

IPマスターサーバー:192.168.106.1

IPサーバから:192.168.106.2

(2)主要口座番号に同期サーバを確立します

パスワードを設定するための時間でアクセス許可を設定しないでください、あまりにも簡単です:

1

2

GRANTレプリケーションスレーブ、FILE ONに* * TO?'replication'@'192.168.106.%'?IDENTIFIED?BY?'mysqlpassword '???。?。

?FLUSH PRIVILEGES;  

サーバーの設定ファイルから変更(3)

サーバID = 2

複製-野生無視-テーブル= mysqlの。%

開く必要があること#スレーブ・アップデートのログ

(4)マスタサーバのバージョンからのスナップショットを取得します

あなたがMYISAMまたは両方MYISAMある場合INNODBを持って、その後、サーバーのスナップショットをエクスポートするには、プライマリサーバ上で次のコマンドを使用します。

mysqldumpを-uroot -p --lock-テーブル--events --triggers --routines --flush-ログ--masterデータ= 2 --databases試験> db.sql

唯一のInnoDBは、次のコマンドを使用することです。

mysqldumpを-uroot -p --single-トランザクション--events --triggers --routines --flush-ログ--master-データ= 2 --databasesテスト> db.sql

これは、いくつかのパラメータを使用することに留意すべきです。

--single-トランザクションこのパラメータは、InnoDBのに適用されます。

mysqlのを除き、すべてのデータベースの他のライブラリ名を持つ--databasesの後ろに、後に、私はここだけのテストライブラリです。

--masterデータパラメータは、MySQLバイナリログ位置は、一方が使用される場合、スナップショットをエクスポート記録されます。

(5)サーバからのスナップショットのバージョンに復元します

mysqldumpを-uroot -p -h 192.168.106.2テスト<db.sql

後、サーバーからのスナップショットのバージョンを復元するには、マスターサーバーとサーバー上のデータから、この時間は同じです。

(6)変更マスタを使用してサーバからの同期マスタサーバから

バイナリログの名前と位置を見つけるために、grepコマンドを使用します

#grepの-i "変更マスタ" db.sql

; - MASTER_LOG_FILE = 'のMySQL-bin.000006'、MASTER_LOG_POS = 106に変更マスタ

CHANGE MASTERステートメントの生成は、その後から実行します

STOP SLAVE;?

変化する?MASTER?TO

MASTER_HOST = '192.168.106.1'、MASTER_USERは= '複製'、MASTER_PASSWORD = '123456'、MASTER_LOG_FILE = 'mysqlの-bin.000006'、

MASTER_LOG_POS = 106。

STARTのSLAVE;

(7)これは最終的には、構築に使用してマスターからの同期を完了します

SLAVEのステータスを表示。

すべてがYesであれば表示Slave_IO_RunningとSlave_SQL_Running状態が、その後、彼らは成功しました。

注意:設定ファイルに書き込まれた情報を同期しないでください管理が便利ではないように、特に変更は再起動する必要があります。


参考:

おすすめ

転載: www.cnblogs.com/mynale/p/11018716.html