生产同城相距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 个回答lisongqing的回答

lisongqinglisongqing  软件架构设计师 , IPS

完全赞同您说的“ 光速有限,造成:同步复制 + 远程 = 慢动作 ”说法。

人民银行这个三级等保的系统要求,同城数据备份中心至少30公里, 异地数据备份中心与主生产至少100公里,也许正式是考虑到这方面因素。让大家可以有这样的可行方案选择:
同城几十公里距离内,建真正双活数据中心。其中查询业务可以利用数据库双活方案中优先读本地存储的亲和性策略,从哪侧发起的SQL查询就从哪一侧存储上查询数据;但增/删/改因为是同步写双中心,必然后链路距离影响,但从今年已实施案例来看,30-70公里距离的居多,写延迟带来的交易延迟也一般也在可接受范围内;
异地(>100公里)建议异步备份容灾中心,利用数据库日志异步复制的方式,或者底层存储同步方式,复制到远端。为降低对主生产中心的冲击,可以考虑从同城备中心异步复制到异地中心。

IT咨询服务 · 2020-08-06
浏览1896

回答者

lisongqing
软件架构设计师IPS
擅长领域: 服务器数据库云计算

lisongqing 最近回答过的问题

回答状态

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