database:10.2.0.5
STANDBY_FILE_MANAGEMENT 这个参数只有在standby database上设定的时候就会对该Standby是否自动创建主库所新加的datafile。
另外文档里面提到裸设备的时候还是要人工干预,这个放在后面再看。如果主库是使用 Oracle Managed Files,那在这种情况下应如何处理??
下面是数据文件在filesystem,standby database的 STANDBY_FILE_MANAGEMENT设定为manual,此时应如何修正主库新增数据文件造成standby的错误情景:
在主库新增文件后,standby alert日志:
Media recovery may continue but open resetlogs may fail
Tue May 13 21:17:16 China Standard Time 2014
Errors in file c:\oracle\product\10.2.0\admin\testdgs\bdump\testdgs_mrp0_2772.trc:
ORA-01274: cannot add datafile 'E:\ORADATA\TESTDGP\TEST03.DBF' - file could not be created
此时在standby已经停止apply log了。需要修正该错误之后再开启apply log。查询该未能成功添加的数据文件是哪个。
SQL> select file#, name from v$datafile where name like '%UNNAMED00%';
FILE#
----------
NAME
------------------------------------------------------------------------------
7
C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNAMED00007
在主库上查找号码为7的文件名称是什么:
SQL> select name from v$datafile where file#=7;
NAME
-------------------------------------------------------------------
E:\ORADATA\TESTDGP\TEST03.DBF
在standby上手工创建该文件,注意文件的目录的转换
SQL> alter database create datafile 'C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\UNNA
MED00007' as 't:\testDGs\test03.dbf';
Database altered.
创建完毕之后,再开启apply log:
SQL> alter database recover managed standby database disconnect;
查看最新的日志时候被apply:
select SEQUENCE#, APPLIED from v$archived_log order by SEQUENCE# desc;