首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 如何实现异地sql server和oracle两个数据库数据实时同步? [已结贴,结贴人:flyhorse1980]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flyhorse1980
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 揭帖率:
    发表于:2008-08-08 15:27:39 楼主
    两个数据库服务器,分别在两地,一台sql server2k,一台oracle 9i。
    如何实现他们数据的同步,有无现成工具?如果要开发,应该如何做,请做过的介绍一下。
    能达到实时同步吗?若不能,最快可达到什么数量级?
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:32:121楼 得分:5
    关注,学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:32:262楼 得分:0
    居然是sf
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • HEROWANG
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:35:143楼 得分:5
    翻了翻以前的帖子,看看这个帖子有用没有?

    http://topic.csdn.net/t/20060913/16/5019542.html
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • MSTOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-08 15:36:224楼 得分:5
    实时基本是不太可能,也不可靠。
    自已写工具,可以达到十分钟的左右。
    可以联系我。  :)
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wufeng4552
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:39:195楼 得分:5
    幫你頂~~~~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Liyingyue_FFS
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:44:166楼 得分:50
    1. SQLSERVER服务器上面安装oracle客户端,配置服务命名(假设为 test)
    2. 在SQLSERVER服务器上面建立链接服务器,脚本如下

    SQL code
    SQL code-- Adding linked server: exec sp_addlinkedserver @server = 'test' , @srvproduct = 'ORACLE', @provider = 'MSDAORA', @datasrc = 'test' -- Adding linked server login: exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test', @rmtuser = 'user', --数据库用户 @rmtpassword = 'password' --密码



    3. 建立一个作业,通过作业调度存储过程,存储过程使用类似的语句将oracle的数据插入到sqlserver表中

    SQL code
    insert into sqlserver表 select * from test..oracle表名



    4. 如果要球ORACLE数据是实时增加的,并且ORACLE记录上有递增的字段,可以在SQLSERVER上面建立一个表记录上次插入的id,然后下次可以从上次的ID+1开始继续插入
    SQL code
    insert into sqlserver表 select * from test..oracle表名 where id>@id


    5. 防止sqlserver同步的时候oracle仍在不断的插入,每次要取一个结束ID
    SQL code
    select @endid=max(id) from test..oracle表名


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flyhorse1980
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:45:157楼 得分:0
    to MSTOP,10分钟也行
    两个数据库所在的系统分别是linux和windows,你的方法能保证数据不丢失吗?
    你有现成的代码,还是需要开发,如果开发,需要多长时间,我项目用到这个,我需要评估进度。
    你的方法能跨Internet实现同步吗?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Liyingyue_FFS
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:46:058楼 得分:10
    根据oracle的数据增量大小来修改作业调度频率,基本上5分钟可以搞定。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flyhorse1980
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 15:51:039楼 得分:0
    to Liyingyue_FFS
    非常感谢你的方法,很受启发。
    我有如下问题:
    1) 你的方法可以跨Internet吗?如果两个数据库通过Internet连接,而不是局域网。
    2)这种方法你有没有测试过,稳定性如何?数据会不会丢失?
    3)买一套oracle,是不是就包含服务器端和客户端?我计划买一套不限制用户数的oracle(每处理器license)。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • Liyingyue_FFS
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-08 16:15:4510楼 得分:0
    引用 9 楼 flyhorse1980 的回复:
    to Liyingyue_FFS
    非常感谢你的方法,很受启发。
    我有如下问题:
    1) 你的方法可以跨Internet吗?如果两个数据库通过Internet连接,而不是局域网。
    2)这种方法你有没有测试过,稳定性如何?数据会不会丢失?
    3)买一套oracle,是不是就包含服务器端和客户端?我计划买一套不限制用户数的oracle(每处理器license)。


    1)这个不清楚哦,如果你能在Internet连接的条件下完成我说的第一步并配置服务命测试成功的话应该是没有问题的
    2)这种方法是目前我们采用的商用解决方案,稳定性没有问题,数据不会丢失。
    3)包含
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • MSTOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-08 20:14:4711楼 得分:20
    引用 7 楼 flyhorse1980 的回复:
    to MSTOP,10分钟也行
    两个数据库所在的系统分别是linux和windows,你的方法能保证数据不丢失吗?
    你有现成的代码,还是需要开发,如果开发,需要多长时间,我项目用到这个,我需要评估进度。
    你的方法能跨Internet实现同步吗?

    开发肯定是在 Internet 间同步。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • MSTOP
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    • 2

    发表于:2008-08-08 20:16:0912楼 得分:0
    你的方法能保证数据不丢失吗?
    ===============================================
    这个如果保证不了,整个都失去意义了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flyhorse1980
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-08-28 16:11:4413楼 得分:0
    奥运期间不能上,耽误了回复

    to MSTOP
    项目暂时不用这个了。不过我觉得有必要学习一下。
    你能把你的方法公开出来,大家一块学习一下?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • flyhorse1980
    • 等级:
    • 可用分等级:
    • 总技术专家分:
    • 总技术专家分排名:
    发表于:2008-09-02 10:10:0714楼 得分:0
    虽没得到理想的方法,谢谢各位的参与,结贴
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved