服务项目

需求沟通

mysql主从备份、主从切换


本节实现两个数据库同步,分为主从模式和相互备份模式。

1.实施环境:

两台Linux机器

SerA ip:10.0.0.232

SerB ip:10.0.0.234

2.主从模式

Master:SerA Slave:SerB

在SerA和SerB上分别建立用于同步的账号(也可以不新建账号,直接给其他账号分配访问权限)

use mysql;

delete from user;

grant all privileges on *.* to '$username'@'%' identified by '$password' with grant option;

flush privileges;

上面是为了安全,删除了一些用户(一般都要把默认的没有密码的用户删除)

步骤1:

SerA配置为Master,在SerA上在my.cnf中添加:

replicate-do-db=$database

server-id=1

指定binlog(因为通过binlog实现数据同步的)

配置完后重启数据库服务,用show master status可以看到Master信息。

步骤2:

在SerB的my.cnf中指定

replicate-do-db=$database

server-id=2

指定binlog

配置完后重启数据库服务,用show slave status可以看到Slave信息。

(在MySQL5.1以后,my.cnf中已经去除了master-host等参数,应该在启动服务之后通过change master to ...命令来实现配置,也可以在启动的时候添加这些参数。下面是change master to ...示例)

bin/mysql -u$username -p$password -e "stop slave;change master to master_host='$mysqlMasterHost',master_port=3306,master_user=$username,master_password=$password;start slave;"

mysqlMasterHost是Master的IP,

master_port是Master的端口,

master_user和master_password是用于同步的账号和密码

还有master_log_file和master_log_pos参数指定同步数据的位置。

可以在mysql命令模式下执行change master,之后start slave

注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info

所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。

这样就可以实现主从配置,此时在SerA指定数据库中加入数据,SerB中相应的数据库也会添加数据。

模拟主从切换:

假设SerA现在无法提供服务,只需在SerB上执行show master status记录master_log_file和master_log_pos,停止ServB的slave。

在SerA上执行change master 到SerB,并且指定master_log_file和master_log_pos,这样就可以恢复在SerA宕机期间存到SerB上的数据。

3.双机互备

双机互备只是两台机器同时做Master和Slave,

即在SerA上使它的Master指向SerB,SerB的Maser指向SerA,配置其实和主从模式是一样的。

楚一科技以技术创新为核心,不断提升产品质量和服务水平;以定制服务为驱动,贴心解决客户实际需求;以软件产品为依托,覆盖多行业信息化业务,先后推出多个信息化建设整体解决方案。联系电话:13100699922   15688888446

关注公众号了解更多精彩资讯:

                  





文章评论:

专业的软件开发/系统开发、品牌设计/网站建设,就选楚一科技!

选择专业的企业服务公司,服务更靠谱!

点击立即咨询>
底部客服