ORACLE数据库链接
在ORACLE里面,远程数据访问,像查询、更新等可以通过Database Link来实现。数据库连接需要在建立Database Link的两台机子上都运行Oracle Net(以前叫SQL*NET 和NET 8)。 语法如下
1 Database Link 的创建:
有两个数据库服务器A/B, 其中A的IP地址为172.20.36.245, 服务器B为本机。服务器B上的数据库实例名为ORCL,在本机上的服务监听配置上有服务器A上实例配置:
BIWG_TEST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = biwg)
)
)
实例BIWG_TEST的账号为 WGODS 、 密码为WGODS。下面开始在本机上创建DB Links
方法1:
CREATE [PUBLIC] DATABASE LINK 数据库链接名 CONNECT TO 用户名 IDENTIFIED BY 密码 USING '本地配置的数据的实例名';
[public]的意思是:public是全局db link,即该数据库上所有用户都能查询,要sys或者system用户来创建(当然有sysdba权限的用户也可以的);如果不使用public就是私有db link,只有创建该db link的用户能查询
查看连接是否成功
方法2:可以不配置服务。
CREATE PUBLIC DATABASE LINK REMOTE_DEVE_HOST CONNECT TO WGODS IDENTIFIED BY WGODS USING '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.36.245)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = biwg) )
)'
不建议使用这个实现。感觉没有上面方法来的方便
查看连接是否成功
2 查看当前数据有哪些Database Link?
3 如何返回数据库的GLOBAL_NAME?
SQL> SHOW PARAMETER GLOBAL_NAME; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ global_names boolean FALSE 或 SELECT * FROM GLOBAL_NAME
该参数为TRUE时,你在本地建立的DBLINK名称必须和远程的GLOBAL_NAME一致才行。
4 删除Database Link
DROP [PUBLIC] DATABASE LINK REMOTE_DEVE_HOST;
会报如下错误: ORA-02024: 未找到数据库连接
DROP PUBLIC DATABASE LINK REMOTE_DEVE_HOST;
正常执行删除Database Link。
5 设置GLOBAL_NAME值对Database Link的影响
SQL> ALTER SYSTEM SET GLOBAL_NAMES = TRUE;
System altered
CREATE PUBLIC DATABASE LINK REMOTE_DB
CONNECT TO WGODS IDENTIFIED BY WGODS USING 'BIWG'
SELECT * FROM DUAL@REMOTE_DB
此时报错:ORA-02085:数据库连接 XXXX 到 XXXX
SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
System altered
修改参数值为FALSE后,查询就正常了、
6 在DB Link中执行查询会有些限制。你应该避免使用connect by, start with, 以及prior关键字。一些查询使用了这些关键字会很正常, 但是大部分查询会失败
7 如何查询
SELECT …… FROM 表名@数据库链接名
8 DB LINK的使用原则(工作中以及网上收集整理的,仅供参考)
8.1.生产尽量不要使用db link,虽然方便,但这样不利于数据库安全管理
8.2.在10g中,BLOB,CLOB在db link中是查不到的,含这种数据类型的,要配合建view使用
8.3.我们经常可以使用synonym来做一些配置,以提高易读性和安全性
8.4.被建立了db link的user,最好不要修改密码,若修改密码要重建db link
8.5.db link是单向的
8.6 数据库链接名,建议使用SID.SCHEMA的形式,这样方便有多个db link时的识别(建议,个人习惯,非强制性)
ORACLE数据库链接的更多相关文章
- Oracle 数据库链接
SQL> CREATE DATABASE LINK mydblink 2 CONNECT TO test IDENTIFIED BY test123 3 USING ...
- lamp中的Oracle数据库链接
lamp一键安装包: https://lnmp.org/install.html 在CentOS 6.7 64位安装PHP的PDO_OCI扩展 Installing PDO_OCI extension ...
- Oracle数据库链接超级慢或者总提示链接超时
Centos6 今天tomcat应用程序链接数据库总提示链接超时,客户端工具通过tnsnames连接数据库实例进行操作也超级慢, 实在无法忍受, 重启实例试试吧,重启了还是不好使,还是很慢很慢,无比 ...
- Oracle数据库的链接数目超标
测试场景:Oracle数据库的链接数目超标,iServer是否自动连接. 测试步骤:(1)设置了最大连接数为85,oracle后台进程有83:(2)开启3台iserver(A,B,C)A,B发布tes ...
- 历尽磨难之PL/SQL链接Oracle数据库
说起来都是泪啊,上司布置的任务需要远程连接Oracle数据库,说实话这又是我人生中的第一次.我听到以后觉得不是什么大问题,然而我错了..错的很厉害! 我搞了一天一夜才弄好,这里面原因有很多,大体来讲还 ...
- 关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理 ...
- SQL Server 2014 64位版本链接32位Oracle数据库
问题背景: 刚进入公司不久的BI新手,最近接部门的一个交接项目,需要在SQL Server上通过openquery来获取Oracle数据库的数据.各种配置,各种设置折腾了一周之久.在此,将自己的问题解 ...
- 有关.NET链接Oracle数据库,使用连接池pooling=true时问题
.net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...
- Python链接Oracle数据库
说明:以下所需安装的所有软件版本必须跟系统一致,即系统是64位,软件就得是64位,否则会出现各种链接报错的情况. 现以64位系统,python 3.6.5 64位为例: (一)安装cx_Oracle ...
随机推荐
- springboot项目启动时提示Address already in use: bind
PS:web项目在启动的时候,一般会报Address already in use: bind,常规的处理思路为:删除任务管理器中的javaw.exe进程即可:当删除仍然解决不了时,一般处理思路如下, ...
- Codeforces 714A Meeting of Old Friends
A. Meeting of Old Friends time limit per test:1 second memory limit per test:256 megabytes input:sta ...
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
Ch’s gift Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Java面向对象接口的应用实例练习
interface USB { public void open(); public void close(); } class Upan implements USB { public void o ...
- C/C++中peek函数的原理及应用
C++中的peek函数 该调用形式为cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移.如果要访问的字符是文件结束符,则函 ...
- [学习OpenCV攻略][003[初试牛刀——显示图片]
cvLoadImage(路径) 加载指定路径的图片到内存 cvNamedWindow("窗口名称", 属性) 创建窗口,窗口名称用来被其他函数引用,属性:0表示窗口大小不变,CV_ ...
- iOS钉钉远程打卡助手(支持越狱和非越狱)
前言:本文主要讲述使用hook方式实现钉钉远程打卡功能,涉及到tweak相关知识,如果你不想了解具体实现细节可直接到我的Github地址参考安装(包含越狱和非越狱两种方法) 你是不是像小编一样每个 ...
- jquery ajax 请求中多出现一次OPTIONS请求及其解决办法
http://www.tangshuang.net/2271.html 在上一篇<服务端php解决jquery ajax跨域请求restful api问题及实践>中,我简单介绍了如何通过服 ...
- 邓_phpcms_phpcms授课思路复习
思路: 一.目前在企业中使用比较多的cms内容管理有如下几种: 1.dedecms 2.phpcms 二.我们选择学习v9版本的phpcms,主要有以下几点原因: 1.基于MVC模式的内容管理系统 2 ...
- 【开发技术】Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix)
Eclipse设置软tab(用4个空格字符代替)及默认utf-8文件编码(unix) 本文摘要: 1.如何配置Eclipse中编辑器支持softtab(用数个空格字符代替默认的tab缩进): 2.如何 ...