oracle创建dblink(oracle创建dblink连接超时)

本篇文章给大家谈谈oracle创建dblink,以及oracle创建dblink连接超时对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

oracle创建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

NAME TYPE VALUE

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

global_names boolean TRUE

SQL alter system set global_names=falsescope=both;

[img]

如何在oracle上建dblink连接远程mysql数据库

oracle:系统redhat 5.5 数据誉携库:11.2.0.1

mysql:系统centos6.3 数据库:5.6.21

1.先装 mysql-connector-odbc和unixODBC

[root@rac1 ~]# rpm -qa | grep mysql

mysql-5.0.77-4.el5_4.2

mysql-5.0.77-4.el5_4.2

mysql-connector-odbc-5.1.13-1.rhel5

[root@rac1 ~]# rpm -qa | grep ODBC

unixODBC-devel-2.2.11-7.1

unixODBC-2.2.11-7.1

unixODBC-devel-2.2.11-7.1

unixODBC-2.2.11-7.1

2.配置 /etc/odbc.ini

[myodbc3]

Driver = /usr/lib64/libmyodbc5.so

Description = MySQL ODBC 5.1 Driver DSN

SERVER = 192.1.1.200

PORT = 3306

USER = bi

Password = 123456

Database = chanpin

OPTION = 3

SOCKET =

charset = utf8

3.配置/etc/odbcinst.ini

[MySQL]

Description = ODBC for MySQL

Driver = /usr/lib64/libmyodbc5.so

Setup = /usr/lib64/libodbcmyS.so

FileUsage = 1

4.测试连接

[root@rac1 ~]# isql myodbc3 -v

+---------------------------------------+

| Connected! |

| |

| sql-statement |

| help [tablename] |

| quit |

| |

+---------------------------------------+

SQL

5.配置oracle环境中庆变量

export ORACLE_BASE=/u01/app/oracle

export GRID_HOME=/u01/grid

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=rac1

export BASE_PATH=/usr/sbin:$PATH

export PATH=$ORACLE_HOME/bin:$BASE_PATH:/usr/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib:$ORACLE_HOME/hs/lib:/usr/lib64

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

ODBCINI=/etc/odbc.ini; export ODBCINI

ODBCSYSINI=/etc; export ODBCSYSINI

ODBCINSTINI=/庆培伏etc/odbc.ini

export ODBCINSTINI

6.配置监听

listener.ora:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.100)(PORT = 1522))

)

)

SID_LIST_LISTENER=

(SID_LIST=

(SID_DESC=

(PROGRAM = dg4odbc)

(SID_NAME= myodbc3)

(ORACLE_HOME= /u01/app/oracle/product/11.2.0/db_1)

(ENVS=LD_LIBRARY_PATH=/u01/app/oracle/product/11.2.0/db_1/lib:/lib:/usr/lib:/usr/local/lib:/u01/app/oracle/product/11.2.0/db_1/hs/lib:/usr/lib64)

)

)

tnsname.ora:

myodbc3=

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.100)(PORT = 1522))

(CONNECT_DATA =

(SID = myodbc3))

(HS = OK)

)

7.配置odbc监听

路径:$ORACLE_HOME/hs/admin

注意:名字要跟odbc配置的名字一样 我这里是myodbc3

[oracle@rac1 admin]$ cat initmyodbc3.ora

HS_FDS_CONNECT_INFO = myodbc3

HS_FDS_TRACE_LEVEL = ON

HS_FDS_TRACE_FILE_NAME = odbc_test.log

HS_FDS_TRACE_LEVEL = 4

HS_FDS_SHAREABLE_NAME = /usr/lib64/libodbc.so

HS_FDS_SUPPORT_STATISCTICS = FALSE

HS_LANGUAGE = AMERICAN_AMERICA.WE8ISO8859P1

HS_FDS_SQLLEN_INTERPRETATION=32

set ODBCINI = /etc/odbc.ini

8.测试下监听

[oracle@rac1 admin]$ tnsping myodbc3

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 25-NOV-2014 03:02:16

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

Used parameter files:

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.100)(PORT = 1522)) (CONNECT_DATA = (SID = myodbc3)) (HS = OK))

OK (0 msec)

9.创建dblink

SQLcreate public database link myodbc connect to "bi" identified by "123456" using'myodbc3';

SQL select count(*) from "t_user"@myodbc;

COUNT(*)

----------

53980

创建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 =

oracle 局域网之间的库 datalink怎么创建

当需要在两个Oracle库中取数据进行比较或更新时,就会用到DataLink。

建立方法如下:

Create dababase link 连接名@限定词 connect to 数据库用户 identified by 密码 using 服务名.;

建立时需要注意以下问题:

一、global_names参数

在服务器上创建远程连接,则需要根据服务器中的global_names参数情况来创建DBLink:

a. 如果Global_names=true,则创建的远程连接必需设置如下:

1、创建的连接名必侍棚需是目标数孝谈宽据库中的global_name的值,可以通过:select * From global_name的方式进行获取。

2、如果目标数据库和发起连接的数据库在同一台机器上,则需要在创建的远程连接名后加@和限定词。其格式如上,否则不用加 “@限定词”

b. 如果global_names=false,则创建的远程连接需设置如下:

1、连接名可以任意取。

2、如果连接名取成了与目标数据库实例名或global_name值相同时,而且目标数据库和发起连接的数据库在同一台机器上,也必需加上连接限定巧亮词。

关于oracle创建dblink和oracle创建dblink连接超时的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表