一:什么是DBLINK
本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建访问远程数据库的链路,通过链路,本地数据库可以像访问本地数据库一样访问远程数据库表中的数据,这个链路叫DBLINK。
1.1 创建dblink语法
CREATE [PUBLIC] DATABASE LINK link CONNECT TO username IDENTIFIED BY password USING
‘connectstring’
注意:参数global_names=TRUE link名必须与远程数据库的全局数据库名global_name 相同;否则,可以任意命名。
select * from global_name --查看数据库global_name
alter database rename global_name to orcl; 修改global_name
查看数据库有哪些DBLINK
col owner format a20
col name format a20
col db_link format a20
select * from dba_db_links
1.2 DBLINK的种类:
私有DBLINK:只有创建者本身可以使用,别人无法使用
create database link weisi_private_dblink connect to weisi identified by weisi using 'weisi';
sqlplus weisi/weisi@weisi
create database link weisi_private_dblink_01 connect to weisi identified by weisi using 'weisi';
grant CREATE DATABASE LINK to weisi;
create database link weisi_private_dblink_01 connect to weisi identified by weisi using 'weisi';
drop database link weisi_private_dblink;
共有DBLINK:大家可以使用
create public database link weisi_public_dblink connect to weisi identified by weisi using 'weisi';
1.3 使用DBLINK
create table wuzhenxing identified by wuzhenxing ;
grant connect,resource to wuzhenxing;
grant create database link to weisi;
sqlplus wuzhenxing/wuzhenxing
create database link weisi_private_dblink_01 connect to weisi identified by weisi using 'weisi';
select sysdate from dual@weisi_private;
select count(1) from big_rman_t@weisi_private;
update big_rman_t@weisi_private set object_id=100 where object_id < 2000;
create database link weisi_private_dblink_01 connect to weisi identified by weisi using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.102)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)';
select sysdate from dual@weisi_private_dblink_01;