Oracle的封锁机制分布式管理

发表于:2007-07-13来源:作者:点击数: 标签:
物理上存放于网络的多个ORACLE 数据库 ,逻辑上可以看成一个单个的大数 据库。用户可以通过网络对异地数据库中的数据同时进行存取,而 服务器 之间 的协同处理对于工作站用户及应用程序而言是完全透明的: 开发 人员无需关心 网络的链接细节、无需关心数据在

物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单个的大数

据库。用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间

的协同处理对于工作站用户及应用程序而言是完全透明的:开发人员无需关心

网络的链接细节、无需关心数据在网络接点中的具体分布情况、也无需关心服

务器之间的协调工作过程。

    数据库之间的链接建立在DATABASE LINK上。要创建一个DB LINK,必须先

在每个数据库服务器上设置链接字符串。

   例如,深圳SUN平台ORACLE数据库,在/var/opt/oracle/tnsnames.ora中有以下

一条和北京的数据库链接tobeijing,格式如下:

链接字符串的设置

说       明

tobeijing=(description= database link名称:tobeijing
(address=(protocol=tcp) 采用tcp/ip协议
(host=www.bj.col.com.cn) 欲链接主机名称或IP地址
(port=1521)) 网络端口1521
(connect_data=(sid=oracle7))) 安装ORACLE采用的sid

然后进入系统管理员SQL>操作符下,运行命令:

SQL>create public database link beijing connect to scott identified by tiger

using 'tobeijing';

则创建了一个以scott用户和北京数据库的链接beijing,我们查询北京的scott数据:

SQL>select * from emp@beijing;

这样就可以把深圳和北京scott用户的数据做成一个整体来处理。

为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象synonym

SQL>create synonym bjscottemp for emp@beijing;

于是就可以用bjscottemp来替代带@符号的分布式链接操作emp@beijing。

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

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

建ORACLE快照日志:

SQL>create snapshot log on table3 with primary key;

建快照:

SQL>create snapshot table3beijing  refresh force start with sysdate

next sysdate+1/24 with primary key as select * from table3@beijing;

ORACLE的快照刷新方式refresh有三种:

fast 快速刷新,用snapshot log,只更新时间段变动部分
complete 完全刷新,运行SQL语句
force 自动判断刷新,介于fast和complete之间


  

原文转自:http://www.ltesting.net