Mysql主从同步

  • Mysql主从同步已关闭评论
  • 901 views
  • A+
所属分类:数据库
广告也精彩
本文预计阅读时间 8 分钟
文档说明

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

场景:

master  222.*.*67(由于67是正式库无法测试,这里拿139.196.50.3做测试)

slave   222.*.*.70

相关应用目录及相关文件

搭建mysql主从环境。

1. 配置my.cnf文件,使server-id为唯一:
Master:server-id=1
Slave: server-id=2

2. 进入mysql,在master中创建两个复制账号。
create user replicant@'%' identified by 'slave';
flush tables with read lock; #锁表
#reset master; #重新刷新bin_log日志。若是运行中的项目,请谨慎执行该命令。
show master status \G; 记录当前Position和当前bin_log文件名。

 

#3. 在不退出终端的情况下将mysql目录打包成tar.gz,并传至slave.

tar zcvf mysql.tar.gz /var/lib/mysql

 

Mysql主从同步

#4. 将mysql.tar.gz解压缩后替换掉slave上的mysql。并重启mysql(需注意两者的配置文件除了mysql使用的内存外,其余尽量相同,防止启动出错)

tar -zvxf mysql.tar.gz

/etc/init.d/mysql restart;  (不适用)版本不对。

5.在slave中执行如下命令后解锁:

mysql>CHANGE MASTER TO MASTER_HOST='139.196.50.3',

MASTER_USER = 'replicant',

MASTER_PASSWORD = 'slave',

MASTER_LOG_FILE= 'iZ11k0g4wt4Z-bin.000001',

MASTER_LOG_POS=1;

  1. 启动slave的slave (master需对slave开放3306端口)

start slave;

show slave status \G;

Mysql主从同步

 

若数据库为innodb引擎的库或刚开始搭建的库,通过percona-xtrabackup来备份全库的话更容易实现主从、主主,且锁表时间更短。

Mysql 5.6备份全库

innobackupex --defaults-file=/etc/my.cnf --user=root --password=root --databases=wowpower --socket=/var/lib/mysql/mysql.sock  /root/mysqlbak

Xtrabackup中的xtrabackup_binlog_info中记录了bin_log和pos的点,通过该值可实现主从。

只需要将备份的数据库传至slave端后通过还原全库即可还原数据库,在根据xtrabackup_binlog_info的内容修改同步语句即可。

准备还原

innobackupex --user=root --password='Vnadmin!@#123' --defaults-file=/etc/my.cnf --apply-log  /root/ROOT/2015-12-01_19-23-53

开始还原

innobackupex --user=root --password='Vnadmin!@#123' --defaults-file=/etc/my.cnf --copy-back  /root/ROOT/2015-12-01_19-23-53

部署过程遇到的错误记录

问题1:
innobackupex: Waiting for ibbackup (pid=1004) to suspend
innobackupex: Suspend file '/root/bakmysql/2015-12-01_17-06-01/xtrabackup_suspended_2'

解决方法:yum install libgcc.i686
问题2:
151201 18:51:26  innobackupex: Starting the apply-log operation

IMPORTANT: Please check that the apply-log run completes successfully.
At the end of a successful apply-log run innobackupex
prints "completed OK!".

innobackupex:: Warning: Ignored unrecognized line 2 in options : 'xtrabackup: Error: Please set parameter 'datadir'
'
innobackupex: got a fatal error with the following stacktrace: at /usr/bin/innobackupex line 4511
main::get_option('innodb_data_file_path') called at /usr/bin/innobackupex line 2623
main::apply_log() called at /usr/bin/innobackupex line 1570
innobackupex: Error: no 'mysqld' group in server configuration file '/etc/my.cnf' at /usr/bin/innobackupex line 4511.

解决方案yum remove percona-xtrabackup-2.2.10-1.el6.x86_64
重新安装匹配的软件

 

测试:解锁UNLOCK TABLES
主数据库添加一个数据,然后再删除测试,刷新后无用户。Mysql主从同步 Mysql主从同步

 

weinxin
九四君博客站长语录
欢迎关注订阅‘爱君娱乐科技’微信公众号,本站的资源也会上传到‘爱君娱乐科技’公众号。
广告也精彩