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

2016-02-19 14:07 6 1 收藏

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

【 tulaoshi.com - 编程语言 】

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 ;

在服务器端打开日志功能

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

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

客户端设置:
/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操作.如下图所示:

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

来源:http://www.tulaoshi.com/n/20160219/1606216.html

延伸阅读
网络管理阶层的工作就是保证网络的正常工作,从而使得职工们的工作不被打断。可问题在于事物并非总是按照理想状况发展,事实上经常会出现平地起风波的状况。其间有许多原因,这里我们只讨论10种较为常见的网管错误。 1.UPS(不间断电源)的使用问题 某商店正在压榨它的网络系统的最后生命。尽管那台很老的服务器几乎难以满足商店运营的需要,...
硬件配置 普通PC server * 2 (最小集群环境需要4台服务器) 模拟环境 red hat linux9 for x86 (or red hat AS 2以上版本),glibc-2.2, static, gcc MySQL版本4.1.12 binares mysql-max binary版本目前只支持linux、max os x和solaris 本方案不涉及从源代码编译安装 主机 IP地址 用途 ndb1_mgmd_sql...
联机备份的特点 联机备份又称为热备份,在备份的同时,数据库的用户可以进行操作,因此,数据库对应的物理文件的内容是不断变化的,对这些物理文件内容的更新是保留到有关操作已经写到重做日志文件中后再进行的。 用备份向导实现联机备份 (1)如图12.33所示。 (2)出现如图12.34所示的备份向导的界面。 (3)...
MySQL Proxy最强大的一项功能是实现“读写分离(Read/Write Splitting)”。基本的原理是让主数据库处理事务性查询,而从数据库处理SELECT查询。数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库。 Jan Kneschke在《MySQL Proxy learns R/W Splitting》中详细的介绍了这种技巧以及连接池问题: 为了实现读写分离我们需...
有效防止汗、水、皮脂,具有优异的防水效果(通过耐水测试)。通过抗干燥设计,即使是容易干燥的肌肤也能够持续保持湿润而舒适的肌肤状态。资生堂安热沙防晒露质地清爽,具有出色的防晒功效,防水、抗汗设计,不易脱妆,容易抹开,涂后不泛白。抗干燥配方,即使是容易干燥的肌肤涂后也能持续保持湿润肌肤。再严酷的紫外线,也能长时间保持UV防...

经验教程

221

收藏

19
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部