データベースからMySQLの一次同期(CentOSの記事)

環境:

マスター:CentOSの5.2 MySQLの5.1.35のソースIP:サーバーから192.168.1.22:CentOSの5.2 MySQLの5.1.35のソースIP:192.168.1.33

構成:

まず、プライマリサーバ1.1は、許可のレプリケーションスレーブに複製ユーザーを作成します。MySQLの> * *上のグラントレプリケーションスレーブ 'REPL' ;. 1.2で識別される'repl'@'192.168.1.22'に、 my.cnfファイルは、viのな/etc/my.cnfファイルを編集 
追加 
サーバー-ID = 1を 
、ログ・ビンをオンバイナリログファイルは、 
ログ・ビン= mysqlのビン注:= 1 1.3サーバーIDを削除するには、デフォルトの必要性、mysqlデータベースのmysqld_safe --user = mysqlの&1.4、読み取りロックと読み取りロックのmysql>フラッシュテーブルを設定開始; 1.5、 与えることをbinlogのログファイル名とオフセットMySQLの>ショーのマスターステータス; + ------------------ + ---------- + ------ + ------------------ + --------
|ファイル|ポジション| Binlog_Do_DB | Binlog_Ignore_DB |
+ ------------ + ------ + -------------- + ----------------- ---------- - +
| MySQLの-bin.0000010 | 106 | | | 
+ ------------------ + ---------- + -------------- + ---- -------------- + 1.6、> test.sql内1.7を同期するためのmysqldumpテストデータベースのバックアップ、mysqlのロックを解除>は、テーブルのロックを解除し、第二には、サーバー2.1から、など/ my.cnfのファイルVIを編集/my.cnfが 
追加 
サーバID = 2注:必要がデータベースから出発し、サーバID = 1 2.2を除去するためにデフォルトにmysqld_safeを--user = MySQLの&2.3、データベースのMySQLのセットに対応>マスタに変更 
        - > MASTER_HOST = '192.168.1.22' 
        - > MASTER_USER = 'REPL' 
        - > master_password = 'REPL' 
        - > MASTER_LOG_FILE = 'のMySQL-bin.0000010' 
        - > MASTER_LOG_POS = 106; 2.4、スレーブ・サーバ・スレッドのMySQLから出発>スレーブを開始、実行MySQLの> PROCESSLIST \ Gを示しています。PROCESSLISTコマンドで表示に、以下のプロセスを示して 
*************************** 2行*******を******************** 
         イド:2 
     ユーザー: システム・ユーザー・
     ホスト:    
         DB:NULL 
コマンド:接続 
     時間:2579 
    状態:持って読むすべてのリレーログ、待機用のスレーブI / O ITを更新するために、スレッドの 
     情報:NULLは、受け入れおよびログ2.5を実行し、スレーブスレッド状態のmysqlを見始めたスレーブがマスタに接続されていた表し>ショースレーブ状態; *************************** 1行 *************** ************
               Slave_IO_State:イベントを送信するには、マスターを待っている
                  192.168.1.22 MASTER_USER:REPLのMASTER_HOST
                  MASTER_PORT:3306
                Connect_Retry:60
              MASTER_LOG_FILE:MySQLの-bin.0000010
          Read_Master_Log_Pos:106
               RELAY_LOG_FILE:CentOSの-relay-をbin.000002
                RELAY_LOG_POS:529
        Relay_Master_Log_File:MySQLの-bin.0000010
             Slave_IO_Running:はい
            Slave_SQL_Running:はい
              Replicate_Do_DB:Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno:0
                   LAST_ERROR: 
                 Skip_Counter:0
          Exec_Master_Log_Pos:106
              Relay_Log_Space:830
              Until_Condition:なし
               Until_Log_File: 
                Until_Log_Pos:0
           Master_SSL_Allowed:いいえ
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master:0
Master_SSL_Verify_Server_Cert:いいえ
                Last_IO_Errno:0
                Last_IO_Error: 
               Last_SQL_Errno:0
               Last_SQL_Error: 
セット内の1行(0.00秒) 

設定が正しいことを確認します

サーバーからのshowスレーブステータスの\ Gを実行することと、 
イベントを送信するためにマスターを待っている 
Slave_IO_Runningは:はい 
Slave_SQL_Running:はい、同時に2つの以上の行がはい成功を説明するために配置されたとして、
 

テスト

1、>マスターサーバーでの使用テストをユーザテーブルMySQLのテスト・データベースを作成するために、 
MySQLは>表のユーザ(ID int型)を作成し、図2に示すように、ユーザテーブルMySQLを表示>サーバから使用テストを、 
MySQLは>「ユーザ」のようなテーブルを示す図であります 
+ + ---------------------- 
| Tables_in_test(ユーザー)| 
+ -------------------- - + 
|ユーザー|    
+ ---------------------- + 
SET(0.00秒)で1行マスター・スレーブデータ同期成功。 

問題は?

1.ので、スレーブI / Oスレッドが停止すると 、マスターとスレーブが同じMySQLサーバIDを持つデータベースからスレーブ状態を見ながら、これらのIDは、複製のために異なっていなければならない動作する(または--replicate-同じサーバ-idオプションスレーブ上で使用する必要がありますが、これはない 、常に意味を成さない、それを使用する前に取扱説明書をご確認ください) 同じmy.cnfファイル内のサーバIDサーバ側からの指示。解決策:サーバーIDでのmy.cnfを変更し、データベースサービスを再起動します。my.cnfのファイルのデフォルトのmy.cnf#のビンログ-DO-DB =バックアップニーズプライマリサーバのサーバID = 1つのそれ以外の場合は指定されたデータベースの名前を持っている、あなたは複数行書くことができます
#のbinlog-無視-DBを=データベース名のバックアップをする必要はありません。複数行書く
#の複製-DO-DB =データベース名テストバックアップする必要があるmy.cnfのサーバーから
#複製-無視-DB = mysqlのデータベースが見落とさ
プライマリサーバが再度、壊れていた場合、サーバから#マスター接続リトライ= 60また、設定ファイルのmy.cnf = MySQLのビンログビン変更を直接提供することができる時間差(S)に接続され
、マスター・ホスト・ユーザー192.168.1.22master = = = replmaster- REPLパスワード
マスターポート= 3306

)| + ------------------------------------------------- - + 







| 0 |   
+ ---------------------------------------------- + ---- 
行SET(0.01秒)同期が完了すると、マスターサーバーMySQLで行わロック解除>表のロックを解除1、プライマリサーバは、サーバからの失敗マスタースイッチ、サーバからプライマリ・サーバは、以下のステップを使用することができる場合:図1に示すように、すべての更新は、すべての状態は、すべてのリレーログを読み取ったかどうかを確認するために、サーバー停止スレーブIO_THREAD、検査ショーPROCESSLISTから実行する、データベースからログイン中継行われてきた、更新が>停止スレーブIO_THREADを.mysql完了したことを示すことを確実にします; 
OK、0が影響を受けた(0.00秒)クエリ 
のMySQL>ショーPROCESSLIST \ Gを、行2. *** *************************** ************************
     イド:2
   ユーザー:Userシステム
   ホスト: 
     DB:NULL
コマンド:接続
   時間:4757
  状態:すべてのリレーを読んだログ。スレーブI / Oスレッドを待って 、それを更新します
   INFO:スレーブ停止スレーブで実行NULL2、マスタコマンドをリセットし、プライマリ・データベースのMySQL> STOPスレーブにリセット; 
OK、影響を受ける0(0.00秒)クエリ 
のMySQL>マスターRESETと、 
OKを照会し、影響を受ける0(0.00秒)

3、サーバーからの起動に応じてそれ以外の場合は、次の時間が再起動されます、新しいマスターデータベースディレクトリのmaster.infoとrelay-log.infoファイルを削除


著者:ムーUI4062818の
リンクします。https://www.imooc.com/article/41306
出典:ムーのクラスのネットワーク

おすすめ

転載: www.cnblogs.com/HKROnline-SyncNavigator/p/10971826.html