0、在本地服务器的 tnsnames.ora 中配置远程数据库的 service_name,确保 tnsping 能通
1、在本地数据库中建立到远程数据库的 DBLINK
CREATE [PUBLIC] DATABASE LINK <link_name>
CONNECT TO <user_name>
IDENTIFIED BY <password>
USING '<service_name>'; 2、定时执行一个 JOB,从远程数据中获取更新数据,同步到本地
select * from A.NAME@远程,A.INFO@远程 where NAME.XING='程' AND NAME.ID=INFO.ID3、如果JOB出错,会写入 alert_sid.log 中,定期查看一下即可如果设计合理的话,不用理会错误,只要下次同步成功就可以了。
1、在本地数据库中建立到远程数据库的 DBLINK
CREATE [PUBLIC] DATABASE LINK <link_name>
CONNECT TO <user_name>
IDENTIFIED BY <password>
USING '<service_name>'; 2、定时执行一个 JOB,从远程数据中获取更新数据,同步到本地
select * from A.NAME@远程,A.INFO@远程 where NAME.XING='程' AND NAME.ID=INFO.ID3、如果JOB出错,会写入 alert_sid.log 中,定期查看一下即可如果设计合理的话,不用理会错误,只要下次同步成功就可以了。
解决方案 »
- XP环境下VC6MFC程序访问WIn7中的Oracle11gR2数据库程序出现unkown error 0x800a0e7a 错误
- 请问关于数据自动填入数据库的问题
- 如何查询出符合ip地址规格的数据?
- 神奇的问题。SQL 错误: ORA-00911: 无效字符 00911. 00000 - "invalid character"
- 一条简单Sql排序语句
- 要怎样才能把所有数据查询出来(不符合条件的也需要)
- 各位专家有个简单问题请教?
- 为什么字符串超过700个汉字,插入oracle就会报错?
- 在select 中group by语句如何写?
- oracle execute immediate('select 1/0 from dual') 的问题
- 读操作不会阻塞写操作
- ?进PLSQL时出现错误 很急的 大家快来看看
不过可以考虑用oracle的物化视图,比自己写job要方便,出错也小。
其實用快照就可以了,樓主可以按以下步聚使用快照:
一、在遠程機上在要對其同步的表上建立快照日志(如果不建快照日志,則無法使用快速刷新);
二、在本地服務器上建一個到遠種機的DBLINK(假設名稱為MY_DBL);
三、在本地機上創建快照表:
--先建本地快照表NAME
CREATE SNAPSHOT NAME AS
SELECT t1.* from 方案名.NAME@远程 t1,方案名.INFO@远程 t2 where t1.XING='程' AND t1.ID=t2.ID;
--再建本地快照表INFO
SELECT t2.* from 方案名.NAME@MY_DBL t1,方案名.INFO@MY_DBL t2 where t1.XING='程' AND t1.ID=t2.ID;
--再設置同步方案
--1.完整刷新方案
Alter snapshot NAME refresh complete
Start with sysdate+1/1440--表示快照建立一分鐘後開始完整刷新(同步)一次
next sysdate+1; --表示以後每隔一天就完整刷新(同步)一次
Alter snapshot INFO refresh complete
Start with sysdate+1/1440
next sysdate+1; --2.定時快速刷新方案
Alter Snapshot NAME refresh FAST
Start with sysdate+1/720--這裡表示快照建立兩分鐘後開始快速刷新一次
next sysdate+1/144; --這表示以後每十分鐘刷新(同步)一次 Alter Snapshot INFO refresh FAST
Start with sysdate+1/720
next sysdate+1/144;
經過我上述說的步聚後,樓主的數據就可以和遠程數據庫同步了,不過要注意,如果樓主的本地數據庫已有了Name和Info表的話,建議把它們改名,再創建快照表,或者把我上面建的快照表改名,再使用job定時從本地快照表中往你的Name和Info表中導入數據。