当前位置:操作系统 > Unix/Linux >>

数据库远程同步数据

数据库远程同步数据
 
需求:源数据库用户表中用户密码和用户名更改时需要将远程数据库中的用户名和密码更新;
   www.zzzyk.com  
  做法:
 
1、创建数据库连接:两种办法:
  
   1)、在源数据安装文件tnsnames.ora中添加目的数据库信息如下图所示:
  
   ORCLmdsjk =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 193.193.193.209)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)//目的数据库的服务名;可通过 sqlplus>show parameter service_name 查看
    )
  )
 
    在源数据库总创建数据库链接:  www.zzzyk.com  
     create database link linkname connect to username identified by  userpassword  using 'ORCLmdsjk '; 
 
  2:)、create database link linkname
            connect to username
           identified by password
           using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=193.193.193.209)   (PORT=2521)))(CONNECT_DATA=(SERVICE_NAME=orcl)))';
 
2、在源数据库中建立触发器:  www.zzzyk.com  
 
     create or replace trigger xyzsk_user_sys_trigger
 
after insert or update or delete on sec_user
 
for each row
 
declare
  -- local variables here
  flag number;
  
  --如果与209服务器断开连接则不进行数据同步
  network_remaining EXCEPTION;
  PRAGMA EXCEPTION_INIT(network_remaining, -12560);
begin
 
if inserting then
   insert into xt_users@xyzskxtorcl(id,username,fullname,password,enabled)
   values(:new.ID_,:new.NUMBER_,:new.NAME_,:new.PASSWORD_,:new.enable_);
end if;
 
if updating then
   select count(*) into flag from xt_users@xyzskxtorcl where  username = :old.NUMBER_;
   if(flag is null or flag = 0)then
      insert into xt_users@xyzskxtorcl(id,username,fullname,password,enabled)
      values(:new.ID_,:new.NUMBER_,:new.NAME_,:new.PASSWORD_,:new.enable_);
   else
      update xt_users@xyzskxtorcl set username = :new.NUMBER_,fullname=:new.NAME_,password = :new.PASSWORD_ 
      where username = :old.NUMBER_;
   end if;
  
end if;
 
if deleting then
   delete from xt_users@xyzskxtorcl where username = :old.NUMBER_;
end if;
 
exception
   when network_remaining then null;
   
end xyzsk_user_sys_trigger;
 
如此即可。
 
注意:修改数据库文件tnsnames.ora 不需要重新启动数据库即可。
 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,