作用:可以有相关联的两个库一起操作
例如有A库和B库,建了DBLINK之后,可以select * from A.TAB ,B,TAB(语法不是这样,就像查询两个关联表的数据一样。)

远程机器10.1.1.213

在本机上修改客户端监听文件
vim /oracle/db/network/admin/tnsnames.ora
teacher02 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.1.213)(PORT = 1521))
    )
    (CONNECT_DATA =
       (SERVER = DEDICATED)
      (SERVICE_NAME = bill)

 

SQL> conn / as sysdba
Connected.
SQL> create user ly02 identified by ly02;

User created.

SQL> grant connect ,resource to ly02;

Grant succeeded.

SQL> grant create database link, create materialized view to ly02;

Grant succeeded.

SQL> conn ly02/ly02
Connected.
SQL> create database link teacher02 connect to scott identified by tiger using 'teacher02';

Database link created.

SQL> select * from emp@teacher02;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7839 KING       PRESIDENT            17-NOV-81       5000
        10

      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0
        30

      7876 ADAMS      CLERK           7788 23-MAY-87       1100
        20


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7900 JAMES      CLERK           7698 03-DEC-81        950
        30

      7902 FORD       ANALYST         7566 03-DEC-81       3000
        20

      7934 MILLER     CLERK           7782 23-JAN-82       1300
        10


6 rows selected.

=========================================
主机213,在emp表上有主键,建立物化试图日志
create materialized view log on scott.emp with primary key;
=========================================

SQL> create materialized view memp refresh force with primary key
  2  as select empno,job,sal from emp@teacher02;

Materialized view created.

SQL> insert into emp@teacher02 values (1234,'aaaa','bbbbb',7369,'1-JAN-90',10000,20000,10);

1 row created.


SQL> select * from emp@teacher02;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      1234 aaaa       bbbbb           7369 01-JAN-90      10000      20000
        10

      7839 KING       PRESIDENT            17-NOV-81       5000
        10

      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0
        30


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7876 ADAMS      CLERK           7788 23-MAY-87       1100
        20

      7900 JAMES      CLERK           7698 03-DEC-81        950
        30

      7902 FORD       ANALYST         7566 03-DEC-81       3000
        20


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7934 MILLER     CLERK           7782 23-JAN-82       1300
        10


7 rows selected.

SQL> select * from memp;

     EMPNO JOB              SAL
---------- --------- ----------
      7839 PRESIDENT       5000
      7844 SALESMAN        1500
      7876 CLERK           1100
      7900 CLERK            950
      7902 ANALYST         3000
      7934 CLERK           1300

6 rows selected.

SQL> exec dbms_mview.refresh('memp','fast');

PL/SQL procedure successfully completed.

SQL> select * from memp;

     EMPNO JOB              SAL
---------- --------- ----------
      7839 PRESIDENT       5000
      7844 SALESMAN        1500
      7876 CLERK           1100
      7900 CLERK            950
      7902 ANALYST         3000
      7934 CLERK           1300
      1234 bbbbb          10000

7 rows selected.

这个时候,在213机器上看时还是只有6条记录,其他会话也是6条。
commit 之后,那么才是7条。