最近在做一次迁移,原库 AIX-11203RAC ,目标端linux 11204 RAC,数据量3t左右,期间也是出现了点问题,现在记录一下,以供大家参考:
1 在打开BCT卡住
alter database enable block change tracking using file '/home/oracle/trace.log';
再打开快跟踪的时候,一直hang在那边,几分钟后对业务造成了影响,如下图所示,
1068会话为执行BCT的会话,可以看到被CKPT锁住,CKPT又被CTWR锁住,CTWR又被1068BCT会话锁住,一个死循环,看到这里,就感觉是bug,以enq: CT - state change gate 为关键字在mos上搜索之后,确实有较多的的文章能看到这是bug。
参考过 High Waits On 'block change tracking buffer space' - Checkpoint Contention With BLOCK CHANGE TRACKING or RMAN Incremental Backup (Doc ID 2094946.1)等修改 _bct_buffer_allocation_max 参数,但是无效。
在另外一篇文章 RMAN Backup Suddenly Stopped / Hanged with message: RMAN-08606: WARNING: The change tracking file is invalid. (Doc ID 2173783.1)中,看到将追踪文件放到集群中会有效果,试了下,立马就过去了。
SQL> alter database enable block change tracking using file '+NEWDATA/trace.log';
2 源端目录多个,目标端目录只有一个
在增量的过程中有如下报错:
Error:
------
Datafile path +ARCH/temp and source directory object path doest not match
刚开始,想当然的
create or replace directory sourcedir as '+DATA/','+ARCH/datafile';
实际上,要根据文件的语法来,可参考
xtt.properties 中的语法
每个文件单独一个directory,然后配置如下:
srcdir=SOURCEDIR1,SOURCEDIR2
dstdir=DESTDIR
3 前滚报错
ORA-19624: operation failed, retry possible
ORA-19870: error while restoring backup piece
+DATA/xib_50v614a5_1_1_7_14_16_18_25_27_29_31_33
ORA-19625: error identifying file /oracle/app/product/11.2.0/db_1/dbs/
+data/HTBASE/DATAFILE/htbase02.dbf
ORA-27037: unable to obtain file status
这个问题比较简单,实际上因为在创建destir的时候,前面多加了一个空格,导致它默认将空格转换成了$ORACLE_HOME/dbs. 修改directory之后,注意要手动修改xttnewdatafiles文件,该文件决定了文件存放的位置。
4 前滚后有warnning
如下图所示,该报错可以忽略,无法删除asmcmd中的上传的增量文件。
perl: warning: Falling back to the standard locale ("C").
Can't locate strict.pm in @INC (@INC contains: /oracle/grid/crs_1/perl/lib/5.10.0/x86_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/5.10.0 /oracle/gr
id/crs_1/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/site_perl/5.10.0 /oracle/grid/crs_1/lib /oracle/grid/crs_1/lib/a
smcmd /oracle/grid/crs_1/rdbms/lib/asmcmd /oracle/grid/crs_1/perl/lib/5.10.0/x86_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/5.10.0 /oracle/grid/cr
s_1/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/site_perl/5.10.0 /oracle/grid/crs_1/perl/lib/5.10.0/x86_64-linux-thre
ad-multi /oracle/grid/crs_1/perl/lib/5.10.0/x86_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/5.10.0 /oracle/grid/crs_1/perl/lib/site_perl/5.10.0/x86
_64-linux-thread-multi /oracle/grid/crs_1/perl/lib/site_perl/5.10.0 /oracle/grid/crs_1/perl/lib/site_perl .) at /oracle/grid/crs_1/bin/asmcmdcore line 143.
BEGIN failed--compilation aborted at /oracle/grid/crs_1/bin/asmcmdcore line 143.
ASMCMD:
5 做增量的时候报错如下:
该报错其实很常见,做rman备份的时候经常遇到,但是也经常忽略掉,没啥影响。
但是在xtts增量的时候,该报错导致 tsbkupmap.txt 文件没有产生,所以必须要解决。
RMAN-12016: using channel ORA_DISK_1
RMAN-06518: backup will be obsolete on date 2020-07-30 09:51:07
RMAN-06520: archived logs will not be kept or backed up
RMAN-08008: channel ORA_DISK_1: starting full datafile backup set
RMAN-08010: channel ORA_DISK_1: specifying datafile(s) in backup set
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of backup command at 07/23/2020 09:51:08
RMAN-03009: failure of backup command on ORA_DISK_1 channel at 07/23/2020 09:51:08
ORA-00245: control file backup failed; target is likely on a local file system
方法其实也简单,configure下就好了,将控制文件备份放到集群中
RMAN TARGET /
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '+NEWDATA/snapcf_HTBASE1.f';
暂时就这么多,以后有新的再补充。