Maison  >  Article  >  base de données  >  Utilisez Innobackupex pour créer (réparer) rapidement l'architecture maître-esclave MySQL

Utilisez Innobackupex pour créer (réparer) rapidement l'architecture maître-esclave MySQL

黄舟
黄舟original
2017-02-15 10:48:211380parcourir

Il existe de nombreuses façons de créer un maître-esclave MySQL. La méthode traditionnelle mysqldump est l'un des choix proposés par de nombreuses personnes. Mais pour les bases de données plus volumineuses, cette méthode n’est pas un choix idéal. Utilisez Xtrabackup pour créer ou réparer rapidement et facilement une architecture maître-esclave MySQL. Cet article décrit l'utilisation d'innobackupex pour créer ou réparer rapidement une architecture maître-esclave. Pour votre référence.

1、基于主库做一个完整备份
# mkdir -p /log/bakforslave
# innobackupex --user=root -password=*** --socket=/tmp/mysql.sock \
--defaults-file=/etc/my.cnf /log/bakforslave --parallel=3 --safe-slave-backup --no-timestamp 

2、复制数据库到备机
# tar -czvf bakforslave.tar.gz ./bakforslave/
# scp bakforslave.tar.gz robin@172.16.10.51:~
# scp /etc/my.cnf robin@172.16.10.51:~/mymaster.cnf

3、在备机上恢复
###备机解压打包的备份文件
# mv /home/robin/bakforslave.tar.gz /data
# cd /data
# tar -xvf bakforslave.tar.gz

### prepare 备份
# innobackupex --user=root -password=*** --socket=/tmp/mysql.sock --defaults-file=/home/robin/mymaster.cnf \
 --apply-log --use-memory=4GB /data/bakforslave

###如果是修复从库,从库为启动状态应先停止从库,再做如下操作,否则可以跳过 
# service mysqld stop 

###还原备份的数据文件
# mv mysqldata mysqldatabk
# mv bakforslave mysqldata
# chown -R mysql:mysql mysqldata

###如果是新搭建的从库,此时可以修改主库的my.cnf为本机的my.cnf,
###如果为修复,则可以直接使用原有的配置文件或根据需要修改。
# cp /home/robin/mymaster.cnf /etc/my.cnf
# vi /etc/my.cnf         ###此处应修改使用一个不同的server_id,同时可以根据需要修改相关路径及端口配置等。
# service mysqld start   ###修改完毕后可以启动mysqld

4、主库授权用于复制的用户
mysql> grant replication slave,replication client on *.* to repl2@'172.16.10.%' identified by '***';

### 验证shell 提示符下登陆到主库
# mysql -urepl2 -p -h172.16.10.88

5、启动slave
# more /data/mysqldata/xtrabackup_binlog_info
mysql-bin.000136        73752825

mysql> CHANGE MASTER TO
MASTER_HOST='172.16.10.88',            --Author: Leshami
MASTER_USER='repl2',                   --Blog  : http://www.php.cn/
MASTER_PASSWORD='***',
MASTER_LOG_FILE='mysql-bin.000136',
MASTER_LOG_POS=73752825;

mysql> start slave;

6、验证结果
mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 172.16.10.88
                  Master_User: repl2
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000136
          Read_Master_Log_Pos: 96592981
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 72113
        Relay_Master_Log_File: mysql-bin.000136
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: test,bs_com,bs_sysmsg,bs_bak
          Replicate_Ignore_DB: mysql
           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: 73824655
              Relay_Log_Space: 22840613
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 3815
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 2
                  Master_UUID: afd6bca4-6636-11e3-9d60-74867ae1c47c
             Master_Info_File: /data/mysqldata/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: updating
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

Ce qui précède explique comment construire (réparer) rapidement le maître MySQL- architecture esclave utilisant le contenu Innobackupex, veuillez faire attention au site Web PHP chinois (www.php.cn) pour plus de contenu connexe !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn