Oracle Dblink

数据库之间连接

首先建立DBLink

create database link link名称
connect to 对方数据库用户名 identified by 对方数据库用户密码
using '对方数据库ip:端口/实例名';

例子:

create (public) database link tam_link  --如果是可以让任何用户使用设置成public,否则不设置
connect to uid_tam identified by ****   --这里的***是用户密码,如果是数字开头,需要使用“”
using 'tjdb';                           --这里是实例名,如果ora文件未提前设置,则需要写数据库IP及端口和实例,
                         格式:'IP:port/ssid'

图形化建dblink

图形化建Dblink

 

 

 

对连接的数据库数据表进行操作(增、删、改、查) ,只需要:数据表+@+dblink名字,如调用DBLink测试是否连接成功:

select * from dual@tam_LINK

 

 

定时同步两个库数据

第一步,数据存储过程

CREATE OR REPLACE PROCEDURE test_job_tam 
 AS
  tam_id NUMBER;    
BEGIN   
  SELECT nvl(MAX(id), 0) INTO tam_id FROM table1@tam_link;   
  INSERT INTO table1@tam_link
    SELECT *       
      FROM table1
     WHERE table1.id > tam_id ;
  COMMIT;    
EXCEPTION    
  WHEN OTHERS      
   THEN      
    dbms_output.put_line('Exception happened,data was rollback');      
    ROLLBACK;      
END;

 

第二步:建立JOB任务,定时同步数据

var job_num number;
begin
dbms_job.submit(:job_num,'test_job_tam;',SYSDATE,'sysdate+1/24/60');
end;

查询你的job语句:SELECT * FROM USER_JOBS;

 

对于上面的链接字符串,还可以创建同义词代替,会稍微省点事

-- 创建同义词
create synonym TESTSYNONYM FOR dual@tam_link;

 

posted @ 2020-03-31 14:10  一了然  阅读(408)  评论(0)    收藏  举报