作用:可以有相关联的两个库一起操作
例如有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条。
转载于:https://blog.51cto.com/linuxart/844806