如何定时扫描数据库

zlljx 2003-01-29 04:11:38
我想定时扫描一个oralce数据库,当它新增或修改一条纪录时,另外的一个sqlserver
数据库可以及时读取这些记录信息
...全文
263 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luckysxn 2003-01-30
  • 打赏
  • 举报
回复
使用数据库复制技术

到论坛中搜一下吧
wanghai 2003-01-30
  • 打赏
  • 举报
回复
定时扫描一个oralce这种想法太可怕了,可以用触发器代替
请参考.

--建立ORACLE到SQL SERVER的分布式--
1、安装 Microsoft Data Access Components (MDAC)SDK ODBC driver

2、test whether CATHS has run.connect to the Oracle server
as schema "SYSTEM" and do "DESCRIBE SYS.HS_FDS_CLASS".
If it does not exist, connect as SYS (or internal) and run
the CATHS script. (ORACLE_HOME\RDBMS\ADMIN\CATHS.SQL)

3、建立 SQL SERVER 数据源
TEST_SQLSERVER

4、配置tnsnames.ora. (ORACLE_HOME\NETWORK\ADMIN)
TEST_SQLSERVER =
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=tcp)
(HOST=<IP地址>)
(PORT=1521)
)
(CONNECT_DATA=
(SID=TEST_SQLSERVER)
)
(HS=)
)

5、配置listener.ora. (ORACLE_HOME\NETWORK\ADMIN)
(SID_DESC=
(SID_NAME=TEST_SQLSERVER)
(ORACLE_HOME=D:\Oracle\iSuites)
(PROGRAM=hsodbc)
)

6、重启ORACLE监听.
CMD
LSNRCTL STOP
LSNRCTL START
LSNRCTL STATUS

7、添加网关配置文件. (ORACLE_HOME\HS\ADMIN)
文件名为:initTEST_SQLSERVER.ora
文件内容:
#
# HS init parameters
#
HS_FDS_CONNECT_INFO = TEST_SQLSERVER
HS_FDS_TRACE_LEVEL = 0
#HS_FDS_TRACE_FILE_NAME = TEST_SQLSERVER.trc

#
# Environment variables required for the non-Oracle system
#
#set <envvar>=<value>

8、进入ORACLE SQL*PLUS,建立数据库链.
CREATE DATABASE LINK TOSQL USING 'TEST_SQLSERVER';
创建好数据库链,就可以通过触发器来实现了
maohaisheng 2003-01-29
  • 打赏
  • 举报
回复

使用触发器,可以记录修改过的纪录。

不同数据库之间的连接可以看看“汪海”先生的:

文章--"欢迎大家来讨论异种数据库的同步更新问题",http://expert.csdn.net/Expert/topic/1392/1392872.xml?temp=.9465448



benxie 2003-01-29
  • 打赏
  • 举报
回复
我只知道对于表可以用触发器,其它不太清楚,
学习中.
zsq822 2003-01-29
  • 打赏
  • 举报
回复
用快照

17,381

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧