DBLink簡單描述

一、實驗環境

兩臺數據庫,分別是

第一臺:

SID:r10g1

第二臺:

SID:r10gr2

二、第二臺機器建立DBLink,訪問r10g1(遠程數據庫)

1、在r10g1上建立如下對象

---------表空間

create tablespace test_tbs
datafile '/u01/app/oracle/oradata/r10g1/test_tbs.dbf'
size 100M
autoextend on next  50M
maxsize 500M;

----------臨時表空間

create temporary tablespace test_tbs_temp
tempfile '/u01/app/oracle/oradata/r10g1/test_tbs_temp.dbf'
size 100M
autoextend on next 50M
maxsize 500M;

----------------用戶

create user test_users identified by oracle default tablespace test_tbs temporary tablespace test_tbs_temp;

-------------在用戶test_users下建立表,並插入數據

create table test_a(id number);
insert into test_a (id) values (100);
select * from test_a;

2、在r10gr2上配置TNS,服務名爲101_r10g1,確保通過服務名連接r10g1成功

3、在r10gr2上創建DBLink

(1)查看本地Global_name參數是true還是False?

SQL> show parameter global_name;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
global_names                         boolean     FALSE

如果是TRUE,本地建立的dblink的名稱必須和遠程的global_name一致才行

(2)查看GLOBAL_NAME

SELECT * FROM GLOBAL_NAME;

我這裏第一臺機器的GLOBAL_NAME爲

GLOBAL_NAME
--------------------------------------------------------------------------------
R10G1.REGRESS.RDBMS.DEV.US.ORACLE.COM

(3)查看遠程的數據庫是否支持高級複製

select * from v$option where parameter='Advanced replication';

PARAMETER                      VALUE
------------------------------ ----------
Advanced replication           TRUE

如果返回的值爲true,那麼就是支持,否則就是不支持,應該在兩個數據庫中都是檢查是否支持才行

(4)創建DBLink

create database link dbl_test connect to test_users identified by oracle using '101_r10g1';

---dbl_test   :  dblink的名字

---test_users :要連接遠程數據的用戶名

---oracle:要連接遠程數據庫的用戶密碼

---101_r10g1:本地建立的TNS名稱

注意:如果本地Global_name參數是true,這裏在創建dblink的名稱時就不能是dbl_test了,必須是R10G1.REGRESS.RDBMS.DEV.US.ORACLE.COM

(5)測試是否成功

SQL>   select * from test_a@dbl_test;

以上是基本本地數據庫(r10gr2)的sys用戶創建的,如果SCOTT想要創建DBLink,需要給SCOTT賦予如下權限

 grant create database link to scott;

(6)查看本地DBLINK對象

SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';

OWNER      OBJECT_NAME
---------- --------------------------------------------------
SYS        DBL_TEST.REGRESS.RDBMS.DEV.US.ORACLE.COM
SCOTT      DBL_TEST1.REGRESS.RDBMS.DEV.US.ORACLE.COM



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章