Oracle创建dblink测试


DBLINK是一个数据库中的架构对象,可用于访问另一个数据库上的对象。另一个数据库不一定是 Oracle 数据库系统。但是,要访问非 Oracle 系统,您必须使用 Oracle 异构服务: CREATEDATABASELINK

创建dblink所需权限

PrivilegeDatabaseRequired For
CREATE DATABASE LINKLocalCreation of a private database link.
CREATE PUBLIC DATABASE LINKLocalCreation of a public database link.
CREATE SESSIONRemoteCreation of any type of database link.

创建dblink测试如下:

一、远端数据库准备条件

  • 服务名:orcl
  • 端口号:1522
  • IP:192.168.245.201
  • 连接用户:shuaige
  • 连接用户密码:shuaige123
  • 连接用户权限:(create session)

二、本地数据库准备条件

  • 连接用户:shuaige
  • 连接用户权限:(create public database link)(create database link)

一、测试网络端口

1、使用nc命令
$ nc -vz <IP> <PORT_NUMBER>
$ nc -vz 192.168.245.201 1522
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.245.201:1522.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
2、使用tnsping
$ tnsping <IP>:<PORT_NUMBER>
$ tnsping 192.168.245.201:1522

TNS Ping Utility for Linux: Version 19.0.0.0.0 - Production on 01-JUN-2022 11:31:20

Copyright (c) 1997, 2019, Oracle.  All rights reserved.

Used parameter files:
/u01/app/oracle/product/19.3.0/dbhome_1/network/admin/sqlnet.ora

Used HOSTNAME adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.245.201)(PORT=1522)))
OK (0 msec)

二、本地配置tnsnames.ora文件

vi $ORACLE_HOME/network/admin/tnsnames.ora

添加以下内容:

ORCL_11G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.245.201)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

三、创建dblink

语法:

CREATE [ SHARED ] [ PUBLIC ] DATABASE LINK dblink
  [ CONNECT TO
    { CURRENT_USER
    | user IDENTIFIED BY password [ dblink_authentication ]
    }
  | dblink_authentication
  ]...
  [ USING connect_string ] ;
(1)创建公共dblink(所有用户可用)
1. 源库创建公共dblink(public_dblink_11g)
SHUAIGE@orcl> CREATE PUBLIC DATABASE LINK public_dblink_11g CONNECT TO shuaige IDENTIFIED BY shuaige123 USING 'ORCL_11G';

Database link created.

SHUAIGE@orcl> CREATE PUBLIC DATABASE LINK public_dblink_11g CONNECT TO shuaige IDENTIFIED BY shuaige123 USING '(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.245.201)(PORT = 1522))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))';

Database link created.
2. 测试dblink
SHUAIGE@orcl> select * from t1@public_dblink_11g;

	ID NAME
---------- ------------------------------
     54321 lihua
3. 删除dblink
DROP [PUBLIC] DATABASE LINK dblink; 
SHUAIGE@orcl> drop public database link public_dblink_11g;

Database link dropped.
(2)创建私有dblink(仅所属用户可用)
1. 源库创建私有dblink(private_dblink_11g)
SHUAIGE@orcl> CREATE  DATABASE LINK private_dblink_11g CONNECT TO shuaige IDENTIFIED BY shuaige123 USING 'ORCL_11G';

Database link created.

SHUAIGE@orcl> CREATE DATABASE LINK private_dblink_11g CONNECT TO shuaige IDENTIFIED BY shuaige123 USING '(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.245.201)(PORT = 1522))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))';

Database link created.
2. 测试dblink

所属用户进行dblink连接查询测试

SHUAIGE@orcl> select * from t1@private_dblink_11g;

	ID NAME
---------- ------------------------------
     54321 lihua

非所属用户进行dblink连接查询测试

HR@orcl> select * from t1@private_dblink_11g;
select * from t1@private_dblink_11g
                 *
ERROR at line 1:
ORA-02019: connection description for remote database not found
3. 删除dblink
SHUAIGE@orcl> drop database link private_dblink_11g;

Database link dropped.
其他相关语句:
-- 1、授予用户创建公共dblink权限

grant create public database link to user;

-- 2、授予用户创建私有dblink权限

grant create database link to user;

-- 3、查询具有dblink权限的用户

select * from dba_sys_privs where privilege like upper('%DATABASE LINK%');

-- 4、查询数据库dblink相关数据字典

select * from dba_db_links;

select * from all_db_links;

select * from user_db_links;

-- 5、查询数据库dblink对象

select * from dba_objects where  object_type like '%LINK%';

-- 6、关闭dblink session

alter session close database link my_private_dblink;

-- 7、查询数据库dblink链接最大数,(默认4)
show parameter open

--8、修改数据库dblink链接最大数,(重启实例生效)
alter system set open_links=10 scope=spfile;

dblink连接数据库报错:
OERR: ORA-2085 "database link %s connects to %s"
Reference Note (文档 ID 19367.1)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值