读写一体双活,拿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等方案,目的是各部分松耦合,简洁,可用性和性能易于管理。
远程不同于本地,本地集群部署的成功案例比比皆是,但是远程并行集群通过集群信息连续同步复制,将遥远的东西紧耦合,复杂,可用性和性能难于管理,可靠性低于本地并行集群
光速有限,造成:同步复制 + 远程 = 慢动作,所以能否实现远程“读写一体双活”呢?
收起