• 使用Innobackupex快速搭建(修复)MySQL主从架构


    MySQL的主从搭建大家有很多种方式,传统的mysqldump方式是很多人的选择之一。但对于较大的数据库则该方式并非理想的选择。使用Xtrabackup可以快速轻松的构建或修复mysql主从架构。本文描述了使用innobackupex快速来搭建或修复主从架构。供大家参考。

    1. 主库开启gtid_mode
    mysql> set global gtid_mode='OFF_PERMISSIVE';
    Query OK, 0 rows affected (0.01 sec)
    mysql> set global gtid_mode='ON_PERMISSIVE';
    Query OK, 0 rows affected (0.01 sec)
    mysql> set global enforce_gtid_consistency=ON;
    Query OK, 0 rows affected (0.00 sec)
    mysql> set global gtid_mode='ON';
    Query OK, 0 rows affected (0.00 sec)

         2. 基于主库做一个完整备份

    # mkdir -p /data/bakforslave
    # innobackupex --defaults-file=/app/mysql/my.cnf --user=root --password='******' /data/bakforslave --parallel=8 --safe-slave-backup --slave-info --no-timestamp

         3. 复制数据库到备机

    # tar -czvf bakforslave.tar.gz ./bakforslave/
    # scp bakforslave.tar.gz ......
    

      

         4. 在备机上恢复

    # tar -xvf bakforslave.tar.gz
    prepare 备份
    # innobackupex --defaults-file=/data/bakforslave/backup-my.cnf --user=root --password='*******' --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 /app/mysql/mymaster.cnf /app/mysql/my.cnf
    # vi /app/mysql/my.cnf ##此处应修改使用一个不同的server_id,同时可以根据需要修改相关路径及端口配置等。
    # service mysqld start ##修改完毕后可以启动mysqld

         5. 主库授权用于复制的用户

    mysql> grant replication slave,replication client on *.* to repluser@'172.16.10.%' identified by '***';

        验证shell 提示符下登陆到主库

    # mysql -urepluser -p -h172.16.10.88

         6. 启动slave

    # more /data/mysqldata/xtrabackup_binlog_info
      mysql-bin.000136 73752825
    
    mysql> CHANGE MASTER TO
    MASTER_HOST='172.16.10.88',
    MASTER_USER='repluser',
    MASTER_PASSWORD='***',
    MASTER_LOG_FILE='mysql-bin.000136',
    MASTER_LOG_POS=73752825;
    
    mysql> start slave;

         7. 验证结果

    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)
  • 相关阅读:
    android 开发中java.lang.verifyerror问题
    android 获取当前系统及应用信息(一)
    Android排错:has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added here
    Android 自定义menu(一)
    产品经理的技术之痛
    内容营销11金规
    剑指Offer:名企面试官精讲典型编程题
    内容营销——网络营销的杀手级武器
    产品经理应该具有的几个工作态度
    产品经理如何提升自己的知识
  • 原文地址:https://www.cnblogs.com/vadim/p/6928380.html
Copyright © 2020-2023  润新知