最近生产中创建了几个db link,很久之前弄过的,这次弄发现忘得差不多了。查了一下,以前没有整理过文档,今天整理一下,全当文档备份。
1.db link的使用原则 1.1.生产上尽量不要使用db link,虽然方便,但用的太多数据库会像蜘蛛网一样,乱七八糟
1.2.在10g中,BLOB,CLOB在db link中是查不到的,含这种数据类型的,要配合建view使用
1.3.我们经常可以使用synonym来做一些配置,以提高易读性和安全性
1.4.被建立了db link的user,最好不要修改密码,若修改密码要重建db link
1.5.db link是单向的
2.查看以后的db link
select * from dba_db_links;
3.创建db link 3.1.已经配置本地服务(已经写了tnsname.ora)
create [public] database link TEST.FSCRECON connect to FSCRECON identified by XXXXXX using 'TEST';
3.1.1.这个语句的意思是:
create [public] database link 数据库链接名 connect to 用户名 identified by 密码 using '本地配置的数据的实例名';
3.1.2.[public]的意思是:public是全局db link,即该数据库上所有用户都能查询,要sys或者system用户来创建(当然有sysdba权限的用户也可以的);如果不使用public就是私有db link,只有创建该db link的用户能查询
3.1.3.数据库链接名,建议使用SID.SCHEMA的形式,这样方便有多个db link时的识别(建议,个人习惯,非强制性)
3.2.未配置本地服务(没有写了tnsname.ora)
create [public] database link TEST.FSCRECON connect to FSCRECON identified by XXXXXX using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TEST)
)
)';
可以这样,但不建议,还是事先配置好tnsname.ora的好
4.删除db link
drop [public] database link TEST.FSCRECON;
5.如何查询
SELECT …… FROM 表名@数据库链接名