生产同城相距30公里,数据库层,能否实现双中心同时读写一体化?

读写一体双活,拿oracle来做解释,是oracle中大家比较熟悉的oracle extend RAC。这种方案很多存储厂商曾经推广过,oracle厂商最近很少推荐。这种方案也被很多用户认为是一种理想化的双活解决方案。很多人认为这才是真正意义上的“双活”。人民银行发布“金融行业信息系统信...显示全部

读写一体双活,拿oracle来做解释,是oracle中大家比较熟悉的oracle extend RAC。这种方案很多存储厂商曾经推广过,oracle厂商最近很少推荐。这种方案也被很多用户认为是一种理想化的双活解决方案。很多人认为这才是真正意义上的“双活”。

人民银行发布“金融行业信息系统信息安全等级保护实施指引”中对于三级等保的系统提出了:
对于同城数据备份中心,应与生产中心直线距离至少达到30公里,可以接管所有核心业务的运行;对于异地数据备份中心,应与生产中心直线距离至少达到100公里;
RTT:光被目的端 “镜子”反射回源端的延时。
相对论定律:宇宙最高速度——真空光速恒定30万公里。
光纤折射率1.5,光纤光速 = 300,000 / 1.5 = 200,000公里/秒。
30公里光纤RTT = 2 * 30 / 200,000 = 0.3ms,此延时受物理定律限制,不可缩短,和钱无关,和技术进步无关。
我们通过oracle 数据库环境下的测试可以发现,oracle数据库中,链路每增加0.5ms的延迟,查询会增加4倍差距。
拿oracle 远距离集群举例:
oracle集群远程双活部署会引起“块争抢”的问题:
一个块含很多记录,即便两节点(服务器)同时访问不同记录,也可能出现访问同一个块的“块争抢”,引起锁、等待、块属主变更、更新本地缓存等操作。
节点和存储分布在远程时,网络延时1ms数量级,争抢解决慢,影响性能非常大。(若节点和存储都在本地,网络延时0.01ms数量级,争抢影响性能小)
通常通过“分割”解决“块争抢”,例如: 常用分割方法是按应用或表分割。 每个站点只访问自己的数据,减少块争抢。但是这并不能完全避免争抢问题
通常为提高可用性oracle厂商推荐“读写分离双活”的方案,把所有数据在每个站点本地存放一份,更新本地数据,并在另一站点复制出副本。这样,一站点故障,另一站点都能迅速负担全部负载。副本数据可以用于且仅用于读取。例如ADG,OGG等方案,目的是各部分松耦合,简洁,可用性和性能易于管理。

远程不同于本地,本地集群部署的成功案例比比皆是,但是远程并行集群通过集群信息连续同步复制,将遥远的东西紧耦合,复杂,可用性和性能难于管理,可靠性低于本地并行集群

光速有限,造成:同步复制 + 远程 = 慢动作,所以能否实现远程“读写一体双活”呢?

收起
参与12

查看其它 3 个回答yangyu-MAXI的回答

yangyu-MAXIyangyu-MAXI系统架构师IPS-浪潮商用机器

您说的非常对,光速有限。
完全的读写双活一体,是应用双活+数据库双活+数据存储双活,目前影响这种架构实现的比较大的困难就是数据库双活和数据存储双活。
距离过远,即使线路稳定,也会有较大的延时,就会对数据库的双活造成影响,也会对读写一体双活造成影响。

硬件生产 · 2020-08-06
浏览1820

回答者

yangyu-MAXI
系统架构师IPS-浪潮商用机器
擅长领域: 服务器虚拟化灾备

yangyu-MAXI 最近回答过的问题

回答状态

  • 发布时间:2020-08-06
  • 关注会员:5 人
  • 回答浏览:1820
  • X社区推广