MYSQL 双机热备 操作步骤

导读:本篇文章讲解 MYSQL 双机热备 操作步骤,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

具体的什么叫热备,热备的原理在这我就不多讲了,网上有很多讲原理的文章,在此我主要讲下实现的步骤。本人亲测的步骤,也主要是为了防止以后忘记。不多说了,进入正题:

一、建立主-从服务器双机热备配置步骤

1,准备工作

  • 配置两台服务器,例如IP地址分别是:192.168.51.119(主)和192.168.51.120(从) 两台服务器
  • 在两台服务器上分别安装Mysql(版本最好一致,本人测试时安装的版本是5.7。有文章说从服务器只要不低于主服务器版本就可以,本人没有测试过。我是在两台服务器上装了相同安装包的Mysql,这样绝对一致了,呵呵)。
  • 准备一个需要同步的数据库,例如:数据库名:mytest(这里要说明下,同步只是对以后的操作同步。如果在启动热备之前两个数据库就不一致,那样他们仍然会保留不一致的状态。在热备之后如果操作了这些不一致的数据,就会造成热备失败,热备也就停止工作了。所以强烈建议在启动热备之前,保证两个数据库绝对一致!!

2,主服务器配置(Master)

2.1,在主服务器上为从服务器建立一个连接账户,该帐户必须授予REPLICATION SLAVE权限。

mysql> grant replication slave,super,reload on *.* to forslave@192.168.51.120 identified by ‘123456’;

mysql> flush privileges;

创建好同步连接帐户后,我们可以通过在从服务器(Slave)上用forslave帐户对主服务器(Master)数据库进行访问,看下是否能连接成功。

在从服务器(Slave)上输入如下指令:

[root@YD146 ~]# mysql -h192.168.51.119 -urforslave -p123456

如果出现下面的结果,则表示能登录成功,说明可以对这两台服务器进行双机热备进行操作。

MYSQL 双机热备 操作步骤

2.2,对主数据库服务器配置文件进行配置:进入主数据库服务器安装目录,打开my.ini,在文件末尾增加如下配置:

#数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值; 
server-id = 1
#启用二进制日志;
log-bin=mysql-bin
#需要同步的二进制数据库名;
binlog-do-db=tync_test
#不同步的二进制数据库名,如果不设置可以将其注释掉;
binlog-ignore-db=information_schema
binlog-ignore-db=mysql
#设定生成的log文件名;
log-bin="D:/Database/materlog"
#把更新的记录写到二进制文件中;
log-slave-updates

2.3,修改完成后,重启mysql服务。

2.4,查看主服务器状态

进入mysql服务后,可通过指令查看Master状态,输入如下指令:

mysql> show master status\G

MYSQL 双机热备 操作步骤

注意看里面的参数,特别前面两个File和Position,在从服务器(Slave)配置主从关系会有用到的。

3,从服务器配置(Slave)

因为这里面是以主-从方式实现mysql双机热备的,所以在从服务器就不用在建立同步帐户了,直接打开配置文件my.ini进行修改即可,道理还是同修改主服务器上的一样,只不过需要修改的参数不一样而已。如下:

3.1,对从数据库服务器配置文件进行配置:

[mysqld]
server-id = 2
log-bin=mysql-bin
replicate-do-db = tync_test
replicate-ignore-db = mysql,information_schema

3.2,修改完成后,重启mysql服务。

3.3,用change mster 语句指定同步位置(非常重要)

这步是最关键的一步了,在进入mysql操作界面后,输入如下指令:

mysql>stop slave;   //先停步slave服务线程,这个是很重要的,如果不这样做会造成以下操作不成功。

mysql>change master to

     >master_host='192.168.51.119',master_user='forslave',master_password='123456',

     >master_log_file='materlog.00001',master_log_pos=710;

注:master_log_file, master_log_pos由主服务器(Master)查出的状态值中确定。也就是刚刚叫注意的。master_log_file对应File, master_log_pos对应Position。Mysql 5.x以上版本已经不支持在配置文件中指定主服务器相关选项。

遇到的问题,如果按上面步骤之后还出现如下情况:

MYSQL 双机热备 操作步骤
 则要重新设置slave。指令如下

mysql>stop slave;
mysql>reset slave;
mysql>start slave;

3.4,查看从服务器状态

mysql> show slave status\G

MYSQL 双机热备 操作步骤

查看下面两项值均为Yes,即表示设置从服务器成功。

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

3.5,解决以上两个状态不是YES的情况

Slave_IO_Running: No 产生原因不详,解决方法是:

mysql>stop slave;
mysql>reset slave;
mysql>start slave;

我是这么就解决了,大家如果试了还是不行,大家就自行Google吧。

Slave_SQL_Running: No 一般情况是主服务器上的SQL语句在从服务器上执行不成功产生了错误,造成热备失败。比如:主服务器删除一个id为3的数据,而从服务器上没有id为3的数据,这样就会出现Slave_SQL_Running: No。 这个错误会有错误提示,通过show slave status\G命令就能查看到,找到原因后,解决响应的问题,比如在从服务器上增加一条id为3的数据,就可以了。解决好问题后,执行

mysql> stop slave;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> start slave;

只要问题找对,系统就可以重新把出错后没有同步的数据重新同步好。Slave_SQL_Running 的状态自然也变为:Yes

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82051.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!