前言
oracle 12.1.x
操作
连接同数据库下的其它库
格式:
CREATE DATABASE LINK 链接名
CONNECT TO 用户名 IDENTIFIED BY 密码
USING '服务命名';
示例
CREATE DATABASE LINK dblink1
CONNECT TO scott IDENTIFIED BY "123456"
USING 'orcl';
连接远程数据库
格式
CREATE DATABASE LINK 链接名
CONNECT TO 用户名 IDENTIFIED BY 密码
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = IP地址/域名)(PORT = 端口))
)
(CONNECT_DATA =
(SERVICE_NAME = 服务名)
)
)';
示例
CREATE DATABASE LINK dblink1
CONNECT TO scott IDENTIFIED BY "123456"
USING '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.200.213)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
在本地建立连接远程的服务
在本地通过修改tnsnames.ora文件,建立一个与远端Oracle连接的服务。
使用格式建立DBLink:
CREATE DATABASE LINK 链接名
CONNECT TO 用户名 IDENTIFIED BY 密码
USING '服务命名';
测试连接是否成功
select * from dual@dblink1
其它
- 通过PUBLIC参数创建的数据库链接对所有用户都可见。如果你忽略这个参数,那么所创建的数据库链接是私有的,只对当前用户可用。比如:CREATE PUBLIC DATABASE LINK dblink1 …
- 如果你指定的是CONNECT TO user IDENTIFIED BY password,那么数据库连接时会使用指定的用户和密码;如果指定的是CONNECT TO CURRENT_USER,那么数据库起作用的的用户取决于所使用链接的作用范围;如果上面两种方式的参数都忽略了,那么数据库使用本地用户连接到远程数据库。
- 在一个会话或一个RAC实例配置中可以创建的数据库链接的最大个数,取决于OPEN_LINKS和OPEN_LINKS_PER_INSTANCE初始化参数的值。
如何返回数据库的GLOBAL_NAME?
SELECT * FROM GLOBAL_NAME;
如何查看Global_name参数是true还是False?
show parameter global_name;
- 如果GLOBAL_NAMES初始化参数被设置成TRUE,那么数据库连接必须使用与它所连接的库的名字;反之,如果是false,而你又改变了数据库的全局名,那么你可以使用这个改变后的全局名。