1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > mysql主从服务器宕机 Mysql主从数据库配置及宕机处理

mysql主从服务器宕机 Mysql主从数据库配置及宕机处理

时间:2019-01-26 17:36:22

相关推荐

mysql主从服务器宕机 Mysql主从数据库配置及宕机处理

一、概要说明

数据库读多写少,主库负责写,从库负责读。一主多从,从而解决读多写少。mysql

宕机时将选择pos最大的从库做为新的主库,其他从库继续担任本身的职责。sql

二、Mysql备份原理

简单的说就是把 一个服务器上执行过的sql语句在别的服务器上也重复执行一遍。数据库

主服务器master记录数据库操做日志到Binary log,从服务器开启i/o线程将二进制日志记录的操做同步到relay log(存在从服务器的缓存中),另外sql线程将relay log日志记录的操做在从服务器执行。vim

三、具体步骤

(1)须要环境缓存

系统:CentOS服务器

软件包:mysql-5.6.22.tar.gzapp

master服务器:192.168.*.*测试

slave服务器1:192.168.*.*ui

slave服务器2:192.168.*.*spa

(2)修改主库服务器配置

vim/etc/f

在主服务器master上配置开启Binary log,主要是在[mysqld]下面添加:

server-id=1

log-bin=master-bin

log-bin-index=ma

修改slave服务器1配置

vi /etc/f

[mysqld]

log-bin=mysql-bin #可选项,启用二进制日志,但是主库宕机后升级从库为主库时仍然须要设置,因此如今一块儿启用也能够

server-id=102 #必选项,服务器惟一ID

replicate-do-db=mydb #可选项,须要同步的数据库名,不写本行表示同步全部的数据库ster

-bin

.index

如图:

(3)重启mysql服务

service mysql restart

(4)修改slave服务器1配置

vi /etc/f

[mysqld]

log-bin=mysql-bin#可选项,启用二进制日志,但是主库宕机后升级从库为主库时仍然须要设置,因此如今一块儿启用也能够

server-id=102#必选项,服务器惟一ID

replicate-do-db=mydb#可选项,须要同步的数据库名,不写本行表示同步全部的数据库

其余从库,一样的配置。

(5)重启新配置的从服务器

service mysql restart

(6)检查主从库配置效果

主库:mysql> SHOW MASTER STATUS;

应输出以下:

从库:mysql>show slave status\G;

#如下是部分结果

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event#从库状态,已连上主库

Master_Host: 192.168.1.112#master地址

Master_User: mymaster#master用户

Master_Port: 3306#master端口

Connect_Retry: 60#重试时间,默认是60秒

Master_Log_File: mysql-bin.000001#master的binlog文件名

Read_Master_Log_Pos: 1556#同步读取二进制日志的位置,大于等于Exec_Master_Log_Pos

Slave_IO_Running: Yes#必须为Yes,此线程把master段的日志写到本地

Slave_SQL_Running: Yes#必须为Yes,此线程把写到本地的日志应用于数据库

Replicate_Do_DB:#同步数据库名(若是有)

Replicate_Ignore_DB:#忽略数据库名(若是有)

Exec_Master_Log_Pos: 1556#执行同步命令的位置

Last_IO_Errno: 0#最近IO出错位置

Last_IO_Error:#最近IO出错信息

Last_SQL_Errno: 0#最近SQL出错位置

Last_SQL_Error:#最近SQL出错信息

Master_Server_Id: 112#master服务器ID

Master_Info_File: /data/mysqldb/master.info#master.info文件位置,位于该slave中

1 row in set (0.00 sec)

若是Slave_IO_Running和Slave_SQL_Running均为Yes,则slave配置完成

(7)接下来配置个数据库的关联

a、首先咱们先创建一个操做主从同步的数据库用户,切换到主数据库执行:

mysql> create user repl;

mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从xxx.xxx.xxx.xx' IDENTIFIED BY 'mysql';

mysql> flush privileges;

1

2

3

这个配置的含义就是建立了一个数据库用户repl,密码是mysql, 在从服务器使用repl这个帐号和主服务器链接的时候,就赋予其REPLICATION SLAVE的权限, *.* 表面这个权限是针对主库的全部表的,其中xxx就是从服务器的ip地址。

b、进入全部从数据库后执行:

mysql> change master to master_host='主xxx.xxx.xxx.xx',master_port=3306,master_user='repl',master_password='mysql',master_log_file='master-bin.000001',master_log_pos=0;

1

这里面的xxx是主服务器ip,同时配置端口,repl表明访问主数据库的用户,上述步骤执行完毕后执行start slave启动配置:

mysql> start slave;

(8)主从服务器测试

在master中建立数据库,建立表,进行增删改操做都会被同步到全部slave中,这就说明配置成功啦。

4、主库宕机解决

假设发生了突发事件,master宕机,如今的需求是要将192.168.1.102提高为主库,另一个为从库

步骤:

1.确保全部的relay log所有更新完毕,在每一个从库上执行:

stop slave io_thread;

show processlist;

直到看到Has read all relay log,则表示从库更新都执行完毕了

2.登录全部从库,查看master.info文件,对比选择pos最大的做为新的主库,这里咱们选择192.168.1.102为新的主库

3.登录192.168.1.102,执行stop slave;

并进入数据库目录,删除master.info和relay-log.info文件, 配置f文件,开启log-bin,若是有log-slaves-updates和read-only则要注释掉,执行reset master

4.建立用于同步的用户并受权slave,同第3.7步骤

5.登陆另一台从库,执行stop slave中止同步

6.根据第3.7步骤链接到新的主库

7.执行start slave;

8.修改新的master数据,测试slave是否同步更新

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。