sqlserver与oracle的数据同步问题

wcfboy1 2010-10-22 09:56:18
本系统要从另一系统实时获取客订单的信息
另一系统是ORACLE数据库,本系统是SQLSERVER数据库
怎么才能实时获取?
...全文
130 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
唐诗三百首 2010-12-19
SQL 2008建复制(Replication)的发行集后,新增订阅时,
可以选择"非SQL Server订阅者",其中就有Oracle的选项.
回复
dali88888 2010-12-17
这个试试中间件吧,或者自己写代码
回复
wcfboy1 2010-12-17
表结构一样,就是每天访问一次ORACLE,发现有新增加的数据就将新增的数据添加到SQLSERVER的表里
回复
叶子 2010-10-23
sqlserver 和 oracle 的直接数据库之间的同步?
表结构都一样吗?有些字段类型都不一样,直接同步怎么弄?
需要自己写程序处理吧。
回复
zsh0809 2010-10-23
[Quote=引用 3 楼 wcfboy1 的回复:]

网上查了,SQLSERVER复制,发布和订阅可以实现,可我测试了,不成功!!
[/Quote]
没有实战经验,绑定
回复
wcfboy1 2010-10-23
网上查了,SQLSERVER复制,发布和订阅可以实现,可我测试了,不成功!!
回复
ws_hgo 2010-10-22
[Quote=引用 1 楼 dawugui 的回复:]

引用楼主 wcfboy1 的回复:
本系统要从另一系统实时获取客订单的信息
另一系统是ORACLE数据库,本系统是SQLSERVER数据库
怎么才能实时获取?

理论上说ORACLE和SQLSERVER可以同步,但我没有做成功过,帮顶.

如果只是查询数据可以参考如下:
SQL code
SQL和ORACLE之间的数据查询

配置透明网关的步骤


前一段花了些时间配置 TRA……
[/Quote]

UP
回复
dawugui 2010-10-22
[Quote=引用楼主 wcfboy1 的回复:]
本系统要从另一系统实时获取客订单的信息
另一系统是ORACLE数据库,本系统是SQLSERVER数据库
怎么才能实时获取?
[/Quote]
理论上说ORACLE和SQLSERVER可以同步,但我没有做成功过,帮顶.

如果只是查询数据可以参考如下:
SQL和ORACLE之间的数据查询

配置透明网关的步骤


前一段花了些时间配置 TRANSPARENT GATEWAY
现在把心得贴出来与大家共享

我的OS是WIN2000
ORACLE 9.0
SQLSERVER2000
HOSTNAME : SVR1
都使用 tcp/ip 默认端口


1: 安装 TRANSPARENT GATEWAY 选件(我安装的是FOR MSSQL)
安装完成了以后有这样一个目录 oracle_home\ora90\tg4msql

2: 配置 LISTENER.ORA
(SID_DESC =
(GLOBAL_DBNAME = tg4sql) # 可自己命名
(PROGRAM = tg4msql)
(SID_NAME = sql2000) # SID 自己命名
(ORACLE_HOME = D:\oracle\ora90)
)

3: 在 oracle_home\ora90\tg4msql\admin
建文件 init<SID>.ora 由于LISTENER里定义SID为 sql2000
因此文件名为:initsql2000.ora
其中内容为:
HS_FDS_CONNECT_INFO=svr1.master # svr1为SQL服务器名
HS_FDS_TRACE_LEVEL=OFF
HS_FDS_RECOVERY_ACCOUNT=RECOVER
HS_FDS_RECOVERY_PWD=RECOVER

4: 重启 DATABASE AND LISTENER

5: 配置 tnsnames.ora
tg_sql =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = SVR1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = sql2000)
)
(HS=OK)
)

6: 建立 DATABASE LINK
CREATE PUBLIC DATABASE LINK DB_SQL
CONNECT TO SA IDENTIFIED BY PASSWORD
USING 'tg_sql'

7: 完成,测试
select * from t_test@db_sql

8: 请注意使用 DBLINK 时,INIT.ORA中 GLOBAL_NAME 的设置,
如果为 ture , 请使用DBLINK的全称,可在 all_db_links 中查到,
如果为 FALSE, 不必使用全称,当出现
“ORA-02019:为找到远程数据库的连接说明”
时,请使用全称,如:
select * from t_test@db_sql.US.ORACLE.COM
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-22 09:56
社区公告
暂无公告