博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Innobackupex快速搭建(修复)MySQL主从架构
阅读量:6649 次
发布时间:2019-06-25

本文共 3199 字,大约阅读时间需要 10 分钟。

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.gzprepare 备份# 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 73752825mysql> CHANGE MASTER TOMASTER_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 eventMaster_Host: 172.16.10.88Master_User: repl2Master_Port: 3306Connect_Retry: 60Master_Log_File: mysql-bin.000136Read_Master_Log_Pos: 96592981Relay_Log_File: mysqld-relay-bin.000002Relay_Log_Pos: 72113Relay_Master_Log_File: mysql-bin.000136Slave_IO_Running: YesSlave_SQL_Running: YesReplicate_Do_DB: test,bs_com,bs_sysmsg,bs_bakReplicate_Ignore_DB: mysqlReplicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0Last_Error: Skip_Counter: 0Exec_Master_Log_Pos: 73824655Relay_Log_Space: 22840613Until_Condition: NoneUntil_Log_File: Until_Log_Pos: 0Master_SSL_Allowed: NoMaster_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 3815Master_SSL_Verify_Server_Cert: NoLast_IO_Errno: 0Last_IO_Error: Last_SQL_Errno: 0Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 2Master_UUID: afd6bca4-6636-11e3-9d60-74867ae1c47cMaster_Info_File: /data/mysqldata/master.infoSQL_Delay: 0SQL_Remaining_Delay: NULLSlave_SQL_Running_State: updatingMaster_Retry_Count: 86400Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set: Executed_Gtid_Set: Auto_Position: 01 row in set (0.00 sec)

 

转载于:https://www.cnblogs.com/vadim/p/6928380.html

你可能感兴趣的文章
软件开发基础常识
查看>>
安装Ubuntu时出现Intel VT-X没有开启
查看>>
XML中的url链接写法
查看>>
洛谷P1119 灾后重建
查看>>
ArcSDE:"Bad Login User" 错误解决方法
查看>>
android
查看>>
jasypt-spring-boot
查看>>
(诊断)为GitHub添加SSH key时出现“Could not open a connection to your authentication agent”错误的应对方案(转)...
查看>>
彼得原理
查看>>
30分钟让你了解MongoDB基本操作(转)
查看>>
用户交互程序
查看>>
Python学习【第17篇】:网络编程之粘包
查看>>
容器内部安装scp,拷贝到外部物理机
查看>>
微信js分享朋友圈(一)
查看>>
【原】centos6.5下cdh4.6 Oozie安装
查看>>
redis学习及实践3---Jedis、JedisPool、Jedis分布式实例介绍
查看>>
mobiscroll的例子
查看>>
浏览器存储页面
查看>>
WebApi接口返回值不困惑:返回值类型详解
查看>>
Windows终端屏幕显示库Public Domain Curses(PDCurses)使用
查看>>