Linux運維:MySql 5.7マスターコピー


本節ではMysqlのコピーについて
公式文書を参照
主な方法は、-従来の方法:ホストベースのバイナリ・ログ(master's binary log)-新しい方法:グローバル・トランザクションID(Global Transaction Identifiers)ベース
常用Mysqlの主従レプリケーション:Masterベースバイナリログ(binarylog)
公式文書を参照
レプリケーション構成を行う前に、+我々Masterは新しい+我々のMasterは古い、古いデータが存在する可能性があるという2つの可能性に遭遇する可能性があります.
どちらの場合も、この共通の手順は、-Masterでbinary loggingを有効にし、一意のserver-idを構成する必要があります-Masterに接続したいSlaveごとに一意のservice-idを構成する-オプションで、Masterにコピー専用のユーザーを作成します-Masterにデータがすでに存在する場合は、まずデータcopyをSlavesに-binary logのファイル名と場所を得る-Slaves設定masterのhost name,login credentials,and binary log file name and positionを構成する必要がある
一般的なシーン:-新しいMasterとSlavesを構成-既存のデータのレプリケーションを構成-レプリケーション環境にSlaveを追加するように
新しいMasterとSlavesを構成する
1.マスター構成my.conf-log-bin:バイナリログを開く-server-id:一意のid、範囲1~2^32-1-オプションパラメータbinlog_format:ROW/STATEMENT/MIXED
[mysqld]
log-bin=mysql-bin
server-id=1

2.Slave配置my.conf
server-id=2

3.レプリケーション専用のユーザーを作成する
Masterマシン、mysql-clientで次のコマンドを実行します.
mysql> CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';

4.Masterのstatus情報の表示
mysql>SHOW MASTER STATUS;

取得:ファイル名と場所
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      595 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

5.SlaveでMasterパラメータを設定する
mysql> CHANGE MASTER TO
    ->     MASTER_HOST='master_host_name',
    ->     MASTER_USER='replication_user_name',
    ->     MASTER_PASSWORD='replication_password',
    ->     MASTER_LOG_FILE='recorded_log_file_name',
    ->     MASTER_LOG_POS=recorded_log_position;

slaveの起動
mysql> start slave;

6.構成が成功したかどうかを確認する
mysql> show slave status\G

次のように表示されます.
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: hadoop01
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 605
               Relay_Log_File: hadoop02-relay-bin.000005
                Relay_Log_Pos: 473
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
  • Slave_IO_Running: Yes
  • Slave_SQL_Running:Yes構成成功