1.1。同期の紹介
MySQLのマスタ - スレーブ同期、非同期複製プロセス、他のマスター・スレーブへの1つからの複製です。コピー操作は、主に3つのスレッド、二つのスレッド(スレッドとSQL IOスレッド)スレーブ側、マスタ側で別のスレッド(IOスレッド)によってマスターとスレーブとの間で達成達成されます。
MySQLマスタースレーブの同期を達成するには、まずBinaryLogのマスター端(mysqlのビン)機能を開く必要があり、そうでなければ達成できません。全体のプロセスは完全に様々な操作で記録されたログ順序の実装では、ログを取得するために、実際にマスター側からのコピースレーブで、その後、彼自身ので。MySQLサーバまたはmysqldのパラメータを開始する際に、-logビン「パラメータオプション「を使用することにより、対数」MySQLのバイナリログを増大させることができるオープンコンフィギュレーション・ファイルのmy.cnf内([mysqldを]を識別部後のパラメータ)ビン「パラメータ入力。
マスターサーバーの構成から1.2。MySQLの
プライマリサーバのIP:192.168.1.60
サービスのIPから:192.168.1.61
Linuxの:CentOSの
MySQLバージョン:5.1.58
以下の構成は、本サービス上に構成されています
主要なデータベース操作
MySQLのインストールパッケージには、関連する設定ファイルのパスとパスの異なるバージョンが、実質的に異なるものになるに従って、メインライブラリサーバ設定ファイルmy.cnfファイルをチェックしますが、ほとんどの場合と同じです。など/ディレクトリ内のファイル。それらのいずれかに上記を交換するだけで11 my.cnfファイル、それらを使用するために、異なるサーバーに異なるプロファイルを使用するように設定されたときにMySQLサービスも提供されます。注:ファイル名はmy.cnfをしなければなら交換してください。
CNFは、通常、4つのプロファイルが順序#1のLL /usr/share/mysql/*.cnfで見ることができます持っています。
私-small.cnfメモリが64M以下であり、非常に小さなデータベースサービスを提供すること。
メモリ32M私-medium.cnf - だけでなく、例えば、間および64M他のサービスと、ウェブ;
私-large.cnf 512Mメモリは、データベースサービスの主要プロバイダーです。
私-huge.cnfメモリは2Gに1G、データベースサービスの主要プロバイダーです。
私-InnoDBの-重4G.cnfメモリは、主にデータベースサービス(通常のサーバーはこれを使用)に大きな負荷を提供するために、4Gです。
設定ファイルは、異なるサーバ構成CNFに応じて選択することができます。
1、設定ファイルmy.cnfファイル
上記のように異なるいくつかを選択するようにするので、あなたは彼らがファイルが存在することを確認するために追加されていないとき(メイン設定ファイルに以下の項目を追加する必要があり、マスターサーバーを設定するには、デフォルトなど/ my.cnfのプロファイル設定を使用します設定ファイルは、設定の内容は)何の対応するエントリを追加する必要はありませんがある場合は、異なるものになります。
VIなどのオープン/ my.cnfファイル、ファイルの編集では、修正[mysqldを]以下を追加します。
上記ID = 1-サーバ この#は、それ以外の場合はエラーを同期する、ID値を繰り返すことができない独特であるデータベースID、1メインライブラリのデフォルト、他のライブラリーから、このIDの増分です。
= mysqlのビンビンログ バイナリログファイル、これを必要とする、またはデータを同期することはできません。
ビンログ-DO-DB = testcreate 必要が複数のデータベースを同期する場合は、データベース#は、同期させる必要があります。
これを追加していきます。
ビンログ-DO-DB = testcreate1
ビンログ-DO-DB = testcreate2
ビンログ-無視-DB = mysqlの データベースの同期を必要としません。
これまでのところ、メインサーバー設定my.cnf設定は、ファイルを保存して終了し、完了です。
それが失敗した場合、再起動#servicemysqld、その後、証明形状誤差、再チェックする必要があります:今、MySQLへのサーバーを再起動します。
推奨事項:サーバを再起動する時に失敗することはできません設定ファイルを変更しないように最善の彼らのバックアップについては、my.cnfを、変更前。
2.構成データベースには、同期のために口座を開設する必要があります後
主なライブラリは、以降の接続のために作るとコマンドMySQLサーバと同期するために、ライブラリからアカウントを提供する必要があります
*上のMySQLの> grantreplicationスレーブ* 'testcreate'@'192.168.1.61' が '123456' で識別します。
説明:「testcreate」:同期データベース。
「192.168.1.61」:同期データベースのアドレス。
「123456」:データベースのパスワード同期は、コンフィギュレーションは、ライブラリから設定する必要があります。
主なライブラリ情報を示す3、
MySQLの> showmaster状況;
コマンドで表示を実行:
上記の情報を参照してくださいには、メインライブラリが正常に確立されたことを示しています。
4、バックアップデータベース(サーバーが新しいライブラリにもある場合、この操作は必要ありません)
データベースをバックアップする方法はたくさんあります:あなたは、同じLAN内のデータベースをコピーすることができます場合は、ツールを使用して直接データをインポートすることができます。
梱包の方法でデータベースをコピーします。
次のストレージ・パスMySQLデータベースに#のCD /データ
#tarcvfz testcreate.tar.gzデシベル/
次に、データベースからアンパックをコピーします
#CD /データ
#scp192.168.1.61:/data/testcreate.tar.gz
#tarxvfz testcreate.tar.gz
データ複製が完了しています。
第二に、ライブラリ構成から
メインライブラリへのコンフィギュレーションサーバからの基本的な構成は、ほぼ、ライブラリサーバから選択:192.168.1.61
図書館サービスから1 my.cnf設定ファイル
次のように#Vietc / my.cnfを変更すること。
ID = 2サーバ メインリポジトリIDとして本明細書に#2が1です。
ログ・ビンのmysql-binは= データの同期のために必要。
マスターホスト= 192.168.1.60 メインライブラリIP。
マスタユーザ=テスト 同期アカウントのため、
マスターパスワード= 123456 同期アカウントのパスワードをするとき、プライマリ・データベースを提供しています。
マスタポート= 3306 、データベース同期のためのポート番号。
ライブラリサーバから2.再起動
#serviceのmysqldを再起動
それが問題となっている設定ファイルを失敗した場合は、構成を再チェックする必要があります。
データベース(メインライブラリデータベースからコピーした場合)3.コピーされたアクセス権を調整
メインライブラリデータベースの権限がroot権限にコピーされ、あなたは、MySQLへのアクセス権を変更する必要があります
#chownコマンド-Rのmysqlの:mysqlのは/ var / libに/ mysqlの
ライブラリが新しいライブラリをされた場合は、このステップは必要ありません
サーバーから4.表示の状態
MySQLのサーバーであります:
MySQLの> showslaveステータスの\ G;図ショー:
slave_io_runningとslave_sql_runningがはいている場合は、設定はサーバから成功しています。
あなたは、位置関連のエラーに遭遇した場合は、手動でファイル/のPostionを設定するには、以下の情報が必要
MySQLの> Changemaster = '192.168.1.60' をMASTER_HOSTします
master_user = 'テスト'
master_password = '123456'
= 'mysqlの-bin.000001' 情報MASTER_LOG_FILEファイル、メインライブラリー
MASTER_LOG_POS =「106」、マスタリポジトリの位置情報
第三に、マスターサーバーからテスト
プライマリサーバと同じ確立するために、サーバーからデータベース:testCreateテーブルを:テスト、フィールドID、名前
マスターサーバーにデータを追加
この場合、データベースからサーバはtestcreateに192.168.1.61として表示されます
これは、マスター・スレーブサーバの同期が成功した表します。
第四に、よくある質問
サーバからのステータス情報を表示; showslaveステータスの\ Gで、障害が発見された:サーバーとして構成されている場合、あなただけの読み取り権限をライブラリからデータベースを変更した場合、同期エラーになりますライブラリから、ライブラリからの操作を変更することはできません
slave_IO_Runningが発生した場合:NO、それはデータベースの接続障害からの意味します
LAST_ERROR:エラーログ情報を表示します
この問題は、主に問題にロールバック物事を発生する、解決策は以下のとおりです。
1、
MySQLの>スレーブ停止;からサービスを停止します
MySQLの> GLOBAL SQL_SLAVE_SKIP_COUNTER = 1を設定します。
MySQLの>スレーブが起動し、サービスから開始します
サーバーから2、マニュアルリセット
MySQLの> Changemasterへ
MASTER_HOST = '192.168.1.60'
master_user = 'テスト'
master_password = '123456'
MASTER_LOG_FILE = 'mysqlの-bin.000001';マスターデータベースファイル情報
MASTER_LOG_POS =「106」、マスタリポジトリの位置情報
この構成は、マスターMySQLサービスから完成されました
主にデータを書き込む基づいて、メインのサーバーでは、データは、MyISAMのエンジン効率でMySQLを読み取ることによって、読み取りの観点から、InnoDBエンジンを示唆した非常に良いです。
MyISAMエンジンは、フルテキストインデックスをサポートしていますが、取引、InnoDBのちょうど反対をサポートしていません!