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



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