and a.XIDSQN = 1920 and a.ADDR = b.TADDR
and b.SQL_ADDRESS = c.ADDRESS
and b.SQL_HASH_VALUE = c.HASH_VALUE;
2.13 队列文件保存天数
在mgr.prm中,添加:
PURGEOLDEXTRACTS ./dirdat/*,usecheckpoints, minkeepdays 3
修改之后,必须重启manager即可看到队列文件占用的空间被按照上面指定的规则释放。 如果存储空间不够,可以将minkeepdays修改为MINKEEPHOURS
很多网省源端存储空间不足,这样修改为最小保留的小时数,缓解存储空间不足。 如果空间仍然紧张,仍要求立即释放空间,可修改为:MINKEEPFILES,将值设置为1,即只保留一个处理过的队列文件(不建议使用)。 如果存储空间充裕,建议最少保留3天的队列文件。
2.14 复制进程拆分及指定队列文件及RBA
拆分前通过INFO XXX获取队列文件信息及RBA号,返回样例如下: GGSCI> INFO REPYXA
REPLICAT REPYXA Last Started 2011-01-08 19:48 Status RUNNING Checkpoint Lag 00:00:00 (updated 00:01:42 ago)
Log Read Checkpoint File ./dirdat/p1000556 First Record RBA 59193235 在将replicat进程拆分后,指定从拆分前的队列文件及RBA号码开始复制。 ALTER REPLICAT xxx EXTSEQNO nnn, EXTRBA mmm
以上面的为例:ALTER REPLICAT REPYXA 556, EXTRBA 59193235
2.15 BOUNDED RECOVERY
错误信息:BOUNDED RECOVERY: reset to initial or altered checkpoint. 数据库问题,不能读取第2个节点的archivelog文件
2.16 排除不复制的表
在参数文件中增加:
TABLEEXCLUDE schema.table_name
2.17 从指定时间重新抓取
重新抓取数据前提:归档文件没有删除
ALTER EXTRACT xxx, TRANLOG, BEGIN 2010-12-31 08:00 时间格式:yyyy-mm-dd [hh:mi:[ss[.cccccc]]]
如果是新建:ADD EXTRACT xxx, TRANLOG, BEGIN 2010-12-31 08:00
2.18 进程无法停止
通常情况是在处理大交易,尤其在营销系统中有很多超过2小时以上的大交易,建议等待进程处理完毕。
处理方法:如果必须停止进程,可以强制杀死进程:send xxx forcestop
2.19 CLOB处理
如果包含CLOB字段,在extract 参数文件中必须添加: TRANLOGOPTIONS CONVERTUCS2CLOBS
2.20 DB2不能使用checkpoint table
处理方法:在增加replicat进程时使用nodbcheckpoint参数: add replicat xxx, exttrail /goldengate/dirdat/rb, nodbcheckpoint
2.21 Datapump进程每次只传一个文件
错误信息:Datapump进程每次只传一个文件,然后就不工作了,状态是Running,重启之
后,开始传下一个文件,需要不断重启才行 原因:AIX使用裸设备,没有添加参数。
处理方法:原来只是要求在extract中添加,在datapump中也需要添加 TRANLOGOPTIONS rawdeviceoffset 0
很多HP-UX出现不向目标端传输文件,是因为错误设置了上面的参数,将该参数从参数文件中删除即可。如果不是AIX使用裸设备,不要设置该参数。
2.22 Extract进程产生core文件
错误信息:extract运行一段时间,状态是running,但是不工作,在安装目录产生core文件,大约200M
原因:AIX没有使用裸设备,但是在参数文件中写了裸设备的参数 TRANLOGOPTIONS rawdeviceoffset 0 处理方法:将该参数删除
2.23 中文字节数问题
错误信息:2011-01-19 22:58:30 WARNING OGG-00869 OCI Error ORA-12899: value too large for column \\ME2\TY\
2011-01-19 22:58:30 WARNING OGG-01004 Aborted grouped transaction on 'SAPR3.ADRC', Database error 12899 (ORA-12899: value too large for column \maximum: 75)).
2011-01-19 22:58:30 WARNING OGG-01003 Repositioning to rba 15479755 in seqno 11.
2011-01-19 22:58:30 WARNING OGG-01154 SQL error 12899 mapping SAPR3.ADRC to SAPR3.ADRC OCI Error ORA-12899: value too large for column \(actual: 86, maximum: 75) (status = 12899), SQL (\\2011-01-19 22:58:30 WARNING OGG-01003 Repositioning to rba 15479755 in seqno 11. 原因:中文字符问题,源端每个中文字符占2个字节,目标端每个占3个字节, 处理方法:SR 3-2456706611 首先确认参数文件中的NLS_LANG和数据库设置一致。 1 确认两个数据库的字符语义相同 参考SQL: SQL> show parameter nls NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ nls_language string AMERICAN nls_length_semantics string BYTE nls_territory string AMERICA 2 确认两端源和目标表的结构相同 参考SQL: Select dbms_metadata.get_ddl('TABLE','#MyTable','My Owner') from dual; 3 确认两端源和目标表的出错列的字符语义相同。 参考SQL: select CHAR_USED,CHAR_LENGTH from dba_tab_columns where owner='WHETC' table_name='CBS_RUNNINGNUMBER_NOBU' and column_name in ('CPSBBZ', 'XCFX'); 4确认操作系统环境变量 确保两端操作系统级别,语言环境变量一致,包括:LANG,NLS_LANG等 3 中文表/中文字段处理 create table 测试表( ID NUMBER, 姓名 VARCHAR2(30), FLAG CHAR(1), CONSTRAINT PK_TESTD PRIMARY KEY (ID) USING INDEX); --源端创建MV LOG和MV: drop materialized view log on \测试表\ create materialized view log on \测试表\ and
相关推荐: