生产环境下的MySQL数据库主从同步总结 (生产环境下的计算机名称以SHFH开头)

教程大全 2025-07-17 02:29:55 浏览

MySQL的主从同步是一个很成熟的架构,优点为:①在从 服务器 可以执行查询工作(即我们常说的读功能),降低主服 务器压力;②在从主服务器进行备份,避免备份期间影响主服务器服务;③当主服务器出现问题时,可以切换到从服务器。所以我在项目部署和实施中经常会采用这 种方案;鉴于生产环境下的MySQL的严谨性,我这里推荐采用张宴兄的MySQL源码编译的方法.

第④版更新内容如下:

一、增加了MySQL5.1.38的编译安装过程,安装过程仍然采用张宴早期安装MySQL的方法,摈弃了用脚本控制的办法;

生产环境下的MySQL数据库主从同步总结

二、从库取主库的方法仍然采用tar获取,未采用MySQLdump的原因是在实际配置中发现,此法失败的机率比较大,故一直用tar取主数据库的完整快照,这里有网友不是太理解,这里重点说明下;

三、MySQL主从复制虽然配置比较简单,但同时也是柄刃剑;因为如果在主库上发生误删表现象,从库也会发生;所以主表的单机备份一定要作,推荐同时也作FTP备份;

四、binlog日志一定要开启,签于生产环境的严谨性,此贴欢迎大家交流探讨,找出其中的bug和错误,以免误导新人;此贴我会持续关注和更新(抚琴煮酒)

数据库目录及其它

my.cnf配置文件 /usr/local/webserver/MySQL/my.cnf

MySQL数据库位置 /usr/local/webserver/MySQL/data/

主数据库:192.168.4.191从数据库:192.168.4.192操作系统:RHEL5.4 64位服务器类型: HP 580G5,双四核XeonE5520,32G内存,6块300GSAS做成raid10MySQL5.1.38源码编译过程如下:

①以MySQL用户帐号的身份建立数据表:

②启动MySQL(最后的&表示在后台运行)

一、设置主库

1、修改主库my.cnf,主要是设置个不一样的id和logbin

2、启动主库生效

3、登陆主库

4、赋予从库权限帐号,允许用户在主库上读取日志

5、检查创建是否成功

6、锁主库表

7、显示主库信息

记录File和Position,从库设置将会用到

8、另开一个终端登陆124,打包主库迁移数据

二、设置从库

1、传输拿到主库包、解包

登陆从库

2、解锁主库表

3、修改从库my.cnf

4、验证连接主库

5、在从库上设置同步

设置连接MASTER MASTER_LOG_FILE为主库的File,MASTER_LOG_POS为主库的Position

6、启动从库服务

7、进行测试

在主库上的iea表上建立名为yuhongchun的表

在从表中马上看到了效果,主从同步成功了;为了更进一步验证在从库上输入show slave status\G;MySQL> show slave status\G;

Slave_IO_Running: Yes(网络正常);Slave_SQL_Running: Yes(表结构正常),进一步验证了以上过程的正确性,截图如下(一定要保证这二项参数为YES)

在主MySQL上可输入MySQL> show full processlist;观察其状态,正确结果也应该如截图所示:

如果主MySQL发生错误,如何做主从切换呢?

1、保证所有从数据库都已经执行了relay log中的全部更新,在从服务器中执行stop slave io_thread,用show processlist检查,查看状态是否是Has read all relay log,表示更新完成.

2、在从服务器上执行stop slave,reset master命令,重置成主数据库

3、删除新的主服务器数据库目录中的master.info和relay-log.info文件,否则下次重启时还会按照从服务器来启动.

MySQL 主从架构投入生产前后应该注意的事项:

一、配置前,master和slave的hostname一定要取个不同的,免得配置时发生问题;另外,强烈建议ntpdate二台服务器的时间,不然来个未来(future)时间就麻烦了。

二、由于MySQL数据库走的都是内网,所以二台机器的iptables可以关闭,在配置过程中由于没关iptables发生了错误,直接导致admin在slave数据库上连不上主数据库,这个特指出来给大家借荐 下;

三、主MySQL的binlog功能一定要打开,我们的线上服务器有次由于PHP程序误操作,发生了改单错误,幸亏用binlog恢复过来了;但开启此功能要注意binlog的大小,有次Nagios狂报警,binlog日志都快1T了;

四、如果slave服务器同步时出现以下报错:The slave I/O thread stops because master and slave have equal MySQL server IDS; these ids must be different for replication to work (or the –replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it)

说明方从服务器里my.cnf中的server-id有相同的。解决办法:修改my.cnf里的server-id,并重启数据库服务。

五、本着防患于未然,如果做主MySQL的备份时,请尽快用shell脚本同时做下FTP的备份工作,即将本地备份数据即时FTP到存储服务器上,事实证明:这样能将备份是救命的稻草的宗旨执行得更为彻底。

平时多检查MySQL的备份文件,尤其要关注其真实大小及时间;如果有条件,建议多用备份的数据库文件在其余机器做下恢复实验,跟真实的运行的数据库比对,看有无区别。

六、数据库的主从切换是比较危险的操作,尤其是电子商务的跑单业务,很容易丢失数据,这种操作不到万不得已不推荐执行!

【编辑推荐】


如何恢复MySQL主从数据一致性

1. 备份主库数据,并在从库上恢复,在历史数据一致性的基础上开启同步,但这种方法比较麻烦,必须在主库上执行锁表操作,阻止客户端对于表数据的更新操作,而且在数据量大的情况下,备份也是个耗时的工程。 其实,这种方法在实际生产环境中也很少用。 2. Skip掉相关错误其实,这个说活不是很严谨,准备的说,是跳过相关的事务。 在我今天这种情况下,就是skip掉因违反主键约束而失败的insert语句。

什么是土地增减挂?

土地增减相挂,就是城镇建设用地增加与农村建设用地减少相挂钩的一种政策。 土地增加挂并不是拆迁的一种事由,因此,也没有一个专门关于土地增减挂的拆迁补偿标准。

我们常说:“人非草木,孰能无情?”其实,草木也是有情的:向日葵钟情于太阳;含羞草很腼腆,叶子一触即合拢。草木有情,人岂能无情?当漫山遍野的绿色展示,当枯木逢春发新芽,请以“人与自然”为题写篇四百字文章

近代以来,由于科学技术水平的发展,人类认识自然、改造自然的能力大大提高,人类实践的范围不断扩大,使得更多的天然自然转化为人化自然,人类在征服自然、利用自然取得巨大成果的同时,对自然均衡状态的破坏也达到了相当严重的程度。 目前全球存在的人与自然的问题:人口问题(人类自身问题)、资源问题(自然问题)、环境问题、生态问题(人与自然的关系问题)相当突出。 环境污染、生态失衡已成为世界性公害。 据世界卫生组织报告:目前全世界有10亿以上人口生活在污染严重的城市,而在洁净环境中生活的城市人口不到20%。 全世界有近三分之一的人口缺少安全用水,每天有数以万计人的死与水污染有关,食品中毒事件经常发生。 由于自然资源非正常利用,异生型人工自然物的大量滋生,干扰了自然生态的正常演化,破坏了整体自然生态系统的稳定和平衡,出现了全球性的生态危机。 其中:“臭氧层的破坏”、“温室效应”、“酸雨危害”,已成为世界性的生态危机的三大突出问题。 人与自然关系严重失衡,造成这一失衡的原因是多方面的,但主要有四个方面不可忽视:一是人类认识自然的水平有限;二是人类对技术的控制能力不够;三是功利主义思想的影响,国家利益、民族利益、地区利益、集体利益以及个人利益代替了人与自然的整体利益和长远利益;四是价值偏见。 人们在实践过程中,往往只注意到眼前自然资源的使用价值,而忽略了自然永存的内在价值,为了满足眼前局部的利益,对自然资源进行掠夺性开采,以至危及人类的持续发展。 在唯物辩证法看来,世界上的任何事物都是矛盾的统一体。 我们面对的现实世界,就是由人类社会和自然界双方组成的矛盾统一体,两者之间是辩证统一的关系。 一方面,人与自然是相互联系、相互依存、相互渗透的:人由自然脱胎而来,其本身就是自然界的一部分。 人类的存在和发展,一刻也离不开自然,必然要通过生产劳动同自然进行物质、能量的交换。 随着生产力水平的提高,人类认识自然、改造自然的能力不断增强,现在的自然已经不是原来意义上的自然,而是到处都留下了人的意志印记的自然,即人化了的自然。 “人化自然”表明人与自然之间的相互联系、相互渗透越来越密切。 人与自然之间客观上形成的依存链、关联链和渗透链,必然要求人类在认识自然、改造自然、推动社会发展的过程中,不仅要自觉地接受社会规律的支配,同样要自觉地接受自然规律的支配,促进自然与社会的稳定和同步进化,推动自然与社会的协调发展。 另一方面,人与自然之间又是相互对立的。 人类为了更好地生存和发展,总是要不断地否定自然界的自然状态,并改变它;而自然界又竭力地否定人,力求恢复到自然状态。 人与自然之间这种否定与反否定,改变与反改变的关系,实际上就是作用与反作用的关系,如果对这两种“作用”的关系处理得不好,特别是自然对人的反作用在很大程度上存在自发性,这种自发性极易造成人与自然之间失衡。 此外,由于人类改造自然的社会实践活动的作用具有双重性,既有积极的一面,又有消极的一面,如果人类能够正确地认识到自然规律,恰当地把握住人类与自然的关系,就能不断地取得改造自然的成果,增强人类对自然的适应能力,提高人类认识自然和改造自然的能力;如果在对自然界更深层次的本质联系尚未认识到,人类与自然一定层次上的某种联系尚未把握住的情况下,改造自然,其结果要么自然内部的平衡被破坏,要么人类社会的平衡被破坏,要么人与自然的关系被破坏,因而受自然的报复也就在所难免。 恩格斯曾就此告诫过人们“不要过分陶醉于我们对自然界的胜利。 对于每一次这样的胜利,自然界都报复了我们。 每一次胜利,在第一步都确实取得了我们预期的结果,但是在第二步和第三步却有了完全不同的、出乎预料的影响,常常把第一个结果又取消了”。 恩格斯还以美索不达米亚平原变成沙漠为例论证了自己的观点。

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

发表评论

热门推荐