ホームページ  >  記事  >  データベース  >  MYSQLでスレーブデータベースを追加する方法は何ですか?

MYSQLでスレーブデータベースを追加する方法は何ですか?

PHPz
PHPz転載
2023-05-27 17:43:251763ブラウズ
    ##1. MySQL マスター/スレーブ レプリケーション

    一般的なマスター/スレーブ アーキテクチャ:

    • #1 つのマスターと 1 つのスレーブ : 1 つのマスター、1 つのスレーブ

    • 1 つのマスターと複数のスレーブ: 1 つのマスター、複数のスレーブ

    詳細については、次の図を参照してください。

    MYSQLでスレーブデータベースを追加する方法は何ですか?

    MYSQLでスレーブデータベースを追加する方法は何ですか?##実装の詳細

    MySQL マスター/スレーブ同期の基本的な実装の詳細は何ですか?後でマスター/スレーブ遅延の原​​因を分析し、最適化計画を立てるために、理論的な準備をします。

    MYSQLでスレーブデータベースを追加する方法は何ですか?

    #MySQL のマスター/スレーブ レプリケーションを要約すると、

    非同期シングルスレッドです。

    • マスター

      には 1 つの IO スレッド があり、スレーブへの送信を担当します バイナリ ログ binlog##) #) ##スレーブには 2 つのスレッドがあります:

      IO スレッド
    • SQL 実行スレッド

      、そのうち:

      ##IO thread
    • : 取得したログ情報を中継ログに追記;
      • SQL を実行するスレッド

        : Ifリレー ログの内容が更新されたことが検出された場合は、スレーブで SQL を実行します。
      • 特記事項
      : MySQL 5.6。 3 は、「
    マルチスレッド

    マスター/スレーブ レプリケーション」、1 つのデータベース1 つのスレッド複数のデータベース## のサポートを開始します。 #can複数のスレッド マスターとスレーブ間のマスター/スレーブ レプリケーション プロセスを完了します:

    2. スレーブを追加します

    要件: MYSQLでスレーブデータベースを追加する方法は何ですか?現在、マスター上にデータベース ucenter があり、それにスレーブを追加する必要があります (現在スレーブが 1 つあります)

    分析:

    前日の 4:00 にデータベースのバックアップをとりました。

      既存の ucenter スレーブがあります
    • 重要な点は、binlog の時点を見つけることです
    • 操作:

    1. スレーブ マシン上でスレーブ情報を設定し、mysql.cfg 設定を変更して、スレーブ データベースを再起動します

    [mysqld] に

    replicate-do-db = ucenter     #同步的数据库名字
    slave-skip-errors=all         #同步是忽略错误
    server-id       = 1112        #和master与其他slave保持不通

    2 を追加します。前日のデータベースのバックアップを見つけて、新しく追加したスレーブ マシンにコピーし、データベース

    [root@ucenter_slave /data]# mysql ucenter < ucenter_20171102.sql[root@ucenter_slave /data]# du -sh ucenter_20171102.sql 24G    ucenter_20171102.sql

    をインポートします。

    3. binlog のタイムスタンプを見つける (重要なポイント)

    master で binlog を検索

    [root@Ucenter /data/mysqldata]# ll -t *bin*
    -rw-rw---- 1 mysql mysql   30709744 Nov  2 21:32 mysql-bin.000268
    -rw-rw---- 1 mysql mysql        171 Nov  2 19:41 mysql-bin.index
    -rw-rw---- 1 mysql mysql 1021101094 Nov  2 19:41 mysql-bin.000267
    -rw-rw---- 1 mysql mysql 1073742415 Oct 30 06:07 mysql-bin.000266
    -rw-rw---- 1 mysql mysql 1073742062 Oct 26 12:03 mysql-bin.000265
    -rw-rw---- 1 mysql mysql 1073742636 Oct 22 19:21 mysql-bin.000264
    -rw-rw---- 1 mysql mysql 1073741961 Oct 18 22:49 mysql-bin.000263
    -rw-rw---- 1 mysql mysql 1073742141 Oct 15 12:47 mysql-bin.000262
    -rw-rw---- 1 mysql mysql 1073742284 Oct 11 10:18 mysql-bin.000261
    -rw-rw---- 1 mysql mysql 1073742184 Oct  7 09:49 mysql-bin.000260

    私のバックアップ時間は 2 日の 4 時に始まるので、次を検索する必要があります。 2 in mysql-bin.000267 POS 4 時前、

    [root@Ucenter /data/mysqldata]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000267 |grep &#39;3:59:&#39; |grep -v &#39;13:59:&#39;
    #171102 3:59:58 server id 21323 end_log_pos 824385760 Query thread_id=3023086382 exec_time=0 error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824386335 Query    thread_id=3023086386    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824386363 Intvar
    #171102 3:59:58 server id 21323 end_log_pos 824386698 Query    thread_id=3023086386    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824387706 Query    thread_id=3023086388    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824387734 Intvar
    #171102 3:59:58 server id 21323 end_log_pos 824388209 Query    thread_id=3023086388    exec_time=0    error_code=0
    #171102 3:59:58 server id 21323 end_log_pos 824388534 Query    thread_id=3023086398    exec_time=0    error_code=0
    の位置決めを開始するため、最後まで位置決めします end_log_pos 824388534

    4. 別のスレーブの master.info を確認します

    [root@LeduPass02/data/mysqldata]# cat master.info 
    15
    mysql-bin.000268
    11367810
    192.168.100.70
    omsync
    om@123
    3306
    60
    0
    
    0
    0

    5. 同期用にスレーブ上でスレーブを構成します。

    スレーブ上で関連する設定を構成し、スレーブにマスターへの接続方法を指示します。ホスト アドレス、ログイン資格情報などが含まれます。

    [root@ucenter_slave /data]# mysql
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 6
    Server version: 5.1.51-Community-Server-log Source
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type &#39;help;&#39; or &#39;\h&#39; for help. Type &#39;\c&#39; to clear the current input statement.
    
    mysql (none)>change master to master_host=&#39;192.168.100.70&#39;,master_port=3306,master_user=&#39;omsync&#39;,master_password=&#39;om@123&#39;,master_log_file=&#39;mysql-bin.000267&#39;,master_log_pos=824388534;

    スレーブを開く

    mysql (none)>start slave;

    スレーブのステータスを確認します:

    以上がMYSQLでスレーブデータベースを追加する方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。