Oracle DBLINK
来源:互联网 发布:js去掉html标签样式 编辑:程序博客网 时间:2024/06/08 12:50
Oracle DBLINK
- 准备
select name ,value from v$parameter t where t.NAME = 'global_names';select * from global_name;show parameter global_names;NAME TYPE VALUE------------------------------------ ----------- ------------------------------global_names boolean TRUE
2.创建DBLINK
– 在本地DB 创建dblink , 去连target DB
a.
CREATE DATABASE LINK dblink_name CONNECT TO userid IDENTIFIED BY pwdUSING 'target_DB_connectString';
b.
create database link dblink_c connect to userid identified by pwd using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = target_ip)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = SID) ) )';
权限:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATESESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。 link : 当GLOBAL_NAME=TRUE时,link名必须与远程数据库的全局数据库名global_name)相同;否则,可以任意命名。 connectstring:连接字符串,tnsnames.ora中定义远程数据库的连接串。 username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库。
2.检验DBLINK
select owner,object_name from dba_objects where object_type='DATABASE LINK';
3.查询
select * from table@dblink_c;
4.删除
DROP PUBLIC DATABASE **LINK** dblink_c ;
5.报错-1
ORA-12541: TNS:no listener12541. 00000 - "TNS:no listener"*Cause: The connection request could not be completed because the listener is not running.*Action: Ensure that the supplied destination address matches one of the addresses used by the listener - compare the TNSNAMES.ORA entry with the appropriate LISTENER.ORA file (or TNSNAV.ORA if the connection is to go by way of an Interchange). Start the listener on the remote machine. Troubleshooting : 创建时要以方法**b** 创建 可解决;
报错 -2 : 当执行 select * from t1@to_test ;
ORA-02085: database link to_test connects to ORA11G.LOCALDOMAIN02085. 00000 - "database link %s connects to %s"*Cause: a database link connected to a database with a different name. The connection is rejected.*Action: create a database link with the same name as the database it connects to, or set global_names=false.
如果本地数据的 global_names 结果为 true ,
select name ,value from v$parameter t where t.NAME = 'global_names';
则dblink的的名称必须和本地数据库一致.
a) .可以通过下面的语句查询全局数据库名称
SELECT * FROM GLOBAL_NAME;
b). 也可以修改全局数据库名称为false解决.
alter system set global_names=false;
7.几点注意:
在使用中后台却出现锁,每次使用dblink查询的时候,均会与远程数据库创建一个连接,dblink 应该不会自动释放这个连接,如果是大量使用 dblink 查询,会造成 web 项目的连接数不够,导致系统无法正常运行,导致系统无正常运行。
0 0
- Oracle DBLink
- Oracle dblink
- Oracle DBLink
- ORACLE DBLINK
- oracle dblink
- oracle dblink
- Oracle DBlink
- Oracle-DBLINK
- oracle dblink
- Oracle DBlink
- oracle dblink
- oracle,dblink
- oracle dblink
- oracle dblink
- oracle DBLink
- oracle dblink
- Oracle DBLINK
- oracle dblink
- mysql 设置中文字段
- 嗯,以后要发简书了
- verilog中关于并行处理的心得
- shell脚本中当某行命令输入过长时如何换行?
- android openGL ES 20 投影、相机画等边三角形和正方形
- Oracle DBLINK
- C#中的反射Reflection动态加载引用
- DDA画线算法
- Android开发人员不得不收集的代码(不断更新)
- CWND和HWND之间的关系和转换 和获取方法
- Params详解(二)
- Spring中ClassPathXmlApplicationContext类的简单使用
- Myeclipse保存时总是building workspace的两个解决办法
- Spring jar包作用详解