plsql语句如何dblink其他库

plsql语句如何dblink其他库,第1张

DBLink 的作用是在局域网内,通过一台服务器上面的数据库访问另外一台服务器上面数据库的功能。

下面简单的介绍DBLink的配置:

服务器A:IP 192.168.1.10, 数据库实例名:orcl 数据库登录:test/test

服务器B:IP 192.168.1.1,   数据库实例名:orcl 数据库登录:user/user

在A服务器上的数据库可以访问服务器B的数据库时就需要用到dblink

请点击输入图片描述

首先打开plsql,选择到DbLink

请点击输入图片描述

有点点击new,进入编辑界面,分别输入dblink的名称,需要链接到另外一个数据库的用户名、密码、实例名等信息。填写核对无误后点击左下角的apply,进行保存。这样你的第一个dblink就创建好了

请点击输入图片描述

当然还可以直接用语句创建dblink。create public database link MyFirstDblink connect to user identified by "123456" USING '192.168.1.1/orcl'

请点击输入图片描述

语句创建好后,选中这条语句,点击执行按钮,或者F8快捷键保存。

请点击输入图片描述

这时候就可以使用查询语句啦,在表名称后面加@字符,便会自动出现你添加的DBLINK名称

请点击输入图片描述

当然还可以使用更新、删除语句啦。是不是很简单呢,有了dblink *** 作别人的数据库就更简单啦

请点击输入图片描述

比如我想在192.168.1.1服务器上的orcl数据库创建dblink,访问192.168.1.2服务器上db01数据库的test用户,具体步骤如下:

以下所有 *** 作都是在服务器192.168.1.1上完成

1 确保网络互通

ping 192.168.2

2 配置网络

cd $ORACLE_HOME/network/admin

[oracle@cc admin]$ vim tnsnames.ora

2 =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT =

1521))

)

(CONNECT_DATA =

(SERVICE_NAME = db01)

)

)

如果tnsping 2可以说明网络配置成功

3 创建dblink

create

database link db01 connect to test identified by test using '2'

select * from test@db01如果可以访问到test用户下数据,说明配置成功;

其中在创建过程中可能会出现以下几种错误:

(以下问题都是在192.168.1.2服务器上解决的)

问题一:

tnsping 2不通,出现TNS-12532 错误

解决办法:

注释掉默认域名

[oracle@card admin]$ vim sqlnet.ora

#NAMES.DEFAULT_DOMAIN = DEV.CN.TLAN

NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)

问题二:

select* from test@db01创建完dblink时查询数据出错

ERROR at line 1:

ORA-02085: database link FGOS.REGRESS.RDBMS.DEV.US.ORACLE.COM connects to ORCL

出现错误ORA-02085

解决办法:

当GLOBAL_NAMES参数设置为TRUE时,使用DATABASE LINK时,DATABASE LINK的名称必须与被连接库的GLOBAL_NAME一致。

SQL>show parameter global_names

NAMETYPEVALUE

------------------------------------ ----------- ------------------------------

global_namesboolean TRUE

SQL>alter system set global_names=falsescope=both

创建dblink一般有两种方式,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库:

select * from user_sys_privs t

where t.privilege like upper('%link%')

1 SYS CREATE DATABASE LINK NO

2 SYS DROP PUBLIC DATABASE LINK NO

3 SYS CREATE PUBLIC DATABASE LINK NO

可以看出在数据库中dblink有三种权限CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了),CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用),DROP PUBLIC DATABASE LINK。

在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK权限授予给你的用户

grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott

然后以scott用户登录本地数据库

1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库。

create public database link

to_bylw connect to scott identified by tiger using 'bylw'

其中to_bylw是你创建的dblink名字,bylw是远程数据库的实例名,scott/tiger是登录到远程数据库的用户/密码。然后在本地数据库中通过dblink访问远程数据库'bylw'中scott.tb_test表,sql语句如下所示

select * from scott.tb_test@to_bylw

2.创建dblink的第二种方式,是在本地数据库tnsnames.ora文件中没有配置要访问的远程数据库,

create database link to_test

connect to scott identified by tiger

using '(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)))(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = bylw)))'第二种是把第一种配置在tnsnames.ora文件中的信息,直接放在创建dblink语句后面。第一种情况tnsnames.ora文件中信息如下:bylw =(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 1521)))(CONNECT_DATA =


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11552121.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存