又是一个特别长的标题。实在是没有办法,问题发生的条件和版本、是否STANDBY数据库、STANDBY数据库状态以及备份类型都有关系,不这样描述无法说清楚问题。
问题的发现是备份的时候等待时间很长,RMAN接受命令后等待了很长的时间也没有开始真正备份,等了10分钟左右备份才开始。从数据库中检查Oracle的等待事件为:control file sequential read。
问题出现的时候情况比较复杂:数据库版本Oracle 11.1.0.6 for Enterprise Linux 5 for X86,部署了物理STANDBY环境。当前是在物理STANDBY数据库中测试BLOCK CHANGE TRACKING对增量备份的影响。STANDBY数据库的应用日志是开启的。而且数据库之前已经执行过不少复杂的造成,例如数据库启用日志的应用、关闭日志应用等。
上面的任何的一种或多种条件都可能是造成问题的原因,因此进行了大量的测试,每次只变动其中的一个条件,来检测问题是否存在,通过这种方式来定位问题的原因。
最后终于重现了这个问题:
[oracle@yangtk2 ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Dec 19 08:54:26 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup mount ORACLE instance started.
Total System Global Area 267825152 bytes
Fixed Size 1299316 bytes
Variable Size 167775372 bytes
Database Buffers 96468992 bytes
Redo Buffers 2281472 bytes
Database mounted.
SQL> host
[oracle@yangtk2 ~]$ rman target /
Recovery Manager: Release 11.1.0.6.0 - Production on Wed Dec 19 08:54:57 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: ORA11G (DBID=4026820313, not open)
RMAN> backup tablespace users;
Starting backup at 19-DEC-07
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=155 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/data/oracle/oradata/ora11g/ORA11G_P/datafile/o1_mf_users_3d37bq45_.dbf
channel ORA_DISK_1: starting piece 1 at 19-DEC-07
channel ORA_DISK_1: finished piece 1 at 19-DEC-07
piece handle=/data1/backup/1uj3vsf6_1_1 tag=TAG20071219T085502 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
IXDBA.NET技术社区
Finished backup at 19-DEC-07
RMAN> backup incremental level 0 tablespace users;
Starting backup at 19-DEC-07
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 0 datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00004 name=/data/oracle/oradata/ora11g/ORA11G_P/datafile/o1_mf_users_3d37bq45_.dbf
channel ORA_DISK_1: starting piece 1 at 19-DEC-07
channel ORA_DISK_1: finished piece 1 at 19-DEC-07
piece handle=/data1/backup/1vj3vsfi_1_1 tag=TAG20071219T085514 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 19-DEC-07
RMAN> list backup;
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
52 Full 8.23M DISK 00:00:01 19-DEC-07
BP Key: 54 Status: AVAILABLE Compressed: NO Tag: TAG20071219T085502