`
wlh269
  • 浏览: 457928 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle两个数据库间的数据同步 (DBLink 、计划任务)

阅读更多
 
--配置本地数据库服务器的tnsnames.ora文件
infosys_192.168.0.100 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.100)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = infosys)
    )
  )

--创建db_link(这里的infosys和infosys是目标数据库的用户名和密码)
--'infosys_192.168.0.100'是目标数据库的实例
--mydblink是我们创建的dblink名称,可自定义
create database link mydblink
  connect to infosys identified by infosys
  using 'infosys_192.168.0.100';
   
--测试使用链接的数据库(表名@dblink名称)
select * from P_GROUP@mydblink;



/*************************************************************/
/* 上面建立DBLink ,下面我们通过DBlink创建Oracle存储过程和任务     */  
/*************************************************************/



--创建一个存储过程
create procedure proc_sjtb
as
begin

delete from swdx_gzryxx where is_tb='1';
insert into swdx_gzryxx(gzrybh,mc,jgdm,phone,is_tb)select distinct(t.zgswry_dm),t.zgswry_mc,t.nsr_swjg_dm,t.tel_zgy,'1' from dxpt_sjtb@mydblink t;

delete from gdzc_jg where is_tb='1';
insert into gdzc_jg(jg_dm,jg_mc,is_tb)select distinct(t.nsr_swjg_dm),t.nsr_swjg_mc,'1'  from dxpt_sjtb@mydblink t;

delete from swdx_nsrxx where is_tb='1';
insert into swdx_nsrxx(nsrsbh,nsrmc,jgdm,zgydm,is_tb)select t.nsrsbh,t.nsrmc,t.nsr_swjg_dm,t.zgswry_dm,'1' from dxpt_sjtb@mydblink t;

insert into swdx_nsrphone(nsrsbh,lbbh,tel) select t.nsrsbh,'001',t.TEL_NSR_CW from dxpt_sjtb@mydblink t;
insert into swdx_nsrphone(nsrsbh,lbbh,tel) select t.nsrsbh,'002',t.TEL_NSR_FR from dxpt_sjtb@mydblink t;
insert into swdx_nsrphone(nsrsbh,lbbh,tel) select t.nsrsbh,'003',t.TEL_NSR_QT from dxpt_sjtb@mydblink t;

delete from xt_czy where is_tb='1';
insert into xt_czy(czy_id, czy_mc, jg_code, czy_lxdh, is_zgy,is_tb,is_jgczy,CZY_YXBZ) select distinct (t.zgswry_dm), t.zgswry_mc, t.nsr_swjg_dm, t.tel_zgy,'1','1','0','Y'  from dxpt_sjtb@mydblink t;
insert into xt_czy(czy_id, czy_mc, jg_code, is_zgy,is_tb,is_jgczy,CZY_YXBZ) select distinct(t.nsr_swjg_dm),t.nsr_swjg_mc,t.nsr_swjg_dm,'0','1','1','Y'  from dxpt_sjtb@mydblink t;

end;



--创建任务(每分钟执行一次)
DECLARE X NUMBER;
BEGIN
   SYS.DBMS_JOB.SUBMIT
   (
    job   => X 
   ,what   => 'proc_sjtb;'
   ,next_date  => to_date('09-12-2008 00:00:00','dd/mm/yyyy hh24:mi:ss')
   ,interval   => 'TRUNC(sysdate) + 1 +2 / (24)'
   );
END;


--执行任务
--RUN(参数)是我们建立任务的时候自动生成的,指定任务号方可启动任务和删除任务

begin
   SYS.DBMS_JOB.RUN(25);
end;

--删除任务
begin
     sys.DBMS_JOB.REMOVE(23);
end;
















2
1
分享到:
评论
9 楼 justin18 2010-07-01  
已经请朋友解决了,谢谢
8 楼 wlh269 2010-06-30  
在服务器里打开监听进程,关闭防火墙
7 楼 justin18 2010-06-30  
这是我建DB的语句:
create database link test1
connect to QR identified by SUPER
using 'QR1';
TNS里面的内容是:
QR1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.52)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = QR)
    )
  )
我创建的时候能创建成功,但是测试的时候总报错:ORA-12541: TNS:沒有監聽器
请问下这是怎么回事呢?谢谢~
6 楼 wlh269 2010-06-28  
不客气!!
5 楼 justin18 2010-06-25  
好的,謝謝了~
4 楼 wlh269 2010-06-25  
你改成字母试试!修改一下密码?
3 楼 justin18 2010-06-25  
我的密码包含有数字,那样要怎么解决呢?
2 楼 wlh269 2010-06-23  
密码好像不能是数字的!你确认不是数字吗?
1 楼 justin18 2010-06-23  
为什么我创建了database link能成功,但是在测试的时候却总是报用户名或密码无效,登录失败呢?

相关推荐

    oracle数据库之间同步数据 dbLink +job方式

    下面是一个简单的示例,展示了如何使用`MERGE`语句来同步两个数据库中的数据: ```sql MERGE INTO products p USING new_products np ON (p.product_id = np.product_id) WHEN MATCHED THEN UPDATE SET p.product_...

    利用oracle快照dblink解决数据库表同步问

    通过上述步骤,我们成功地利用Oracle快照和dblink技术实现了两个数据库之间的表同步。这种方式不仅可以提高数据的一致性,还可以减轻数据库管理员的工作负担。此外,通过灵活地设置快照的刷新策略和触发器,可以根据...

    建立oracle 数据库的dblink

    确保你已经为两个数据库在TNSNAME.ORA中配置了正确的网络连接信息。每个数据库实例都应该有自己的条目,这些条目应准确无误地指向相应的服务器和实例。 2. **GLOBAL_NAMES参数**:GLOBAL_NAMES参数决定了DBLINK的...

    Oracle利用job和dblink高级数据库同步技术

    在数据库同步的场景中,DBLink的作用尤为重要,它可以帮助我们实时或定时获取远程数据库的更新,并将其应用到本地数据库,确保两个数据库间的数据一致性。 结合Job和DBLink,我们可以构建出一套高效的数据同步策略...

    DBLINK实现两个数据库间表数据同步---张金总结版.pdf

    本文主要介绍了如何使用DBLink在两个Oracle数据库之间实现表数据的同步,具体步骤如下: 首先,需要在目标数据库服务器上配置DBLink。这涉及到在`network/admin/tnsname.ora`文件中添加源数据库的连接信息。例如,...

    DBLINK实现两个数据库间表数据同步---张金总结版.docx

    本文档主要介绍了如何使用DBLink在两个Oracle数据库之间同步表数据,具体步骤如下: 首先,在目标数据库(即接收数据的数据库)上进行配置。在目标数据库的`network/admin/tnsname.ora`文件中,你需要添加源数据库...

    oracle dblink 创建过程

    通过创建DBLink,可以在两个不同的Oracle数据库之间建立连接,实现数据的共享和交换。结合Oracle快照技术,可以有效地实现本地数据库与远程数据库之间的数据同步。此外,通过设置适当的刷新策略和使用触发器,可以...

    oracle实现数据同步

    如果这两个表都随源数据库的 `test_user` 表变化而变化,则实现了单向同步。 2. **双向同步** 若要实现双向同步,只需将源数据库与目标数据库的角色互换,重复以上步骤即可。 #### 六、快照的刷新方式 快照的...

    oracle 跨实例 数据同步

    DBLink是Oracle提供的一种机制,用于在两个不同的Oracle实例之间建立连接,从而实现跨实例查询或数据同步等功能。 - **步骤1**:在目标数据库上创建DBLink ```sql CREATE PUBLIC DATABASE LINK dblink_anson ...

    怎样DBLink_Oracle到MySql

    DBLink(Database Link)是Oracle提供的一种机制,用于实现两个或多个Oracle数据库之间的远程连接。通过DBLink,可以在一个Oracle数据库上执行SQL语句来访问另一个Oracle数据库中的数据。尽管本文的主题是Oracle到...

    Oracle10g通过DBLink访问MySQL数据

    - 如果需要执行更复杂的查询,例如连接两个数据库中的多个表,可以使用标准的SQL JOIN语法: ```sql SELECT o.name, e.salary FROM oracle_table o, employees@orcl_to_mysql e WHERE o.id = e.oracle_id; ```...

    Oracle dblink详解

    Oracle dblink是Oracle数据库提供的一种在分布式环境中连接不同数据库的机制。它允许用户在一个数据库上执行操作...理解并正确使用dblink对于管理多数据库环境至关重要,它简化了数据同步、迁移和跨数据库查询等任务。

    oracle - 数据同步 实例

    当本地数据库中的`GRADING`表发生变化时,触发器会自动将这些变化同步到远程数据库中的`SYN_GRADING`表,从而实现了两个数据库之间的数据一致性。这种方式极大地提高了系统的灵活性和可用性,使得开发人员无需关心...

    DBLINk

    1. **跨库查询**:DBLINK使得从一个数据库中直接查询另一个数据库成为可能,这对于需要整合多个数据库数据的报表系统、数据分析或实时数据同步场景非常有用。 2. **分布式事务处理**:在涉及多数据库的复杂事务...

    两个不同数据库中的表之间的操作(包含sql server /oracle)

    Oracle数据库中也有类似的技术——DBLINK,用于在两个Oracle数据库之间建立连接。 **创建DBLINK** 1. **已授权方式** - 如果用户已被授权,则可以使用以下命令: ```sql CREATE DATABASE LINK database_link_...

    数据库Oracle主从同步配置86.docx

    两个数据库都运行在 Windows 2003 操作系统上,IP 地址分别为 192.168.0.1 和 192.168.0.2。 初始化参数设置 在主从数据库都执行以下操作: 1. 以 dba 身份登录 sqlplus / as sysdba 2. 设置参数:alter system ...

    同步不同服务器数据库数据

    在跨服务器进行数据同步时,首先需要建立一个数据库链接(DBLink),以便本地数据库能够访问远程数据库。此步骤是数据同步的基础,具体操作如下: #### 创建DBLink的SQL语句 ```sql CREATE DATABASE LINK linkjypx ...

    DBlink的应用 DBlink的应用

    假设我们有两个数据库实例:`AAA`和`BBB`,并且已经创建好了对应的DBLink `AAA_LINK`。现在我们需要将`AAA`数据库中的表`A`同步到`BBB`数据库中。 我们可以编写一个shell脚本来实现这个过程: ```bash #!/bin/sh #...

    oracle—dblink

    通过创建 DB-link,可以在两个或多个数据库之间建立逻辑连接,进而实现跨数据库的数据查询、更新等操作。 #### 二、DB-link 的应用场景 在实际应用中,DB-link 主要有以下几个应用场景: 1. **跨数据库查询**:当...

Global site tag (gtag.js) - Google Analytics