/*
* @Title: Oracle.DataBase Link
* @Date : 2009-09-14 18:49:00
* @By : Fly_Lv.
****************************************/
--DataBase Link
create DataBase Link ads7_1
connect to adsbuild identified by adsbuild
using '
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.7.1)(PORT = 1521))
)
(CONNECT_DATA =
(SID = wad69)
(SERVER = DEDICATED)
)
)
';
--使用 在ADM中查询ADS的表
select * from t_task@ads7_1;
/*
database link,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的),
一开始,很多人会发生误解,其实是在本地建立的。即数据库连接只是连到别的数据库的快捷方式。
一、设置具体有两种
第一种:
根据远端的信息用Net Manager设置好能连接远端的服务及监听程序。
*/
create public database link fwq12
connect to fzept identified by neu
using’fjept’--fjept为刚刚配置好的服务名
--第二种:
--直接建立链接:
create database link linkfwq
connect to fzept identified by neu
using ’(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = fjept)
)
)’;
--删除DATABASE LINK;
DROP PUBLIC DATABASE LINK linkfwq
--附带说下同义词创建:
CREATE SYNONYM同义词名FOR表名;
CREATE SYNONYM同义词名FOR表名@数据库链接名;
--删除dblink:DROP PUBLIC DATABASE LINK linkfwq。
--假如创建全局dblink,则必须使用systm或sys用户,在database前加public。
--创建Database Link
--1.先创建PUBLIC DATABASE LINK,不用指定用户和密码
scott@TEST>conn system/test
Connected.
system@TEST>CREATE PUBLIC DATABASE LINK orcl USING 'ORCL';
Database link created.
--2.再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码
system@TEST>conn scott/tiger
Connected.
scott@TEST>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;
Database link created.
--实际上相当于:
CREATE DATABASE LINK orcl USING 'ORCL' CONNECT TO scott IDENTIFIED BY tiger;
-- 建立链接前要先有到远程数据库的命名服务(连接字符串),就是tnsnames.ora中描述的那个,如'oradxp'
先测试一下:SQL>$tnsping oradxp
Attemping to contact(...) OK(30毫秒).
-- 说明对远程数据库oradxp可访问。 没成功过
lsof -p 进程号 |wc -l --c查看文件句柄数
ps -u ads --查看ads所用进程
--查看数据中的DATABASE LINK数: sys用户查看
select owner,object_name from dba_objects where object_type='DATABASE TYPE';
--删除DATABSE LINK;
SQL> drop database link ads7_1;
Database link dropped