我想你基本上不知道MyLOG是什么样的东西, 不过下面的一些网上常见到的话题你可能会懂一些. 如何实时同步两边的数据? 如何将数据实时地同步到远程的数据库? 如何做远程冗灾? 比较低级的解决的方案有实体化视图, 或自已写程序来实现自动导出导入, 如果两边的网络很好, 还可以用触发器来实现. 中级一些的方案有Oracle的Stream和Replication, 说他们中级是因为他们还不够成熟. 高级一些的方案是用目前市面上的专用软件, 如很有名气的Quest Shareplex, 不是很有名气的DSG Realsync(缺少宣传)和基本上没有听说过的GoldenGate. 这些高级的专业软件在911事件后, 被国际上的大公司大量采用, 用于制作数据冗灾. 不过11g传闻中的一些功能很值得关注.
这些中高级的解决方案中, 都有一个共同的技术特点, 就是分析源数据库上产生的日志, 然后从日志中分解生成SQL语句, 最后在目标数据库端执行. 因为是从日志中去获得数据, 所以基本上对源数据库没有什么压力, 并且目标数据库不是源数据库的物理拷贝, 是在打开的情况下运行的, 因此还可以用来分担部份读操作. 当源数据库不可用时, 可以迅速将目标数据库转换为新的源数据库.
可以看到分析日志的Log Miner是一个关键, 两年之前我开始研究Oracle日志的格式, 不过由于工作和个人精力的问题, 直到两个月之前才做出了一个相当成型的Log Miner, 这就是MyLOG, 可以脱离Oracle的环境来分析Oracle的日志文件, 解出重做的SQL语句, 并且可以跨平台进行分析, 指在Windows下的MyLOG可以用来分析Solaris上的Oracle生成的日志文件. Oracle自带的Log Miner当然是最权威的, 不过不一定是最好的, 你看他的Stream和Replication就知道了.
单单一个离线Log Miner是没有用的, 只有进一步发展, 形成一个较便宜较可靠的类Shareplex或Realsync的产品, 才能将研究的成果造福于广大的DBA及企业. 不过国内的研究氛围并不好, 为了在自然界生存, 我已经没有精力继续往下研究和开发了. 所以正在思考做一个开源项目, 让别人去研究, 如果没有国内的人去参加,估计要造福我们还是很难的.
开源还是不开源呢? 是个想不清楚的问题!
留言 (12)
真的吗?
那太好了
学习了你的ociuldr的source code
很有帮助啊
如果mylog也能开源,那就更好了,自己刚开始学,太吃力了。
总之 我有的私心的想法是希望能共享:)
Posted by fororacle | Jul 11, 2007 12:31 PM
还是开源吧
能好玩一点儿
Posted by Fenng | Jul 11, 2007 12:34 PM
如果你不是想靠它发财,那就开源吧。
如果你指望它发财,那就不要开源。呵呵。
支持开源。
Posted by logzgh | Jul 12, 2007 5:12 PM
oracle 11g 已经出来了,除非作者能短时间产品话,否则支持开源。让有兴趣的人都能学习下。
Posted by luna | Jul 16, 2007 12:46 PM
很有兴趣哦
Posted by netpinaster | Jul 18, 2007 9:42 PM
不知道老大想的怎么样了,呵呵。
支持开源
Posted by terror | Jul 20, 2007 1:50 AM
是个很不错的想法,如果开源, 我第一个加入。
Posted by tom | Jul 20, 2007 5:12 PM
支持开源!
挺想多接触这方面的技术,用了你的几个工具,感觉非常爽。那个崇拜啊!
:)
Posted by robinyyh | Jul 23, 2007 12:17 PM
小伙子不错, 要能加入我们公司就更好了.
Posted by 过客 | Jul 28, 2007 8:08 PM
当然也有可能加入你们公司了, 只要达到平衡.
Posted by anysql | Jul 28, 2007 9:27 PM
支持牛人开源
Posted by bill | Aug 1, 2007 5:49 PM
哪儿有ociuldr的source code,偶也想学习下。
Posted by Justin | Aug 30, 2007 10:47 AM