在现有MHA架构中添加slave
来源:互联网 发布:第五元素 知乎 编辑:程序博客网 时间:2024/04/28 07:06
部分参照http://www.percona.com/doc/percona-xtrabackup/2.1/howtos/setting_up_replication.html
利用三台新机器示例(跟3.2中配置没有联系):
Master
Slave
Slave
10.19.90.210:3308
10.19.90.208:3308
10.19.90.210:3388
1.1 利用master做备份,搭建主从复制
1.1.1 在master上做一个全量备份
1、 备份
在master上执行./innobackupex --user=root --password=dp--socket=/mysqldp/data/mysql.sock --defaults-file=~/etc/my.cnf/mysqldp/data_bak/
执行结束后需要看到
这一步会在/mysqldp/data_bak/目录下生成MySQL data的备份,备份是以时间戳命名的文件:
2、 为了让快照保持一致,需要prepare
./innobackupex --user=root --password=dp--socket=/mysqldp/data/mysql.sock --defaults-file=~/etc/my.cnf --apply-log/mysqldp/data_bak/2014-06-06_09-01-58/
执行结束后,同样需要看到
1.1.2 将备份数据拷贝到slave上
1. Master上的备份数据scp到slave上
Master上执行:
scp -r 2014-06-06_09-01-58 root@10.19.90.208:/mysqldp/
2. 将slave的data目录备份
Slave上执行(必须保证slave此时已经关闭):
mv /mysqldp/data /mysqldp/data_bak
3. 将master上的备份数据移到slave data目录的位置
Slave上执行:
mv /mysqldp/2014-06-06_09-01-58 /mysqldp/data
4. 保证此时slave有权限访问data目录
Slave上执行:
Chown –R mysqldp.mysqldp /mysqldp/data
1.1.3 配置master服务器
① 赋replication slave权限
在master上执行:
grant replication slave on *.* to 'repl'@'10.19.90.208'identified by 'repl';
② Slave上确认是否能用repl用户连接到master
Slave上执行:
mysql -urepl -prepl -h10.19.90.210 -P3308
连接上之后查看当前权限,执行show grants;
1.1.4 配置slave服务器
修改salve的server-id
与其他MySQL服务器的server-id不同即可
1.1.5 开始复制
1) 启动slave
mysqld_safe --defaults-file=~/etc/my.cnf &
2) 在slave的data目录下查看xtrabackup_binlog_info文件
3) 在slave上change master
执行:
change master to master_host='10.19.90.210',master_port=3308,master_user='repl',master_password='repl',master_log_file='mysql-bin.000004',master_log_pos=568276203;
4) Slave 上执行startslave,开启复制。
1.1.6 检查slave状态
Slave上执行show slavestatus\G
出现两个Yes代表复制成功,Seconds_Behind_Master表示主从之间的延迟,在备份结束到slave开始运行过程中master可能已经有其他操作,所以会出现延迟。
1.2 利用slave做备份,添加slave机器
1.2.1 在slave上做备份
1、 备份
在slave(10.19.90.208:3308)上执行:./innobackupex --user=root --password=dp--socket=/mysqldp/data/mysql.sock --defaults-file=~/etc/my.cnf--slave-info /mysqldp/bak
执行结束后需要看到
2、 为了让快照保持一致,需要prepare
在slave(10.19.90.208:3308)上执行:./innobackupex--user=root --password=dp --socket=/mysqldp/data/mysql.sock--defaults-file=~/etc/my.cnf --apply-log --use-memory=2G/mysqldp/bak/2014-06-06_10-49-40/
1.2.2 将slave上备份的数据scp到新slave
I 、在slave(10.19.90.208:3308)上执行:
scp -r 2014-06-06_10-49-40root@10.19.90.210:/mysqldp/mysqldp1/
II 、将new slave(10.19.90.210:3388)上的data目录备份(必须保证new slave已经关闭):
执行mv data data_bak
III 、将new slave上的备份文件2014-06-06_10-49-40重命名为data
mv 2014-06-06_10-49-40 data
IV 、new slave上data目录赋权限
chown -R mysqldp1.mysqldp1 /mysqldp/mysqldp1/data
1.2.3 Master给new slavere赋replication slave权限
grant replication slave on *.* to'repl'@'10.19.90.210' identified by 'repl';
1.2.4 修改new slave的配置文件
修改server-id=3
1.2.5 开始复制
a) 启动slave
mysqld_safe --defaults-file=~/etc/my.cnf &
b) 查看new slave的data目录下的xtrabackup_slave_info文件:
c) 在new slave上执行
change master tomaster_host='10.19.90.210',master_port=3308,master_user='repl',master_password='repl',master_log_file='mysql-bin.000004',master_log_pos=759176683;
d) 启动slave
New slave上执行start slave
1.2.6 查看new slave状态
执行show slave status\G
- 在现有MHA架构中添加slave
- 利用xtrabackupex在线添加slave-MHA
- 在现有表中添加Unique约束
- VS中在一个项目中添加现有的数据库
- 使用AutoLISP在现有菜单中添加局部菜单
- 如何在现有的表空间中添加数据文件
- 如何在现有字段中添加auto_increment约束
- win7系统如何在现有库中添加文件夹
- SQL在现有表中添加新字段
- 现有表中添加约束
- 偶遇双主架构中dml语句无法在slave上执行。
- 在eclipse中,如何添加现有java类文件或包文件到工程中?
- mysql-mha架构
- MHA+keepalived架构优化
- Mysql架构MMM,MHA
- mysql+mha+keepalived实现MHA架构
- [整理]在现有Web项目中添加Web Service支持,服务端及客户端开发
- 在VS2008的解决方案中添加多个现有工程的方法
- Maximum Subarray
- 做互联网服务的一些心得碎语
- unix存储空间分配
- JBOSS最大连接数配置和jvm内存配置
- ssh登录BBB新刷系统提示RSA认证出错
- 在现有MHA架构中添加slave
- iOS 之自定义UI组件的外观——使用UIAppearance协议自定义视图(初识)
- Oracle权限
- Android Bitmap和Canvas学习笔记
- ndk编译ffmpeg
- HDU 1072 Nightmare
- 将MySQL数据库搬迁到另一服务器中遇到的问题:MySQL is running but PID file could not be found[FAILED]&MySQL大小写
- java利用反射实现Object-c中的KVC机制
- 使用anysdk打包android渠道