使用oracle数据库高级复制中最简单的功能

上传人:xzh****18 文档编号:46706175 上传时间:2018-06-27 格式:PDF 页数:2 大小:147.41KB
返回 下载 相关 举报
使用oracle数据库高级复制中最简单的功能_第1页
第1页 / 共2页
使用oracle数据库高级复制中最简单的功能_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《使用oracle数据库高级复制中最简单的功能》由会员分享,可在线阅读,更多相关《使用oracle数据库高级复制中最简单的功能(2页珍藏版)》请在金锄头文库上搜索。

1、使用Oracle数据库高级复制中最简单的功能 疯狂代码 http:/CrazyC :http:/CrazyC 这篇论坛文章(赛迪网技术社区)根据一个实例着重讲解了使用Oracle数据库高级复制功能的具体方法及 步骤,详细内容请参考下文: 前言 日益增长的分布式应用需求要求实现更好分布式的软件环境,不断推动着 分布式技术的进步。Oracle数据复制是实现分布式数据环境的一种技术,通过在不同的物理站点拷贝数据来建 立分布式数据环境。它与分布式数据库不同,在分布式数据库中,虽然每个数据对象也对所有的站点可用,但 是特定的数据对象只存在于一个特定的站点中。而数据复制实现所有的站点都有相同数据对象的可用

2、拷贝。 在 一个典型的分布式商业应用中经常需要把个地区的数据备份到总部的数据库中,一方面可以作为一种备份方式 ,另一方面也方便总部应用中的综合统计。这是Oracle数据复制中的简单应用,本文将以这样一个例子,讲述 如何实现Oracle数据复制。 实际情况是,A公司总部在北京,有三个营业部分别位于上海 (ORACLE.SHANGHAI.COM)、杭州(ORACLE.HANGZHOU.COM)和武汉(ORACLE. WUHAN.COM)。三个营 业部的软件系统相同,数据库结构也相同。现在需要把三个营业部的数据全部备份到总部的数据库中。 准备工 作 在进行复制之前需要准备的东西很多,当然最基础就是网

3、络必须畅通,之后需要收集一些复制环境的基本信 息: 1 需要复制的数据库站点的数量 2 每个站点的Oracle版本号 3 每个需要复制的数据库的大小 4 每个数据库所使用的字符集 5 每个需要复制的数据所用的方案名 收集完环境信息,可以开始建立总部 的集中数据库,集中数据库要求版本高于所有主战点的版本,最好所有的数据库都是用相同的字符集。建好库 后为每个主站点的备份数据分别建一个表空间,表空间大于需要复制的数据量,至于预留以后的发展空间视实 际情况而定。 为每个主站点的对应复制数据建立方案,如果各个主站点所使用的方案名不同,在集中数据库站 点分别建立名称相同的对应方案。否则为各主站点的复制数据

4、分别建立相应的方案名。实际情况是后者,各营 业部的数据库都是用Oracle的方案名,这里我们建立三个对应方 案:SHORACL、HZORACL 和WHORACL。 所有数据库的版本都是9i。 基本概念 复制之前先解释一下复制中的几个概念: 1主站点(Mater Site):在复制过程中提供数据源的站点。如上图中的上海数据库站点。 2实体化视图站点(Materialized View Site):实体化视图复制中的目标站点。如上图中的北京数据库站点。 3多主体站点复制 (Multimaster Replication):复制环境中的站点都是主站点,对复制的数据库对象有相同的管理权限。 4实体化视

5、图复制(Materialized View Replication): 一个主体站点提供源复制对象,一个实体化视图站 点拷贝主站点数据。 5实体化视图(Materialized View):在实体化视图站点为每个复制表或者视图建立一 个对应的表保存相应的数据,该表只能通过Oracle的复制机制进行增删改数据的操作。 6 快速刷新、完全刷 新和强制刷新:复制过程中的三种刷新方式。快速刷新只复制源数据对象的改变部分;完全刷新每次都拷贝一 遍源数据对象;强制刷新是数据库的一个折衷方案,如果快速刷新失败则使用完全刷新。 7 主体组 (Master Group):主体站点中被复制的源数据对象的集合。 8

6、 实体化视图组(Materialized View Site):实体化视图站点中复制对象的集合。 9 实体化视图日志(Materialized View Log):实体化视图 复制中使用快速刷新时记录主体源数据对象操作日志的表。 同步复制和异步复制就不解释了,本例采用每天一 次的异步复制。 进行复制 配置好本地服务名分别为:上海站点:SH,杭州站点:HZ,武汉站点:WH,北 京站点:BJ,进入没有登录的sqlplus,让我们开始复制! 一设置主站点 这里以上海主站点设置为例。 1连接主站点,创建复制管理员并授予相应的权限,复制管理员是管理整个复制环境并创建复制对象的用户。 只有数据管理员可以建

7、立主体组和实体化视图组。 connect system/passwdSH create user repadmin identified by repadmin; begin dbms_repcat_admin.grant_admin_any_schema( username=repadmin); end; / grant comment any table to REPADMIN; grant lock any table to REPADMIN; 后面的两个grant语句使复制管理员可以为任何表建立实体化视图日志。如果想改用户可以使用 视图管理器,还需要下面的命令: grant selec

8、t any dictionary to REPADMIN; 2注册传播方,传播方会将 主体站点的延迟事务队列推入其他主体站点或者实体化视图站点。 begin dbms_defer_sys.register_purpagator(username=repadmin); end; 3调度清除作业,该作业会定 时清除延迟事务队列并用传播方将延迟事务推入其他主体站点或者实体化视图站点。先更换用户: disconnect; connect repadmin/repadminSH; begin dbms_defer_sys.schedule_purge( next_date=sysdate,interva

9、l=sysdate + 1,delay_seconds=0); end; next_date:下一次执行日期 ,sysdate表示立即。 interval:间隔时段,sysdate + 1表示间隔一天,sysdate+ 1/24表示间隔一小时 delay_seconds:当延迟队列没有延迟事件时停止被次清除操作的延迟时间。 4为实体化视图站点建立复制 代理。创建复制代理用户并授予视图接受方权限。复制代理是复制接收方连接主体站点的用户 disconnect; connect system/passwdSH; create user proxy_bjoracle identified by pro

10、xy_bjoracle; begin dbms_repcat_admin.register_user_repgroup( user_name=proxy_bjoracle, privilege_type = proxy_snapadmin,list_of_gnames = NULL); end; / grant select_catalog_role to proxy_bjoracle; 5 创建主体组。 disconnect; connect repadmin/repadminSH; begin dbms_repcat.create_master_repgroup(gname=sh_rep)

11、; end; / 6 向主体组中添加复制对象 a) 添 加表: begin dbms_repcat.create_master_repobject( gname=sh_rep, type=TABLE, oname= CREDIT_CARD sname=SHORACL use_existing_object=TRUE, copy_rows=TRUE); end; b) 添加索引 begin dbms_repcat.create_master_repobject( gname=sh_rep, type=INDEX, oname= INDEX_CREDIT_CARD sname=SHORACL us

12、e_existing_object=TRUE, copy_rows=FALSE); end; / 7 如果添加的表 没有主键需要设置可以代替主键的列或者列的集合 begin dbms_repcat.set_columns( sname = SHORACL, oname = CREDIT_CARD , column_list = CREDIT_CARD_ID); end; / 8 在主体组中的数据对象可以被复制之前,必须为他们生成复制支持。该方法为复制创建必要的触发器、包或者 存储过程: begin dbms_repcat.generate_replication_support( sname=

13、SHORACL, oname= CREDIT_CARD, type=TABLE, min_communication=TRUE); end; / 9 为快速刷新创建实体化 视图日志: create materialized view log _disibledevent=“TEXT-INDENT: 2em“本文只是使用了 Oracle高级复制中最简单的功能,Oracle的高级复制还提供可更新视图和复杂的只读实体化视图复制,当然并 不是我们都要去用高级复杂强大的功能,在具体应用的时候,还要根据系统功能和性能需求,选择适当的复制 技术。 2008-6-12 17:02:59 疯狂代码 http:/CrazyC

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号