数据库读写分离
原创转自:http://blog.csdn.net/fyxxq/article/details/8540423
Mysql
主要思想:
第 1 步:先做mysql的主从(Master/Slave Replication),实现数据同步 第 2 部分:收养Amoeba要实现读写分离,也可以通过mysql proxy(相当麻烦)。
总结
1.当MySQL主从复制 show slave status\G 时出现Slave_IO_Running或Slave_SQL_Running 的值不为YES时,需要首先通过 stop slave 停止从属服务器,然后再次执行本文 2.1与2.2 本章中的步骤可以恢复,但如果要同步尽可能多的数据,则可以Slave上将master_log_pos根据以前失败的同步值增加节点的值,然后重复测试,直到发生同步OK。因为MySQL主从复制的原理实际上是从服务器读取 binlog 然后,根据binlog记录以更新数据库。
2.MySQL-Proxy的rw-splitting.lua网上有许多版本的脚本,但最准确和准确的版本仍然包含在源代码包中lib/rw-splitting.lua脚本(如果有)lua如果你有脚本编程的基本基础,可以基于这个脚本进一步优化;
3.MySQL-Proxy事实上,它非常不稳定。在高并发或连接不正确的情况下,进程很容易自动关闭,因此打开--keepalive设置参数自动恢复进程是一个好方法,但它仍然不能从根本上解决问题。因此,最谨慎的方法是在每个从属服务器上安装一个MySQL-Proxy对于自用,虽然效率相对低下,但可以保证稳定性;
4.一个主站和多个从站的架构不是最好的。通常最好通过程序代码和中间件进行规划,例如为表数据设置自动增量id采用诸如增加值差等方法实现两台或多台主服务器,但重要的是保证这些主服务器数据的完整性,否则效果会比多主多从架构更差;
5.MySQL-Cluster 稳定性也不是很好;
6.Amoeba for MySQL 是一款优秀的中间件软件,还可以实现读写分离、负载均衡等功能,其稳定性大大超过。MySQL-Proxy建议大家用它作为替代品MySQL-Proxy,甚至MySQL-Cluster。
oracle
- 主数据库负责写入和读取数据。读者只负责读取数据。每次有库写入操作时同步更新cache每次先阅读cache在读DB。编写一个库,读取多个库,使用dataguard负责主数据库和多个读取数据库之间的数据同步。
对于 其他类型的数据、博客日志表、电子商务订单表和支付公司交易流程表都可以采用单独的数据库和表的形式。
- Writer DB和Reader DB使用日志复制软件实现实时同步; Writer DB负责与交易相关的实时查询和交易处理,Reader DB负责只读访问和处理一些非实时交易细节,报告类型等的摘要查询同时,为了满足高可用性和可扩展性的要求,对读写端进行了适当的扩展,例如Writer DB采用HA或者RAC的架构模式,Reader DB多套,通过负载均衡或业务分离,有效分担库读压力。
基于日志Oracle复制技术,Oracle可以实现自己的组件,也有成熟的商用软件。选择商业独立产品或Oracle其自身组件的功能取决于多种因素。例如,团队相应的技术运维能力、项目投入成本、业务系统的负载水平等。
采用Oracle其自身组件的功能,仅此而已 Logical Standby、Stream 以及11g的Physical Standby(Active Data Guard)相比之下,Stream最灵活,但最不稳定,11g Physical Standby支持并行恢复和只读,但由于它不是日志的逻辑应用机制,因此在发生读写分离的场景下最受限制。如果技术团队对相关技术有足够的掌握,并且选型方案的处理能力能够支持数据同步的要求,则采用Oracle它自己的组件是完全可行的。
dataguard这是一种数据库灾难恢复模式,是指在正常生产环境之外的不同位置运行的数据库设备(具有自己的独立数据库阵列)。如果生产环境中存在数据更改dataguard生产环境变化数据操作的实时同步,保证了生产环境与容灾环境的数据一致性。如果生产环境数据库崩溃,灾难恢复环境将接管。 Data Guard您可以以只读方式打开数据库,但此时Media Recovery使用日志进行数据同步的过程将停止。如果物理备份数据库正在恢复过程中,数据库无法打开查询,这意味着日志应用程序和只读打开两种状态是互斥的。 Oracle 11g 中推出的Active Data Guard该函数通过在以只读方式打开数据库时使用日志恢复数据来解决此矛盾。用户可以对备份数据库进行查询、报表等操作,类似于逻辑Data Guard备份数据库的功能(在查询功能方面),但数据同步效率较高,对硬件的资源要求较低。这可以最大限度地提高物理备份数据库硬件资源的效率。
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除