HDS Truecopy实现原理及项目的选择-诸多案例
copy from:http://www.eygle.com/archives/2009/05/hds_truecopy_dataguard.html
诸多案例:http://wenku.baidu.com/view/d9815f07e87101f69e3195c0.html
这几天因为一个项目的需要,粗略研究了一下HDS Truecopy同步机制的实现。
TrueCopy是HDS基于硬件的同步解决方案,其实现与IBM公司的PPRC和EMC公司的SRDF类似,基于存储的同步复制没什么好说的,大家的实现都是几乎相同的,不过同步复制对于带宽、网络的要求都很高,在实践中的风险过高,所以采用有限,HDS的相应解决方案有三数据中心的中转解决机制,类似Oracle DataGuard的Cascade Redo传输机制,通过中转消除网络不稳定性可能带来的影响。
至于异步同步机制,如何保证数据的写顺序,如何保证数据库复制后能够被一致的打开成了一个问题。
下面一段文字说明了TrueCopy的实现原理,也就是通过时间戳和标志位来保证写顺序:
TrueCopy异步使用可靠的时间戳以及主系统生成的其他信息来使Freedom Storage能够把更新信息直接传送到次级系统(不需要主机的任何干预)。然后,次级系统在其缓冲区内缓冲、排队和按照时间戳对这些写内容排序,再以相同的序列将其写到相应的卷上。这些重写内容是由主系统通过记录内嵌的远程链路检查序列号发布的,以保证没有丢失任何记录,这样就保持了I/O的一致性。
下图是实现的原理图:
按照这个原理结构,如果存储级别能够很好的解决写序列的问题,复制环境的数据库是能够保证其一致性,顺利在灾难时完成打开恢复的。
在网上看到,湖南省公民身份认证查询系统(汇集湖南省6500万人口信息,并向社会提供身份认证、查询、挂失服务),是此系统的HDS 9200 True Copy数据同步方案为亚洲第一个成功的HDS 9200 TrueCopy数据同步方案,该项目是2002年左右实施的。
下图是该系统的架构图:
按照我们现在的审视,如果只着眼于数据库层面的同步,那么在短距离有光纤链路情况下,还是有多种低成本的方案可选的。
不知道有哪些朋友有用过TrueCopy同步的经验?
HDS Truecopy实现原理及项目的选择-诸多案例的更多相关文章
- pycharm新建项目时选择virtualenv的说明
虚拟环境及venv和virtualenv介绍:https://www.cnblogs.com/mind18/p/13877170.html pip介绍:https://www.cnblogs.com/ ...
- 阿基米德项目ALS矩阵分解算法应用案例
转自:https://github.com/ceys/jdml/wiki/ALS 阿基米德项目ALS矩阵分解算法应用案例 编写人:ceys/youyis 最后更新时间:2014.5.12 一.算法描述 ...
- 小账本APP——软件项目风险管理及解决办法案例
小账本APP——软件项目风险管理及解决办法案例 摘要 软件项目风险是指在软件开发过程中遇到的预算和进度等方面的问题以及这些问题对软件项目的影响.软件项目风险会影响项目计划的实现,如果项目风险变成现实, ...
- (转).Net有哪些大型项目、大型网站的案例?
[分享].Net有哪些大型项目.大型网站的案例? .Net开发的部分知名网站案例:http://www.godaddy.com 全球最大域名注册商http://www.ips.com 环迅支付 ...
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- 广告行业中那些趣事系列6:BERT线上化ALBERT优化原理及项目实践(附github)
摘要:BERT因为效果好和适用范围广两大优点,所以在NLP领域具有里程碑意义.实际项目中主要使用BERT来做文本分类任务,其实就是给文本打标签.因为原生态BERT预训练模型动辄几百兆甚至上千兆的大小, ...
- LCN解决分布式事务原理解析+项目实战(原创精华版)
写在前面: 原创不易,如果觉得不错推荐一下,谢谢! 由于工作需要,公司的微服务项目需解决分布式事务的问题,且由我进行分布式事务框架搭建和整合工作. 那么借此机会好好的将解决分布式事务的内容进行整理一下 ...
- Web自动化必会知识:「Web基础、元素定位、元素操作、Selenium运行原理、项目实战+框架」
1.web 基础-html.dom 对象.js 基本语法 Dom 对象里面涉及元素定位以及对元素的修改.因为对元素操作当中涉及的一些 js 操作,js 基本语法要会用.得要掌握前端的基本用法.为什么要 ...
- 对于大型公司项目平台选择j2ee的几层认识
我是一个从野路子上一路走来的程序员,现在主要用.net做方案.选.net不选jave并没有什么特别的原因,只不过是因为我自己从c,java学起,后来被vs这个工具所吸引, 很熟悉这个平台罢了,从业15 ...
随机推荐
- android iOS 编码问题害死人!
android 与后端服务器进行通信时,默认使用的编码格式是asi. 而iOS与后端通信时,获取的数据到iOS端默认被utf-8进行编码.所以,我们常常出现android能够从服务器端获取到数据,但是 ...
- Swift - 添加纯净的Alamofire
Swift - 添加纯净的Alamofire 如果你有代码洁癖,不能容忍任何多余的东西,请继续往下看. . 下载Alamofire (https://github.com/Alamofire/Ala ...
- 用UICollectionView实现无限轮播图
用UICollectionView实现无限轮播图 效果 源码 https://github.com/YouXianMing/Animations 细节
- mysql慢查询监控及sql优化
在my.ini添加如下代码,即可查看那个sql语句执行慢了 log-slow-queries = d:/log/mysql-slow.log long_query_time = 1 打开日志 log ...
- Android之代码创建布局
大概描述一下效果:最外层是一个 RelativeLayout 里面有自定义个LinearLayout,每个LinearLayout有两个TextView.that's it !!! private v ...
- [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
讲一讲CSS的position/float/display都有哪些取值,它们相互叠加时的行为都是什么? 列出display的值,说明他们的作用.position的值, relative和absolu ...
- C++11 std::unique_lock与std::lock_guard区别及多线程应用实例
C++多线程编程中通常会对共享的数据进行写保护,以防止多线程在对共享数据成员进行读写时造成资源争抢导致程序出现未定义的行为.通常的做法是在修改共享数据成员的时候进行加锁--mutex.在使用锁的时候通 ...
- Javassist 字节码 语法 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- C# 简单日志文本输出
第一种 直接文件IO流写日志文件 using System.IO; public static void WriteLog(string strLog) { string sFilePath=&qu ...
- SQL Server 损坏修复 之一 常见错误解读
SQL Server 对数据库损坏的错误类型做了细化,在此对几个典型的错误作一下介绍. 错误信息是:“在文件 '%ls'中.偏移量为 %#016I64x 的位置执行 %S_MSG 期间,操作系统已经向 ...