Oracle10gR2流复制操作简明手册.doc

上传人:hw****26 文档编号:3137524 上传时间:2019-05-22 格式:DOC 页数:41 大小:431.50KB
下载 相关 举报
Oracle10gR2流复制操作简明手册.doc_第1页
第1页 / 共41页
Oracle10gR2流复制操作简明手册.doc_第2页
第2页 / 共41页
Oracle10gR2流复制操作简明手册.doc_第3页
第3页 / 共41页
Oracle10gR2流复制操作简明手册.doc_第4页
第4页 / 共41页
Oracle10gR2流复制操作简明手册.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、Oracle10gR2 流复制简明操作手册作者:夏明伟二 OO 八年十月夏明伟 第 1 页 2019-5-16目 录一、 ORACLE10GR2 STREAMS 概念与原理 .4二、 准备流复制环境 .52.1 创建流复制实验用的源目数据库 .62.2 源数据库置于归档模式 .62.3 修改初始化参数 .62.4 创建流复制管理员 .72.5 创建数据库链路 .7三、 数据库级复制设置 .73.1 配置 directory .73.2 在源库端执行 maintain_global .83.3 验证复制是否成功 .9四、 用户级复制设置 .94.1 在源库端创建用户 .94.2 配置 direc

2、tory .104.3 在存放日志文件端执行 maintain_schemas.104.4 验证复制是否成功 .11五、 表级复制设置 .115.1 在源库端创建测试表 .115.2 配置 directory .115.3 在存放日志文件端执行 maintain_tables.115.4 验证复制是否成功 .12六、 记录或字段级复制设置 .136.1 单向表级流复制中使用子集规则和转换规则的例子 .136.1.1 手工建立 Capture、 Apply 和 Propagation 流及相应的队列 .136.1.2 案例 1:考虑队列间的迁移的水平分割复制 .166.1.3 案例 2:不考虑队

3、列间的迁移的水平分割复制 .176.1.4 案例 3:使用 Rule-base Transformation 的垂直分割复制 .18七、 流复制的监控 .21夏明伟 第 2 页 2019-5-167.1 查看数据库对补充日志的设置情况 .217.2 获取数据库的全局名 .217.3 获取数据库的核心初始化参数值 .217.4 查询数据库中所有流的规则定义 .227.5 查询流进程对应的正、负向规则集和规则 .227.6 查询流进程是否存在空规则集 .227.7 查询数据库中定义的所有队列 .227.8 查询所有包含有转换函数的规则及规则集 .227.9 查询所有包含有 handle 的应用及库

4、表 .237.10 查询所有设置了补充日志的表 .237.11 查询所有设置了补充日志的列 .237.12 查询流复制的警告信息 .237.13 查询与流有关的数据对象的建立时间 .237.14 检查执行 MAINTAIN_TABLE|SCHEMA|GLOBAL脚本的错误语句 .237.15 检查执行 MAINTAIN_TABLE|SCHEMA|GLOBAL脚本时的错误信息 .237.16 检查 MAINTAIN 脚本的每一步 forward 语句和 undo 语句及状态 .237.17 查询所有队列当前缓存的记录数及累计入列记录数 .247.18 查询流复制不支持的表 .247.19 查询流

5、复制处理的数据量 .247.20 查询已定义的捕获流状态及对应的捕获规则 .247.21 查询已定义的捕获进程的状态 .247.22 查询捕获进程中的 SCN 情况及状态和错误信息 .247.23 查询捕获进程的参数设置情况 .257.24 查询为捕获进程注册的日志文件 .257.25 查询被捕获的表及其上补充日志的设置情况 .257.26 查询被捕获的用户及其上补充日志的设置情况 .257.27 查询被捕获的数据库及其上补充日志的设置情况 .257.28 查询定义的传播流状态及对应的传播规则 .257.29 查询定义的应用流状态及对应的应用规则 .257.30 查询定义的应用进程的状态 .2

6、57.31 查看应用进程的参数值 .267.32 查询应用进程的最新应用时间 .267.33 查询流应用时的报错信息 .267.34 查询表级序列化的 SCN 值 .267.35 查询数据库、用户级序列化的 SCN 值 .267.36 待定 .26八、 流复制的维护 .278.1 启动 Apply,Propagation 和 Capture 进程的语句 .278.2 停止 Apply,Propagation 和 Capture 进程的语句 .278.3 删除 Apply,Propagation 和 Capture 流及队列和相应的规则集和规则的语句 .278.4 在本地数据库中清除整个流配置

7、.288.5 数据库级实例化过程 .28夏明伟 第 3 页 2019-5-168.6 用户级实例化过程 .288.7 库表级实例化过程 .298.8 用 rman 进行数据库复制 .298.9 修改应用进程参数的方法 .308.10 调整捕获进程的并行度 .308.11 调整 LogMiner 使用的内存空间 .308.12 调整检查点频率 .318.13 优化应用时的 update 语句 .318.14 通过 MAINTAIN 脚本自动创建流复制失败后断点续建的方法 .318.15 通过 MAINTAIN 脚本自动创建流复制失败后回退的方法 .318.16 为日志挖掘建立独立的表空间 .31

8、8.17 在源库端建立心跳表的方法 .318.18 智能启动某流进程的例子 .318.19 清除指定应用进程的错误队列 .328.20 清除错误队列中指定应用事务的错误 .328.21 重新应用错误队列中指定的出错事务 .328.22 重新应用错误队列中所有出错事务 .328.23 查询应用错误队列中所有错误记录的值的方法 .32九、 补充知识 .379.1 规则集和流客户端行为一览表 .379.2 如何查看归档日志中的内容 .37夏明伟 第 4 页 2019-5-16一、 Oracle10gR2 Streams 概念与原理Streams 的原理其实很简单,通过 logmnr 技术从 orac

9、le 的 10g 中解析出数据,然后传递到目标库并应用,从而将源库的数据复制到目标库。整个的复制过程可以分成三个步骤:捕获(capture),传播(propagation)和应用(apply),利用高级队列(advance queue)来将这三个步骤的数据串起来,通过在步骤中定义不同的规则(rule) 来控制需要复制的数据。复制可以基于全库,基于表空间,基于用户或者基于表,具有相当大的灵活性。捕获进程可以直接在源库捕获日志,也可以先将日志(归档日志或者联机日志) 传递另外的库中进行捕获,这就是本地捕获(local capture)和异地捕获(downstream capture)。对于异地捕获

10、,根据是传递归档日志还是联机日志,可以分为普通的异地捕获和实时异地捕获。日志的传递其实和 DataGuard 中是一样的机制。流复制的简单过程描述如下:首先捕获进程从日志解析出数据,封装在一个个的逻辑改变记录(LCR:logical change record)中,将这些 lcr压进捕获队列中,然后传播进程从捕获队列取得数据压进应用队列中,最后应用进程从应用队列取得 LCR 并应用到目标库中。LCR 可以分为 row LCR(DML 操作记录)和 DDL LCR(DDL 操作记录),所以 streams 复制可以支夏明伟 第 5 页 2019-5-16持 DDL 操作的复制。Streams 复

11、制需要先进行一次初始化建立基线,然后在此基础上复制增量数据。对于全库的初始化,可以使用 RMAN。表空间复制的初始化可以使用 transport tablespace,而对于用户复制和表复制,则可以使用 exp/imp或者 expdb/impdp。Streams 配置和管理的相关 packagedbms_steams_admdbms_capture_admdbms_propagation_admdbms_apply_admdbms_rule_admStreams 主要相关数据字典dba_streams_administratordba_capturedba_capture_parameters

12、dba_propagationdba_registered_archived_logdba_applydba_apply_confict_columnsdba_apply_dml_handlersdba_apply_enqueuedba_apply_errordba_apply_executedba_apply_parametersdba_apply_progressdba_rulesdba_rule_setsdba_rule_set_rulesV$STREAMS_CAPTUREV$STREAMS_POOL_ADVICEV$STREAMS_TRANSACTIONV$PROPAGATION_RE

13、CEIVERV$PROPAGATION_SENDERV$STREAMS_APPLY_COORDINATORV$STREAMS_APPLY_READERV$STREAMS_APPLY_SERVER二、 准备流复制环境夏明伟 第 6 页 2019-5-162.1 创建流复制实验用的源目数据库注:源目数据库可以在同一台机器也可以在不同的机器。$export DISPLAY=local_ip:0.0 在客户端启动 Xmanager-xbrowser/xstart$dbca 在客户端的图形界面按提示进行注:回退方法:$export DISPLAY=local_ip:0.0 在客户端启动 Xmanager

14、-xbrowser/xstart$dbca 在客户端的图形界面按提示进行数据库删除操作2.2 源数据库置于归档模式注:如果是双向复制,则每个库都是源库,都需要处于归档模式。SQL archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination USE_DB_RECOVERY_FILE_DESTOldest online log sequence 1527Next log sequence to archive 1529Current log sequence 1529注:设置

15、数据库处于归档模式的语句如下:SQLstartup mount;SQLalter database archivelog;SQL alter database open;注:shutdown 时不能用 abort。2.3 修改初始化参数global_names=true必须设置 global_names 为 true,然后在后面创建 database link 时的名字必须使用 global namecompatible=10.2.0.1.0要使用 10gR2 版本的新特性,则必须设置 10.2.0.1.0 以上streams_pool_size=200mstreams pool 需要根据捕获

16、进程,传播进程,应用进程和队列的数量和并行度来确定。如果 statistics_level设置为 typical 或者 all,运行一段时间后可以根据 v$streams_pool_advice 来调整该参数,若使用自动内存管理也可设为 0。job_queue_processes=4aq_tm_processes=4open_links=4夏明伟 第 7 页 2019-5-16用如下语句设置 db_domain(因 db_domain 不可动态修改,故修改后需要重启数据库, 若源目数据库都没有设置 db_domain,也可不考虑设置 ):ALTER SYSTEM SET db_domain=n

17、et SCOPE=SPFILE;ALTER DATABASE RENAME GLOBAL_NAME TO ;注 1:有时可能还要修改 listener.ora,加如下段:(SID_DESC =(SID_NAME = rep1)(ORACLE_HOME = F:oracleproduct10.1.0Db_2)(GLOBAL_NAME = rep1.NET)注 1:GLOBAL_NAME 改回来的语句如下:UPDATE SYS.PROPS$ SET VALUE$ = rep1 WHERE name =GLOBAL_DB_NAME;commit;源库与目标库的 tnsnames.ora 配置,确保正

18、确,可用 tnsping 通。参数设置查看语句如下:SELECT * FROM v$parameter WHERE NAME IN(global_names,compatible,streams_pool_size, shared_pool_size,sga_max_size,job_queue_processes,aq_tm_processes,open_links) ORDER BY NAME;设置语句参考如下:ALTER SYSTEM SET aq_tm_processes=4 SCOPE=BOTH;ALTER SYSTEM SET global_names=true SCOPE=BOT

19、H;2.4 创建流复制管理员在源库和目标库都需要创建,创建全库复制时流复制管理员用户不同步。SQLPLUS / AS SYSDBACREATE USER strmadm IDENTIFIED BY strmadm;GRANT CONNECT,RESOURCE,DBA TO strmadm;EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE(strmadm); /* 赋予流管理特权 */2.5 创建数据库链路注:若流复制是基于数据库级的此步可在数据库整库复制后再做一次。在流复制管理员用户下创建源库到目标库的 db linkCREATE DATABASE LI

20、NK rep2 CONNECT TO strmadm IDENTIFIED BY strmadm USING rep2;在流复制管理员用户下创建目标库到源库的 db linkCREATE DATABASE LINK rep1 CONNECT TO strmadm IDENTIFIED BY strmadm USING rep1;注:database link 名必须为 global_name 名,否则不能访问。 global_name 是由 db_name.db_domain 构成的。通过如下语句可得到数据库的 global_name:select * from global_name;三、 数据库级复制设置夏明伟 第 8 页 2019-5-163.1 配置 directorystrmadmrep1:sql CREATE DIRECTORY dir_source AS /data;strmadmrep2:sql CREATE DIRECTORY dir_dest AS /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。