通过GRID control创建data guard后,可能存在某些参数未配置正确的情况,当主库做更改库结构操作时,备库可能不做改变,或出现问题,如下:
主库创建表空间:
SQL> create tablespace tbs_sec1 datafile '/apps/oracle/product/10.2.0/db_1/oradata/dboms/tbs_sec1.dbf' size 5m;
Tablespace created.
SQL> alter system switch logfile;
System altered.
备份检查日志:
Tue May 8 16:02:21 2012
RFS[2]: No standby redo logfiles created
RFS[2]: Archived Log: '+ASMDATA1/dbomsdg2/archivelog/2012_05_08/thread_1_seq_59.286.782755341'
Tue May 8 16:02:26 2012
Media Recovery Log +ASMDATA1/dbomsdg2/archivelog/2012_05_08/thread_1_seq_59.286.782755341
File #9 added to control file as 'UNNAMED00009' because
the parameter STANDBY_FILE_MANAGEMENT is set to MANUAL
The file should be manually created to continue.
Errors with log +ASMDATA1/dbomsdg2/archivelog/2012_05_08/thread_1_seq_59.286.782755341
MRP0: Background Media Recovery terminated with error 1274
Tue May 8 16:02:27 2012
Errors in file /apps/oracle/product/10.2.0/db_1/rdbms/log/dbomsdg1_mrp0_19948.trc:
ORA-01274: cannot add datafile '/apps/oracle/product/10.2.0/db_1/oradata/dboms/tbs_sec1.dbf' - file could not be created
Some recovered datafiles maybe left media fuzzy
Media recovery may continue but open resetlogs may fail
Tue May 8 16:02:29 2012
Errors in file /apps/oracle/product/10.2.0/db_1/rdbms/log/dbomsdg1_mrp0_19948.trc:
ORA-01274: cannot add datafile '/apps/oracle/product/10.2.0/db_1/oradata/dboms/tbs_sec1.dbf' - file could not be created
Tue May 8 16:02:29 2012
MRP0: Background Media Recovery process shutdown (dbomsdg1)
问题原因
SQL> show parameter db_file_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string
SQL> show parameter standby_file
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
standby_file_management string MANUAL
SQL> show parameter log_file_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_file_name_convert string
SQL>
导致的结果:
SQL> select name from V$datafile;
NAME
--------------------------------------------------------------------------------
+ASMDATA1/dbomsdg2/datafile/system.280.782720061
+ASMDATA1/dbomsdg2/datafile/undotbs1.273.782720087
+ASMDATA1/dbomsdg2/datafile/sysaux.272.782720111
+ASMDATA1/dbomsdg2/datafile/users.269.782720125
+ASMDATA1/dbomsdg2/datafile/mgmt_tablespace.268.782720157
+ASMDATA1/dbomsdg2/datafile/mgmt_ecm_depot_ts.267.782720173
+ASMDATA1/dbomsdg2/datafile/tan.266.782720187
+ASMDATA1/dbomsdg2/datafile/tanindex.265.782720201
/apps/oracle/product/10.2.0/db_1/dbs/UNNAMED00009
最根本的原因:
是在创建DG库时参数未配置正确。
解决办法:
备库上调整如下:
SQL> alter database create datafile '/apps/oracle/product/10.2.0/db_1/dbs/UNNAMED00009' as '+ASMDATA1/dbomsdg2/datafile/tbs_sec1.dbf';
彻底杜决:
SQL> alter system set standby_file_management=auto scope=both;
SQL> alter system set db_file_name_convert='/apps/oracle/product/10.2.0/db_1/oradata/dboms/','+ASMDATA1/dbomsdg2/datafile/' scope=spfile;
SQL> alter system set log_file_name_convert='/apps/oracle/archive/dboms','/apps/oracle/archive/dbomsdg1' scope=spfile;
验证:
SQL> drop tablespace tbs_sec1 including contents and datafiles;
Tablespace dropped.
SQL> select name from V$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
MGMT_TABLESPACE
MGMT_ECM_DEPOT_TS
TAN
TANINDEX
9 rows selected.
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
MGMT_TABLESPACE
MGMT_ECM_DEPOT_TS
TAN
TANINDEX
TBS_SEC1
10 rows selected.
等待若干时间后:
SQL> select name from V$tablespace;
NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
USERS
TEMP
MGMT_TABLESPACE
MGMT_ECM_DEPOT_TS
TAN
TANINDEX
9 rows selected.