リーダーでマスターコピーから分離
まず、データベースのマスタースレーブのレプリケーション
MySQLは、プライマリマスタとMySQLデータ同期(マスターサーバからの同期データ)をサーバからコピーされ
原理:各トランザクションの更新データの完了前1.Master、バイナリログにこれらの変更を記録し、通知ストレージエンジンが書き込みバイナリファイルの完了後にトランザクションをコミット
2.Slaveは、マスタープライマリサーバ上の共通の接続を確立するために、I / Oスレッドを開いて、バイナリログリレーログのマスターにサーバーからコピーマスターサーバーマスターからバイナリログイベントを読み込み、その記録しますリレーログ(マスターサーバーで更新を待ち続けます)
3.SQLスレーブスレッド(スレッドからSQL)は、マスタプライマリサーバと同期するように、これらのイベントを再生、リレーログからイベントを読み取り
マスタースレーブのレプリケーション構成
1.サーバー上のサーバー、MySQLのインストール(インストールノートの前にMySQLのビュー)からプライマリ同期時間を達成するために3
2.メインサーバーの設定
:設定は、MySQL設定ファイル(mysqlのサービスを再起動することを忘れないでください)変更のvimな/etc/my.cnfを
サーバからの認可
*上のレプリケーションスレーブを付与*「123456」で識別される「myslave'@'192.168.0.%」へ。
サーバからスレーブ(同じサーバーからの両方)の設定
:設定は、MySQL設定ファイル(mysqlのサービスを再起動することを忘れないでください)変更のvimな/etc/my.cnfを
ログデータベース:MySQLの-uroot - p123456
(再起動後にデータベースを覚えてSYNC)プライマリサーバの同期をマスター:
MySQLの> 、master_user = 'myslave'、master_password = '123456'、MASTER_LOG_FILE = 'マスターbin.000001' 192.168.0.101」MASTER_HOST =に変更マスタ、MASTER_LOG_POS = 572。
MASTER_LOG_FILE:マスターマスターのバイナリログ名
MASTER_LOG_POS:バイナリログの位置変数
(図に示すように、マスタサーバ上の図)MASTER_LOG_FILEとMASTER_LOG_POSの値を参照
MySQLの> ショーマスターのステータス。
補足:0の値に設定MASTER_LOG_POSは自動的にMASTER_LOG_POSを取得します
データ同期スレーブ状態(下図)を参照
MySQLの> ショースレーブステータス\ G
2つのコイルがはい赤色値であることを保証するために
4.テスト
マスタープライマリサーバ上のライブラリを作成し、サーバーから同期するかどうかを確認するためにデータを追加するテーブルを作成し、
プライマリサーバーをマスター:
サーバからスレーブ:
テストデータ同期の成功
第二に、データベースの別々の読み取りと書き込み
分離はからのマスターコピーに基づくように、マスターコピーの読み取りから分離することはできません
利点:あなたは、プライマリサーバを逃がし仕事のプレッシャーを軽減することができます
読むと2つのソフトウェアの書き込み分離:アメーバとMySQLのプロキシ
以下のように設定環境
アメーバ構成インストール
アメーバ必要JDKのサポートは、JDK1.5開発に基づいており、それは、バージョンJDK1.5またはJDK1.6を使用するのが最善だろう
1.ダウンロードしてJDKをインストール
./jdk-6u14-linux-x64.bin
次/usr/local/jdk1.6へのファイルの解凍を移動し、フォルダを作成します。2.
mkdir /usr/local/jdk1.6」MV jdk1.6.0_14 /usr/local/jdk1.6
3. / etc / profileをする環境変数を追加するファイル構成、ファイルを実行します
vimのは/ etc / profile
そして、ソースは/ etc / profile
4.インストールアメーバ
新しいアメーバフォルダのアクセス権を与えることを抽出
タールzxfアメーバ-MySQLのバイナリ-2.2.0.tar.gz -Cは/ usr / local /アメーバ/
chmodコマンド-R 755は/ usr / local /アメーバ/
[スタート](結果は図正常にインストールするに表示されます)
5. 3台のデータベース・サーバに与えられた権限付与
MySQLの> *上のすべてを与える* 『123456「で識別される』 test@'192.168.0.%に。
6.設定のamoeba.xmlプロフィール
vimの/usr/local/amoeba/conf/amoeba.xml
7.設定dbServers.xmlプロフィール
vimの/usr/local/amoeba/conf/dbServers.xml
8.スタートテストサービス
/ usr / local /アメーバ/ binに/アメーバ開始
テストマシン上のログテストデータベース
別々の読み取りおよび書き込み機能検査
マスターライブラリを作成するには、プライマリサーバが2つのスレーブを閉じ、その後、データはサーバの機能から読み取る実装するかどうかを確認するために何を参照して、データを書き込むために、スレーブ2からサーバ機能にサーバーから別のデータを書き込むことではなく、テストの問い合わせへの機会このメッセージに、スレーブからスレーブサーバの機能が同期されないので、閉じ
サーバーから192.168.0.103
サーバーから192.168.0.104
マスタープライマリサーバ192.168.0.101
試験機
これは、サーバー上のデータから、その2つだけお問い合わせは、このマシンの成功時にメインサーバのネイティブデータでのみクエリを見つけました
インストールと設定MySQLのプロキシ(ソースパッケージをインストール)
インストールパッケージを抽出1.ダウンロード
タールzxf mysqlのプロキシ-0.8.5-linuxの-EL6-x86-64bit.tar.gz
MVのmysql-プロキシ-0.8.5-linuxの-EL6-x86-64bitは/ usr / local / mysqlのプロキシ
2.ストレージの設定ファイルとログディレクトリを作成します。
CDは/ usr / local / mysqlのプロキシ " MKDIRログ " MKDIRのconf
3.作成した構成ファイルと起動スクリプトを変更します
vimの/usr/local/mysql-proxy/conf/mysql-proxy.conf
[mysql-proxy]
user=root
proxy-address=0.0.0.0:3306 \\所有IP的3306端口
proxy-backend-addresses=192.168.0.101:3306 \\设置master的ip,写数据
proxy-read-only-backend-addresses=192.168.0.103:3306 \\设置slave的ip,读数据
proxy-lua-script=/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua \\脚本所在位置
log-file=/usr/local/mysql-proxy/logs/msyql-proxy.log \\日志存放位置
log-level=debug \\日志模式
daemon=true \\打入后台
keepalive=true
スクリプトの管理プロセスを変更します。4.
vimの/usr/local/mysql-proxy/share/doc/mysql-proxy/rw-splitting.lua
min_idle_connections = 1、
max_idle_connections = 2、
5.設定ファイルのアクセス権を設定し、サービスを開始します
chmodの660 /usr/local/mysql-proxy/conf/mysql-proxy.conf
/ usr / local / mysqlのプロキシ/ binに/ mysqlのプロキシ--defaults-ファイル=は/ usr / local / mysqlのプロキシ/ confに/ mysqlの-proxy.conf
6.レビューとテスト・ポート
netstatの-antlp | grepのmysqlのプロキシ
ログデータベースの読み取りおよび書き込み操作のテスト