--添加extract进程出错
GGSCI > add extract extcus44,tranlog,beginnow
2014-04-01 13:10:01 WARNING OGG-01756Cannot register EXTRACT EXT1 with database because of the following SQL error: OCIError ORA-06550: line 1, column 3128:PL/SQL: ORA-00942: table or view does notexist
ORA-06550: line 1, column 3117:
PL/SQL: SQL Statement ignored (status = 0).See Extract user privileges in the Oracle GoldenGate for Oracle Installationand Setup Guide. You can manually register this group with the REGISTER EXTRACTcommand.
EXTRACT added.
--注册extract进程
GGSCI (EPCDB1) 4> REGISTER EXTRACT extcus44 LOGRETENTION居然失败了,看报错是由于权限的原因。
查了下文档,说是要用sysdba权限用户进行注册。
2014-04-01 13:17:00 INFO OGG-01749 Successfully registered EXTRACT EXTCUS44 to start managing log retention at SCN 13374282.
使用sys用户,注册成功!
问题分析:
在我以往的进程配置中,从来没有出现过这个情况,一般进程的创建根本不需要这么高的权限,没有register这一过程,一般借助OS认证就OK了,不需要dblogin一个SYSDBA权限的用户。那为什么这次需要进行注册?在以前的OGG 11.1官方文档中均无介绍。
查询最新的官方文档(2011-04-20发布的版本),才发现register相关的资料。Register Extract是开启了新版本的一个新特性:Extract通过借助RMAN来保留Extract恢复所需要的数据库归档日志,相当于开启一个日志保留策略。适用于10.2以上版本的Oracle。通过Unregister Extract关闭,对于其他功能并无影响。
深层思考:
了解GoldenGate或者同类工具的同学们都知道,通过日志捕获事务的方式虽然性能优良,但是它毕竟是依赖于数据库日志信息的,势必对数据库日志维护带来新的挑战。单独通过RMAN或者其他备份工具管理数据库备份和归档日志,很有可能发生事务日志信息还未被GoldenGate抓出就已经被清除了,导致同步失败。要避免出现这种情况,以往只能调整日志冗余策略(比如增加日志保留时间,牺牲大量的磁盘空间),或者通过编写复杂的脚本提取GoldenGate所读到的RBA来决定需要保留的归档日志。Register Extract的新特性,应该是为了解决这一难题,以方便日志管理和防止数据丢失问题。虽然目前官方文档并没有对这个特性的深入介绍,具体的使用效果还需要进一步的验证,但这个特性无疑是值得我们关注的。
参考文档:http://oracle-abc.wikidot.com/zh:oracle-golden-gate-setup-and-solutions