IT忍者神龟之Database Link详解

-创建 CREATE public database link test_link CONNECT TO scott IDENTIFIED BY tiger using ‘(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME
= LEE) ) )‘; --使用 select ename from [email protected]_link; --删除 drop public database link TEST_LINK;


一:dblink创建:

1、已经配置本地服务

create public database

  link  toBeJing connect to scott

  identified by tiger using ‘BEJING‘

数据库连接字符串‘BEJING‘是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义.

2、直接建立链接

create database link toBeJing

   connect to scott identified by tiger

   using ‘(DESCRIPTION =

   (ADDRESS_LIST =

   (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X )(PORT = 1521))

   )

   (CONNECT_DATA =

   (SERVICE_NAME = BJORCL)

   )

   )‘;

create database link toIAS

???? connect to ias identified by cis

???? using ‘(DESCRIPTION =

???? (ADDRESS_LIST =

???? (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

???? )

???? (CONNECT_DATA =

???? (SERVICE_NAME = cis1.com)

???? )

???? )‘;

host=数据库的ip地址,service_name=数据库的ssid。

  其实两种方法配置dblink是差不多的,我个人感觉还是第二种方法比较好,这样不受本地服务的影响。

注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。

1.先创建PUBLIC DATABASE LINK,不用指定用户和密码 

[email protected]>conn system/test

   Connected.

[email protected]>CREATE PUBLIC DATABASE LINK orcl USING ‘BEJING‘;

  Database link created.

  2.再在各个用户下创建私有DATABASE LINK(同PUBLIC DATABASE LINK名称相同),指定用户和密码

[email protected]>conn scott/tiger

   Connected.

   [email protected]>CREATE DATABASE LINK orcl CONNECT TO scott IDENTIFIED BY tiger;

   Database link created.

  实际上相当于: 

 CREATE DATABASE LINK orcl USING ‘BEJING‘ CONNECT TO scott IDENTIFIED BY tiger;

db link 有3种类型,我这里只讨论其中两种,connected user和fixed user。

connected user,简单来说,连接方数据库以connected的用户来连接远程数据库。

fixed user,简单来说,连接方数据库以fixed(指定的)用户来连接远程数据库。

看看创建db link语法,你对这两种类型就比较清楚了。

创建connected  user的db link语法:

create databas link foo connect to scott identified by tiger using ‘BEJING‘ ;

创建fixed user的db link语法:

create databas link foo using ‘BEJING‘ ;

db link 的命名和global_names有关,global_name是数据库全局名称,global_name在你所管理的数据库中要保证唯一。数据库名称是db_name。数据库名称一般都取得比较短,我的习惯一般取长度4个字符,重名概率高。

所以,oracle模仿域名搞出一个global_name,global_name=db_name+db_domain。

有了global_name,就可以实现数据库命名的全局唯一。例:ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

数据库全局名称可以用以下命令查出

SELECT * FROM GLOBAL_NAME;

如果global_names=true,那么db link的命名要和远程数据库的global_name相同;

如果global_names=false,那么你可以随便命名db link。

查询global_names是true还是false,在pl/sql中的命令窗口(不是sql窗口)执行:show parameter global_names

二、dblink查询:

查看所有的数据库链接,进入系统管理员SQL>操作符下,运行命令:   

  SQL>select owner,object_name from dba_objects where object_type=‘DATABASE LINK‘;

三、dblink删除:

DROP PUBLIC DATABASE LINK toBeJing

四、dblink使用:

SELECT……FROM表名@数据库链接名;

  查询、删除和插入数据和操作本地的数据库是一样的,只不过表名需要写成“表名@dblink服务器”而已。

例:查询北京数据库中emp表数据   select * from [email protected];

五、同义词配合:

第四点中from [email protected]可以创建同义词来替代:

CREATE SYNONYM同义词名FOR 表名;

CREATE SYNONYM同义词名FOR 表名@数据库链接名;

如:create synonym bj_scott_emp for [email protected];

于是就可以用bj_scott_emp来替代带@符号的分布式链接操作[email protected]

DB LINK是独立于创建用户(USER_DB_LINKS的USERNAME)起作用的,其他用户无法使用这个连接,无权限也不能删除它。

时间: 2024-12-19 20:57:13

IT忍者神龟之Database Link详解的相关文章

Dancing Link 详解(转载)

Dancing Link详解: http://www.cnblogs.com/grenet/p/3145800.html Dancing Link求解数独: http://www.cnblogs.com/grenet/p/3163550.html 对于求解9*9的数独,貌似Dancing Linking算法并不怎么理想,还没暴搜来得快,但是16*16的数独优化就明显了. DLX求解问题过程中,难的地方在于建模,一般的优化都不怎么需要考虑,因为DLX已经考虑了优化问题.

RPM Database 实战详解

RPM 是 RPM Package Manager 的简写,是发源于 Red-hat 系统的软件管理工具,所以最初的名字叫做 Red-hat Packager Manager.目前,RPM 已发展成为业界认可的 Linux 系统软件管理工具,适用于各种基于 Linux 内核的系统,如 SUSE.Fedora.Power 等.RPM 制作灵活且方便使用,能够有效地管理软件包的安装.卸载和升级. RPM 自身维护了一个数据库(RPM Database),用于记录所有通过 RPM 安装的软件包及其文件

IT忍者神龟之Windows下MySQL解压版安装与配置

1. 到官网下载MySQL解压版,然后将mysql解压到任意路径,本例放在:D:\Program Files\mysql-advanced-5.6.14-win32 2. 设置环境变量,在系统变量Path中添加:;D:\Program Files\mysql-advanced-5.6.14-win32\bin 3. 在根目录下面有以"my-"开头的ini文件,随意复制一个放在根目录,如:my-default.ini,将文件名修改为my.ini,添加以下内容: [mysqld] #设置字

JS魔法堂:LINK元素深入详解

一.前言 我们一般使用方式为 <link type="text/css" rel="stylesheet" href="text.css"> 来引入外部层叠式样式文件,但LINK元素各属性的具体含义.资源加载行为等方面却了解不多,本文打算稍微深入一下. 由于内容较多,特设目录一坨: 二.到底有没有结束标签? 三.普通属性介绍 四.属性disabled详解 1. Attribute和Property的disabled  2. disab

【转】angularjs指令中的compile与link函数详解

这篇文章主要介绍了angularjs指令中的compile与link函数详解,本文同时诉大家complie,pre-link,post-link的用法与区别等内容,需要的朋友可以参考下 通常大家在使用ng中的指令的时候,用的链接函数最多的是link属性,下面这篇文章将告诉大家complie,pre-link,post-link的用法与区别. angularjs里的指令非常神奇,允许你创建非常语义化以及高度重用的组件,可以理解为web components的先驱者. 网上已经有很多介绍怎么使用指令

IT忍者神龟之oracle 中一个用户怎么可以不使用用户名访问其他用户的表

故事背景是这样的:一个项目大概涉及到4个工程同时开发,在我自己的工程中需要做一个报表,但是要访问另一个工程所连接的DB,当然两个工程的DB Server是在同一个IP上,也就是说我们之间只是schema不一样,那我怎样完成下面的报表的开发呢? 一开始我直接创建了一个DBLink,但是回头和同时沟通,他认为DBLink的影响过大,当两个数据库不在同一个服务器上的时候才会用到这个,当前的情况最好用schema,但是此处还是把创建DBLink的方法写出来方便记忆: create database li

ORACLE 11g 通过odbc建立连接到mysql库的database link

以前做过在oracle通过gateway建立到sqlserver的database link(详情参见:http://blog.csdn.net/mchdba/article/details/52719278),现在需要无缝访问mysql,所以也需要建立类似这样的连接通道. 1.分配mysql账号 先在mysql库上建立连接账号: GRANT SELECT ON test.* TO [email protected]'192.168.129.%' IDENTIFIED BY 'data_quer

【DataBase】sqlserver字段类型详解

bit    整型 bit数据类型是整型,其值只能是0.1或空值.这种数据类型用于存储只有两种可能值的数据,如Yes 或No.True 或False .On 或Off. 注意:很省空间的一种数据类型,如果能够满足需求应该尽量多用. tinyint   整型 tinyint 数据类型能存储从0到255 之间的整数.它在你只打算存储有限数目的数值时很有用.这种数据类型在数据库中占用1 个字节. 注意:如果bit类型太单调不能满足您的需求,您可以考虑用tinyint类型,因为这个类型相对也是比较安全的

Oracle Database Link 的创建和使用小见

假设:需要从数据库db_a通过db_link连接到db_b查询数据库b的部分相关信息 前提条件: 数据库a账户需要有创建dblink的权限,如果没有可以使用dba账户赋权限 grant CREATE PUBLIC DATABASE LINK to  username;grant DROP PUBLIC DATABASE LINK to usenrame; 数据库b账号需要有连接的权限,一般账户都有这个权限 以下是创建的语句: 基本语法: CREATE [SHARED][PUBLIC] datab