建立dblink(database link)

database linke是建立一个数据库到另一个数据库的路径的对象,通过database link可以允许查询远程表,我理解可以算作一种分布式数据库的用法。

database link是单向连接,既然它是一种对象,那自然可以在xxx_objects表中查询到相关的信息。建立database link前需要明确几个事情:

1、确认从建立方的server可以访问远程数据库。

2、需要在建立方的tnsnames中配置远程数据库连接串。

3、只有在服务端配置的连接才能在dblink中使用,如果仅是在客户端配置的连接是不能在dblink中使用,我这里就犯了这个错误,执行时就报错:

select * from t@dblinktest
                *
ERROR at line 1:
ORA-12154: TNS:could not resolve service name

很明显,相当于服务端未配置tnsname,因此找不到远程数据库的service name配置。

建立过程:

1、建立方的服务端配置远程数据库的tnsname配置。

2、tnsping 远程数据库tnsnames配置名称,可以通。

3、sqlplus登录后执行:

SQL> create database link dblinktest connect to user identified by passwd using 'ceshi';

其中:

dblinktest是database link的名称。

user是远程数据库的用户名。

passwd是远程数据库的密码。

ceshi是数据库服务端配置的tnsnames中名称。

4、执行:

SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
OWNER           OBJECT_NAME
--------------- -------------------------
OPEN               DBLINKTEST

可以看到已经建立了这个database link。

5、执行:

SQL> select * from t@dblinktest;
        ID
----------
         0
         2
         3
         4
         5

当然也可以执行insert语句:

SQL> insert into t@dblinktest values(1);
1 row created.

另外database link分为public和private的,默认是private,只有当前用户可用,如果是create public database link ...,则所有用户都可以使用这个名称的database link。

时间: 2024-09-02 07:13:07

建立dblink(database link)的相关文章

oracle database link

原文整理自网络: database link基础知识 什么是database link? database link,它是用来更方便的一个数据库中访问另一个数据库(包括本地和远程的,道理是一样的),一开始,很多人会发生误解,其实是在本地建立的.即数据库连接只是连到别的数据库的快捷方式. database link是定义一个数据库到另一个数据库的路径的对象,database link允许你查询远程表及执行远程程序.在任何分布式环境里,database都是必要的.另外要注意的是database li

Oracle DATABASE LINK(DBLINK)创建与删除方法_oracle

Oracle创建.删除DATABASE LINK 创建dblink: create database link [name] connect to [username] IDENTIFIED BY [password] using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = [ip])(PORT = [port])) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVI

Oracle创建Database Link的两种方式详解_oracle

创建一个dblink,命名为dblink_name,从A数据库连到B数据库,B数据库的IP为192.168.1.73,端口为1521,实例名为oracle,登录名为tast,密码为test. 一菜单方式: 打开plsql,点击[File]-[New]-[Database link],打开如下图所示窗口 填好各项信息后,点击[Apply]即可完成Database Link的创建. 二SQL方式 -- Drop existing database link drop public database

oracle数据库在客户端建立dblink语法_oracle

oracle服务器没有建立目标数据库的TNS时,在客户端(有权限的情况下)建立dblink语法如下: 复制代码 代码如下: create database link dblink_name connect to user_name identified by user_psw using '(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xx.xxx.xx)(PORT = 1521)) ) (CONNEC

[20170712]建立dblink的问题.txt

[20170712]建立dblink的问题.txt SYS@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx   

[20120927]11GR2下建立dblink.txt

[20120927]11GR2下建立dblink.txt SQL> select * from v$version ; BANNER--------------------------------------------------------------------------------Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionPL/SQL Release 11.2.0.1.0 -

Oracle 11g r2新增ALTER DATABASE LINK功能简介

从11.2开始,如果数据库链建立时用户名密码有误,或者需要更改数据库链验证设置,不需要将数据库链删除后重建了,Oracle提供了ALTER DATABASE LINK的语法. 这只是一个很小的改动,但是使得数据库链的操作方便了许多.没有必要为了输入错误或是更改了用户名密码而重建数据库链了. SQL> create database link test 2  connect to test 3  identified by password 4  using '172.25.13.229/test

oracle报错ORA-01089 select fail over database link on RAC ADG Standby问题

前段时间配的一套11203 RAC ADG on EXADATA Machine的环境,在ADG 的standby side的node2 通过dblink查询时提示ora-1089错误,但是在node1 查询正常,DG的recover 进程是在node1 上,后确认是个bug 简单的记录. -- on standby node2 ,but on standby node1 was worked select count(*) from dbmt.dbmt_tableinfo@LINK_WEEJA

(原创)同时使用database link和本地序列插远程数据表时报ORA-02069

同时使用database link和本地序列插远程数据表时报ORA-02069 今天遇到同时使用database link和本地序列插远程数据表时报ORA-02069:global_names parameter must be set to true for this operation环境:Oracle9i Enterprise Edition Release 9.2.0.4.0 - ProductionPL/SQL Release 9.2.0.4.0 - ProductionCORE 9.