一个是Oracle(9i)数据库,另一个是SQL Server(2000)数据库,
两个数据库的表结构不相同,需要同步其中的部分数据,并且是将Oracle的部分数据同步到SQL Server数据库中。设想了以下几种方法:
1.进行数据库快照,实现同步;
2.写应用程式读取Oracle日志,然后解析日志,再重新组装SQL语句,操作SQL Server数据库;
3.比对需要同步的数据,再进行更新等操作。但是遇到以下问题:
方法1.只试过从SQL Server同步到Oracle,没做过从Oracle同步到SQL Server。??
方法2.不知道怎样用Java解析Oracle日志??
方法3.好像不太现实。各位有什么好的办法来实现吗?请尽量写得详细些,或者能引用其它可用的贴子。谢谢!~~

解决方案 »

  1.   

    你的同步是需要实时同步还是按天同步还是按月同步。其实这种情况,与SQL Server同步到Oracle是一样的。使用SSIS建一个工程,编辑一个数据导入的包,然后加入SQL SERVER代理做调度就可以了。不过这种方式无法实现实时更新。
      

  2.   

    建议你看SQL SERVER目录下帮助文档里面的教程部分,有SSIS的详细介绍与使用指南,你按教程做一遍之后,即可明白SSIS的操作和处理。
    当你做好一个工程之后,只需要在SQL SERVER中新建一个代理作业,然后指向你做好的SSIS包,再配置调度计划(如每天3点执行)就可以了。
      

  3.   

    请问是要使用DTS数据转换服务吗?SSIS没有用过,有资料吗?
      

  4.   

    SSIS似乎只有在2005及以上版本才有。lz用的是2000,估计DTS也可用。
      

  5.   

    查看DTS的资料,好像只能同步相同表结构的数据。
    我需要从数据库A(Oracle 9i)中取出两张表的部分字段数据同步到数据库B(SQL Server 2000)中的一张表中间,
    如数据库A中有User表和User_ext表,User表和User_ext表有主外键关系进行关联,且为一对一关系。现在需要取出User表中的id(主键),name,gender与User_ext表中的addr,email,tel。一共六个字段的数据,同步到数据库B中的一张名为User的表,这张表含有id(主键),name,gender,addr,email,tel几个字段。有办法吗?
      

  6.   

    以下几种方式都可以:
    1、使用SQL SERVER自带的同步程序
    2、使用ORACLE自带的同步程序
    3、使用SQL MOBLINK
    4、ORACLE直接写SQL SERVER数据同步(SQL SERVER可通过ODBC与ORACLE直接连接)
    5、自己开发一个同步程序(我现在就用的这种方式,可靠性最好)
      

  7.   

    楼主遇到的情况与SQL Server同步到Oracle是一样的。使用SSIS建一个工程,编辑一个数据导入的包,然后加入SQL SERVER代理做调度就可以了