1.创建全局link(使用本地一个用户访问其它用户的表)
语法:
create public database link 链接名 CONNECT TO 本地用户名 IDENTIFIED BY 密码 USING '本地数据库实例名';
SQL> create user upch identified by System13579; User created.SQL> grant dba,resource,connect to upch;Grant succeeded.
SQL> conn upch/System13579Connected.
SQL> create table t (a number);Table created.
SQL> insert into t values(1);1 row created.SQL> insert into t values(2);1 row created.SQL> select * from t; A---------- 1 2SQL> conn / as sysdbaConnected.
SQL> create public database link tong connect to upch identified by System13579 using 'orcl';
SQL> select * from t@tong; --访问upch用户下的t表 A---------- 1 2SQL>
2.远程创建link
语法:
create /* public */ database link tong connect to 远程用户名 identified by 密码using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 远程IP地址)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = 远程SID值)))';
[oracle@localhost dbs]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Wed Jun 28 14:47:53 2017Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> create database link tong1 connect to upch identified by System13579 using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 172.16.8.161)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';Database link created.SQL> select * from t@tong1; A---------- 1 2SQL> col owner for a10
SQL> col db_link for a10
SQL> col host for a150
SQL> select * from dba_db_links; --查看数据库有多少dblinkOWNER DB_LINK USERNAME HOST CREATEDSYS TONG1 UPCH (DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 172.16.8.161)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) 28-JUN-17SQL> drop database link tong1; --删除dblinkDatabase link dropped.SQL>