innobackupex 备份数据搭建 MySQL Slave
简介:
数据量比较大时,使用 innobackupex 备份数据新增 MySQL Slave 节点。
安装 innobackupex 工具,我这里写过一次:http://www.cnblogs.com/wangxiaoqiangs/p/5961413.html
场景:
A -> B
-> C
-> D -> E
一、增加节点 C
# 由于有从库 B ,所以我们去 B 上面执行备份
shell > innobackupex --user=xx --password=xx --slave-info --safe-slave-backup --no-timestamp alldatabase
# 保存 B 的 Slave 信息,因为新增的节点 C 与 B 同级
shell > scp -r alldatabase mysql-nodeC:/root
# 将备份数据拷贝到新节点 C 上,如果节点 C 在外网,建议先压缩一下
# 登录节点 C
shell > vim /etc/my.cnf # 准备配置文件 [client]
port =
socket = /tmp/mysql.sock [mysqld]
socket = /tmp/mysql.sock
datadir = /data/mysql_data
log-error = error.log
skip-name-resolve
skip-external-locking
default-storage-engine = MyISAM
key_buffer_size = 3072M
sort_buffer_size = 256M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
table_open_cache =
table_definition_cache =
thread_cache_size =
back_log =
connect_timeout =
max_connections =
wait_timeout =
interactive_timeout =
max_allowed_packet = 1024M slow_query_log = ON
long_query_time =
slow-query-log-file = slow.log query_cache_type =
query_cache_size =
query_cache_limit = tmp_table_size = 128M
max_heap_table_size = 128M innodb_file_per_table =
innodb_buffer_pool_size = 1024M read-only =
relay-log = mysql-relay-bin
expire_logs_days =
server-id =
# 注意:server-id 必须全局唯一
# 如果新增的是节点 D,那么需要将后4行替换为如下7行
relay-log = mysql-relay-bin
relay_log_purge = ON
log-slave-updates =
log-bin = mysql-bin
binlog_format = mixed
expire_logs_days =
server-id =
# 因为节点 D 不仅是 Master A 的 Slave,同时也是节点 E 的 Master
shell > innobackupex --apply-log alldatabase # 在备份目录上应用日志
:: completed OK! shell > innobackupex --copy-back alldatabase # 将备份文件拷贝到 my.cnf 中 datadir 指定目录
:: completed OK! shell > chown -R mysql.mysql /data/mysql_data shell > /etc/init.d/mysql.server start shell > cat /data/mysql_data/xtrabackup_slave_info # 记录 master_log_file 和 master_log_pos 的值
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.003742', MASTER_LOG_POS= shell > mysql -uxx -pxx -A mysql> stop slave;
mysql> reset slave all;
mysql> change master to master_host='x.x.x.x',master_user='xx',master_password='xx',master_log_file='mysql-bin.003742',master_log_pos=;
mysql> start slave;
mysql> show slave status\G Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> quit
# master_host='A'
# MySQL Slave 节点 C 搭建完成
二、新增节点 E
# 由于节点 D 后面没有从节点,所以备份要在节点 D 上执行
shell > innobackupex --user=xx --password=xx --no-timestamp alldatabase
# 我们要的是节点 D 的信息,所以不需要保存 Slave 信息( Slave 信息为跟节点 A 同步信息 )
shell > scp -r alldatabase mysql-nodeE:/root
# 将备份数据拷贝到新节点 E 上,如果节点 E 在外网,建议先压缩一下
shell > mysql -uxx -pxx -A # 跟上面不一样的地方,需要新建立一个授权用户 mysql> grant replication slave on *.* to xx@'%' identified by 'xx'; # 登录节点 E shell > vim /etc/my.cnf # 准备配置文件 [client]
port =
socket = /tmp/mysql.sock [mysqld]
socket = /tmp/mysql.sock
datadir = /data/mysql_data
log-error = error.log
skip-name-resolve
skip-external-locking
default-storage-engine = MyISAM
key_buffer_size = 3072M
sort_buffer_size = 256M
read_buffer_size = 4M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 128M
table_open_cache =
table_definition_cache =
thread_cache_size =
back_log =
connect_timeout =
max_connections =
wait_timeout =
interactive_timeout =
max_allowed_packet = 1024M slow_query_log = ON
long_query_time =
slow-query-log-file = slow.log query_cache_type =
query_cache_size =
query_cache_limit = tmp_table_size = 128M
max_heap_table_size = 128M innodb_file_per_table =
innodb_buffer_pool_size = 1024M read-only =
relay-log = mysql-relay-bin
expire_logs_days =
server-id =
# 同样注意 server-id 全局唯一
shell > chown -R mysql.mysql /data/mysql_data shell > /etc/init.d/mysql.server start shell > cat /data/mysql_data/xtrabackup_info binlog_pos = filename 'mysql-bin.000001', position '' shell > mysql -uxx -pxx -A mysql> stop slave;
mysql> reset slave all;
mysql> change master to master_host='x.x.x.x',master_user='rep',master_password='xx',master_log_file='mysql-bin.000001',master_log_pos=;
mysql> start slave;
mysql> show slave status\G Slave_IO_Running: Yes
Slave_SQL_Running: Yes
mysql> quit
# master_host='D'
# master_user='rep' # 这里的用户密码,是节点 D 上的,并不是节点 A 上的
# MySQL Slave 节点 E 搭建完成
# 不采用 innobackupex 时,可以使用如下方法:
# stop slave;
# flush tables with read lock;
# show slave status\G
# 记录 master_log_file,master_log_pos
# 新开一个终端,scp -r /data/mysql_data x.x.x.x:/data/mysql_data,拷贝完成就可以 unlock tables;
# chown -R mysql.mysql /data/mysql_data
# /etc/init.d/mysql.server start
# mysql -uxx -pxx -A
# chanage master to ...
# start slave;
# mysql.sock 如果放在 datadir 下,记得 chmod 755 /data/mysql_data,不然 zabbix_agentd 连接不到数据库
# End
innobackupex 备份数据搭建 MySQL Slave的更多相关文章
- xtrabackup备份方式搭建一个mysql slave
以前mysql搭建新备库都是在现在业务较小的备库上停止同步或停止数据库,然后拷贝数据库到新备库,配置好新备库后,再开启同步或数据库.然而,这次没有空闲备库用来搭新备库.需要从一个业务繁忙的数据库中搭建 ...
- Mysql备份系列(3)--innobackupex备份mysql大数据(全量+增量)操作记录
在日常的linux运维工作中,大数据量备份与还原,始终是个难点.关于mysql的备份和恢复,比较传统的是用mysqldump工具,今天这里推荐另一个备份工具innobackupex.innobacku ...
- Windows下搭建MySQL Master Slave
一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用keepalived这个HA工具,但是我们可以接受人工进行切 ...
- Windows下搭建MySQL Master Slave[转]
Windows下搭建MySQL Master Slave 一.背景 服务器上放了很多MySQL数据库,为了安全,现在需要做Master/Slave方案,因为操作系统是Window的,所以没有办法使用k ...
- centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数据库读写分离 双主搭建 mysql.history 第二十九节课
centos MySQL主从配置 ntsysv chkconfig setup命令 配置MySQL 主从 子shell MySQL备份 kill命令 pid文件 discuz!论坛数 ...
- mysqldump备份与还原mysql数据的实例
有关mysql数据库的备份与还原,我们一般用下面两种方式来处理:1.使用into outfile 和 load data infile导入导出备份数据 本文原始链接:http://www.jbxue. ...
- 使用innobackupex备份mysql数据库
1 因为使用perl脚本编写,安装前应先安装 yum install perl-Time-HiRes -y yum -y install perl-DBD-MySQL.x86_64 一起安装 ...
- mysql innobackupex备份工具
先简单介绍一下这个工具:innobackupexinnobackupex比xtarbackup有更强的功能,它整合了xtrabackup和其他的一些功能,他不但可以全量备份/恢复,还可以基于时间的增量 ...
- TiDB 作为 MySQL Slave 实现实时数据同步
由于 TiDB 本身兼容绝大多数的 MySQL 语法,所以对于绝大多数业务来说,最安全的切换数据库方式就是将 TiDB 作为现有数据库的从库接在主 MySQL 库的后方,这样对业务方实现完全没有侵入性 ...
随机推荐
- THREE.OrbitControls初始化设置位移/旋转/滚轮
let oldController;//已知的一个controller //初始化旋转(鼠标左键的操作) let position=oldController.object.position; cam ...
- 开发中常见的ES6语句
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jQuery的deferred对象详解(转载)
jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本.(由于无法转载,复制原文 .原文链接——原作者:阮一峰) 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5. ...
- Java变量类型之间的转换
int i; String s="134"; 1)String转换成int i=Integer.parseInt(s); 2)int转换成String(其他类型转String,都可 ...
- centos安装 node.js
curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash - yum clean all yum makeca ...
- 11.Python使用Scrapy爬虫小Demo(新手入门)
1.前提:已安装好scrapy,且已新建好项目,编写小Demo去获取美剧天堂的电影标题名 2.在项目中创建一个python文件 3.代码如下所示: import scrapy class movies ...
- wdlinux重新编译nginx
背景: 由于web站点需要换主机,并且切换环境. 站点需要做反相代理(nginx),主机从美国迁移到香港[考虑到速度问题,为什么不用大陆阿里云ECS服务器?几十个域名备案麻烦,还有阿里云内地没有多ip ...
- 关于WebSecurityConfigurerAdapter和ResourceServerConfigurerAdapter源码分析
前言:优先级高于ResourceServerConfigurer,用于保护oauth相关的endpoints,同时主要作用于用户的登录(form login,Basic auth) WebSecuri ...
- virtual Box centos7 公司网络环境下不能联网的解决方案
首先感谢@采蘑菇的东峰的博客 的分享 原文:http://blog.sina.com.cn/s/blog_8d92d7580102vhky.html ------------------------- ...
- 设置VS以管理员身份运行
以vs2013为例 vs右键属性 ----- 找到目标位置如下 "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\ ...