大家好,小弟现在是有AB两个数据库,现在A数据库中有一个视图,我想在B数据库中建一张表,再从A数据库中的视图把数据库同步过来,可以是实时的,也可以是定时的,我知道这通过数据库自己就应该可以实现,但我数据库懂的不多,希望高手帮忙!另外我考虑过用程序也可以做,但我觉得效率和安全都是问题,所以还是想用数据库自己来做,数据库是Oracle的。E-mail:[email protected]

解决方案 »

  1.   

    在B库建立A库的DBLINK 然后在B库写个存储过程实现数据同步 如果是WINDOW系统 在任务计划里定期执行 或加个JOP定期执行就可以了
      

  2.   

    --在A上创建dblink,连接到B
    CREATE PUBLIC DATABASE LINK ora1 
    CONNECT TO scott identified by dba123
    USING '
    (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.208)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = ora1)
        )
       )
       ';

    --在B的customer表上建产物化视图日志
    CREATE MATERIALIZED VIEW LOG ON customer;

    --在A上创建物化视图
    CREATE MATERIALIZED VIEW mv_test
    REFRESH FAST --START WITH SYSDATE NEXT  SYSDATE + 1/4096 /*后面的是定期更新,我这里注释掉了。也可以用dbms_mview.fresh来刷新*/ 
    ON DEMAND
    AS
    SELECT *
      FROM customer@ora1;
      

  3.   

    多谢 codearts 的指导,以后还请多多赐教!