mysql 双机热备实战 --安恒网管员手记

疯子疯吧0

疯子疯吧0

2016-02-19 14:07

get新技能是需要付出行动的,即使看得再多也还是要动手试一试。今天图老师小编跟大家分享的是mysql 双机热备实战 --安恒网管员手记,一起来学习了解下吧!

mysql实现双机热备,原理是通过更新日志,用mysql的SELECT的文件操作功能,备机实时抓取主机的更新日志,当然这只是其原理,实际上并不需要我们自己去处理日志,明白了原理,实施就比较容易理解了。

这样,在主机端需要开一个账号,这个账号是备机用来抓取主机的更新日志。需要有文件访问权限,在早期,刚开始实现双机热备时,就是用的文件权限。

从mysql4 开始,添加了一个专门的权限,用来做热备,这个权限本质应该还是文件读取权限,但是应该只能用来读取日志,防止一些漏洞。

对于客户端来说,就是设置这个账号,密码,主服务器地址,还有要同步的数据库名。这只是单向的,再配置一个对等的同步通道,就支持双向的热备了。

通过热备,还可以备端从主端load全部数据。这个在同步出错时可以使用。load权限是一个单独的mysql权限,这样跟热备有关的mysql的权限有2个,日志抓取和数据载入(REPLICATION SLAVE, REPLICATION CLIENT )

在服务器端开备份账号

GRANT REPLICATION SLAVE , REPLICATION CLIENT ON * . * TO "backup"@ "192.168.1.2"IDENTIFIED BY "*****"WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

在服务器端打开日志功能

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

/etc/mysql/my.cnf
[mysqld]
server-id = 1
log-bin
binlog-do-db = pa
max_binlog_size = 104857600
-------------------------------------------- 这样,mysql会在数据目录放置pa这个库的更新日志。等待备机来抓取。

客户端设置:
/etc/mysql/my.cnf
master-host=192.168.1.1
master-user=backup
master-password=12345
master-port=3306
master-connect-retry=60
replicate-do-db=pa

客户端会到服务器抓取pa库的更新日志,来更新本地的pa库。

几个跟热备有关的mysql命令:(需要在mysql命令行界面或query )

stop slave

    #停止同步

start slave

    #开始同步,从日志终止的位置开始更新。 SET SQL_LOG_BIN=0|1  #主机端运行,需要super权限,用来开停日志,随意开停,会造成主机从机数据不一致,造成错误 SET GLOBAL SQL_SLAVE_SKIP_COUNTER=n  # 客户端运行,用来跳过几个事件,只有当同步进程出现错误而停止的时候才可以执行。 RESET MASTER  #主机端运行,清除所有的日志,这条命令就是原来的FLUSH MASTER RESET SLAVE

   #从机运行,清除日志同步位置标志,并重新生成master.info

虽然重新生成了master.info,但是并不起用,最好,将从机的mysql进程重启一下, LOAD TABLE tblname FROM MASTER #从机运行,从主机端重读指定的表的数据,每次只能读取一个,受timeout时间限制,需要调整timeout时间。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 LOAD DATA FROM MASTER  #从机执行,从主机端重新读入所有的数据。执行这个命令需要同步账号有reload和super权限。以及对相应的库有select权限。如果表比较大,要增加net_read_timeout 和 net_write_timeout的值 CHANGE MASTER TO master_def_list  #在线改变一些主机设置,多个用逗号间隔,比如

CHANGE MASTER TO
  MASTER_HOST=''master2.mycompany.com'',
  MASTER_USER=''replication'',
  MASTER_PASSWORD=''bigs3cret'' MASTER_POS_WAIT() #从机运行 SHOW MASTER STATUS #主机运行,看日志导出信息 SHOW SLAVE HOSTS #主机运行,看连入的从机的情况。 SHOW SLAVE STATUS (slave) SHOW MASTER LOGS (master) SHOW BINLOG EVENTS [ IN ''logname'' ] [ FROM pos ] [ LIMIT [offset,] rows ] PURGE [MASTER] LOGS TO ''logname'' ; PURGE [MASTER] LOGS BEFORE ''date''

下面是Q&A时间:

双机热备怎么配置?照上面再配置一个反向的更新就行了。
不用担心本机的更改会回环回来,因为server_id就是识别这个用的. 多机热备怎么做,几台mysql服务器就像首尾相连的蛇,组成一个环装,就可以了,而且还可以作几个单向的更新,用以分担select这样的读取操作的压力,因为mysql操作中大部分是
select操作.如下图所示:

展开更多 50%)
分享

猜你喜欢

mysql 双机热备实战 --安恒网管员手记

编程语言 网络编程
mysql 双机热备实战 --安恒网管员手记

安恒网管员手记: mysql密码忘记的修改

编程语言 网络编程
安恒网管员手记: mysql密码忘记的修改

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

mysql双机热备份

编程语言 网络编程
mysql双机热备份

PsTools——网管员的好帮手

电脑网络
PsTools——网管员的好帮手

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Mysql 数据库双机热备的配置

编程语言 网络编程
Mysql 数据库双机热备的配置

MySQL数据库中双机热备配置份过程

MySQL mysql数据库
MySQL数据库中双机热备配置份过程

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

MySQL的转义字符“”

MySQL的转义字符“”

Excel小写中文、大写中文格式

Excel小写中文、大写中文格式
下拉加载更多内容 ↓