物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单一的大型数据库,用户可以通过网络对异地数据库中的数据进行存取,而服务器之间的协同处理对于工作站用户及应用程序而言是完全透明的,开发人员无需关心网络的链接细节、数据在网络节点中的具体分布情况和服务器间的协调工作过程。

数据库之间的链接建立在DATABASE LINK上。要创建一个DATABASE LINK,必须首先在建立链接的数据库上设置链接字符串,即配置一个远程数据库的本地网络服务名。

链接字符串的配置参见《客户端连接服务器》一节。

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

SELECT * FROM GLOBAL_NAME;

修改可以用以下语句来修改参数值:

ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;

<1>、当数据库参数global_name=false时,就不要求数据库链接名称跟远端数据库名称一样。

oracle数据库之间进行连接通讯。

创建数据库链接的语法如下:

CREATE [PUBLIC] DATABASE LINK link

CONNECT TO username IDENTIFIED BY password

USING ‘connectstring’

其中:

--demona为用net8 easy config创建的连接字符串

目的方数据库的init.ora文件中的global_names设为false

重新启动数据库设置才能生效

或者用sys用户执行

注意:创建数据库链接的帐号必须有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系统权限,用来登录到远程数据库的帐号必须有CREATE SESSION权限。这两种权限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK权限在DBA中)。

一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。

创建数据库链接时,还可以使用缺省登录方式,即不指定远程数据库的用户名和密码:

create public database link zrhs_link

using ‘zrhs’;

在不指定用户名和口令的情况下,ORACLE使用当前的用户名和口令登录到远程数据库。

USING后面指定的是链接字符串,也就是远程数据库的网络服务名,这个服务名保存在TNSNAMES.ORA文件中,在该文件中定义了协议、主机名、端口和数据库名。

删除数据库链接的语句是:

DROP [PUBLIC] DATABASE LINK zrhs_link

数据库链接的引用

一般情况下引用数据库链接,可以直接将其放到调用的表名或视图名称后面,中间使用一个 @ 作为分割符:

SELECT * FROM worker@zrhs_link;

对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:

CREATE SYNONYM worker_syn FOR worker@zrhs_link;

还可以建立一个本地的远程视图,方便使用:

CREATE VIEW worker AS SELECT * FROM worker@zrhs_link where… ;

现在本视图可与本地数据库中的任何其它视图一样对待,也可以授权给其它用户,访问此视图,但该用户必须有访问数据库链接的权限。

对于另外一种情况,所要访问的表不在数据库链接中指定的远程帐户下,但该帐户有访问该表的权限,那么我们在表名前要加上该表的用户名:

SELECT * FROM camel.worker@zrhs_link ;

<2>、当数据库参数global_name=true时,那就要求数据库链接名称跟远端数据库名称一样

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

SELECT * FROM GLOBAL_NAME;

atabase link(dblink)--数据库链路

创建dblink的语法:

sql>create database link 数据库链路名

connect to 用户名 identified by 口令

using '主机字符串名';

如:

sql>create database link ora9i.us.oracle.com ### 这里的us.oracle.com为oracle默认域名 ###

connect to scott identified by tiger

using 'sun';

1)dblink名必须与远程数据库的全局数据库名(global_name)相同;

2)用户名,口令为远程数据库用户名,口令;

3)主机字符串为本机tnsnames.ora中定义的串;

4)两个同名的数据库间不得建立dblink;

然后,你就可以通过dblink访问远程数据库了。

如:

sql>select * from 表名@ora9i.us.oracle.com;

还可以建立快照(snapshot)通过dblink实现远程数据自动传输。

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

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

http://hi.baidu.com/mataoxf/blog/item/86e2be51db2a538e8d54306a.html

------------------修改默认参数

SQL> SHOW PARAMETER GLOBAL_NAMES

global_names boolean

TRUE

select * from v$parameter where name = 'global_names';

SQL> ALTER SYSTEM SET GLOBAL_NAMES=FALSE;

或者修改D:\Oracle\admin\einfo\pfile\init.ora文件中global_names = false,重启数据库。

SQL> SELECT * FROM DUAL@MASTER.COM;

X

SQL> ALTER SYSTEM SET GLOBAL_NAMES=TRUE;

系统已更改。

SQL> SELECT * FROM DUAL@MASTER.COM;

SELECT * FROM DUAL@MASTER.COM

ERROR 位于第 1 行:

ORA-02085: 数据库链接MASTER.COM与ORA9I相连结

SQL> ALTER DATABASE RENAME GLOBAL_NAME TO MASTER.COM;

数据库已更改。

SQL> SELECT * FROM DUAL@MASTER.COM;

oracle 手动链库,Oracle 数据库干数据库链(Database links)的两个例子相关推荐

  1. Oracle手动建库常见问题

    Oracle手动建库常见问题 BLOG文档结构图 前言部分 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 10G和11 ...

  2. oracle手动 建库_Oracle手动建库常见问题

    Oracle手动建库常见问题 BLOG文档结构图 前言部分 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①10G和11g ...

  3. oracle手动 建库_ORACLE 手动建库

    ORACLE 手动建库 ORACLE10GR2手动建库大致分为以下几个步骤 编辑.bash_profile文件,设置环境变量 创建所需目录结构 创建初始化参数文件 执行建库脚本 下面以创建test数据 ...

  4. oracle手动 建库_Oracle Create the Database for 11g(手动创建数据库)

    Oracle Create the Database for 11g(手动创建数据库,附整个过程自动运行脚本) 这里说的创建数据库并非是dbca调用OUI图形来进行的,而是手动建库方式. 介绍一下操作 ...

  5. oracle 10g 关库,Oracle Db10g 启动和关闭数据库

    启动数据库的步骤: 1.创建并启动例程 当例程启动时,根据参数文件给内存结构和服务进程分配.初始化和启动.此时,用户可以与数据库通信.但是,不能访问数据库中任何对像(如表.视图等等),原因是例程还没有 ...

  6. oracle 12C 多库,Oracle12c多租户数据库 - PDB数据库的unplug及plug 2

    3.  拔出(unplug)mypdb2这个PDB数据库(即在源CDB中删除) [oracle@gtsv2088r test12]$ sqlplus / as sysdba SQL> show ...

  7. oracle手动 建库_Oracle 手工建库步骤

    可参考官方文档操作 管理员指南创建并配置数据库 使用建库语句创建数据库 1-14为官方文档手工建库步骤,9为建库语句 步骤1:指定实例标识符(SID) 步骤2:确保设置了所需的环境变量 第3步:选择数 ...

  8. oracle手动 建库_Oracle手动建库过程

    最近在网上看到很多初学Oracle或是从旧版的Oracle升级到10G的朋友们都问如何在Oracle 10G里手工建库的问题.今天正好有空,于是乎把在Oracle 10G里手工建库的全过程写出来,供各 ...

  9. oracle手动执行归档,Oracle手动归档模式的代码描述是怎样的呢?

    Oracle在开启归档模式后,还能设置手动归档,archive log list命令并没有如实反映当前的归档模式,需要在v$database中查询log_mode.对于standby数据库来说,设置O ...

  10. oracle中级题库,Oracle选择题题库

    <Oracle选择题题库>由会员分享,可在线阅读,更多相关<Oracle选择题题库(6页珍藏版)>请在装配图网上搜索. 1.Oracle 选择题题库1. 以下命令哪个是 SQL ...

最新文章

  1. Android逆向之路---Faceu的登录功能真的只提交了用户名和密码吗
  2. mysql解决Value ‘0000-00-00 00:00:00’ can not be represented as java.sql.Timestamp
  3. IIS出现server application error,请问怎么解决?
  4. java方法重载编程_学java教程之普通方法重载
  5. 每日一皮:CPU的新用途,要不要试试?
  6. Spring Data:企业级Java的现代数据访问技术(影印版)
  7. HTML连载70-相片墙、盒子阴影和文字阴影
  8. JS、javascript计算两个时间差
  9. RTT时钟管理篇——阻塞延时和时基更新函数
  10. opencv的Mat与Eigen的Matrix相互转换
  11. Altera 在线资源使用
  12. vue给标签动态添加元素_动态添加dom元素,并绑定vue事件
  13. word转chm文件
  14. 百度AI 开放平台 - 各大AI 开放平台开放能力解读和分析,技术的应用场景,技术前景
  15. OOC 面向对象C语言编程实践
  16. Windpy + Pycharm(No such file报错解决方式)
  17. Ubuntu操作系统的安装
  18. 研究生学人工智能有未来吗?点击快速了解就业前景
  19. Linux系统安装教程图文详解
  20. 关闭java安全警告_总是弹出下面这个安全警告,请问在哪里可关掉?

热门文章

  1. 关于TP遇到的问题点和解决办法
  2. GitHubPage博客搭建学习专栏
  3. vue 状态管理vuex(九)
  4. 【学习笔记】深入理解Linux内核第三版 ——第二章 内存寻址
  5. IDEA集成MAVEN 报错
  6. Handler 、 Looper 、Message
  7. 常用linux系统管理工具
  8. 怎样使用Javascript操作XMLDOM才能兼容IE、FireFox浏览器呢?
  9. android获取按钮上的字,Android--在一个Button上显示不同类型的字体
  10. C/C++ 基础算法1