一、描述
12c ADG
rhel 7.0
二、现象、处理过程
1.主库添加数据文件,备库报错。
Beginning Standby Crash Recovery.
Serial Media Recovery started
Managed Standby Recovery starting Real Time Apply
Standby Crash Recovery aborted due to error 1111.
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcldg/trace/orcldg_ora_2067.trc:
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/UNNAMED00007'
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/UNNAMED00007'
Completed Standby Crash Recovery.
Errors in file /u01/app/oracle/diag/rdbms/orcldg/orcldg/trace/orcldg_ora_2067.trc:
ORA-10458: standby database requires recovery
ORA-01157: cannot identify/lock data file 7 - see DBWR trace file
ORA-01111: name for data file 7 is unknown - rename to correct file
ORA-01110: data file 7: '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/UNNAMED00007'
ORA-10458 signalled during: ALTER DATABASE OPEN READ ONLY /* db agent *//* {0:0:2} */...

2.备库查看数据文件
SQL> col name for a60
SQL> select file#,name from v$datafile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------
         1 +DATADG/ORCLDG/DATAFILE/system.258.954626559
         2 +DATADG/ORCLDG/DATAFILE/roidba.387.963323519
         3 +DATADG/ORCLDG/DATAFILE/sysaux.259.954626615
         4 +DATADG/ORCLDG/DATAFILE/undotbs1.260.954626701
         5 +DATADG/ORCLDG/DATAFILE/roidba.388.963323313
         6 +DATADG/ORCLDG/DATAFILE/users.261.954626717
         7 /u01/app/oracle/product/12.1.0/dbhome_1/dbs/UNNAMED00007

7 rows selected.

3.重新创建新的数据文件
SQL> alter database create datafile  '/u01/app/oracle/product/12.1.0/dbhome_1/dbs/UNNAMED00007'  as  '+datadg';

Database altered.

4.备库查看数据文件
SQL> select file#,name from v$datafile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------
         1 +DATADG/ORCLDG/DATAFILE/system.258.954626559
         2 +DATADG/ORCLDG/DATAFILE/roidba.387.963323519
         3 +DATADG/ORCLDG/DATAFILE/sysaux.259.954626615
         4 +DATADG/ORCLDG/DATAFILE/undotbs1.260.954626701
         5 +DATADG/ORCLDG/DATAFILE/roidba.388.963323313
         6 +DATADG/ORCLDG/DATAFILE/users.261.954626717
         7 +DATADG/ORCLDG/DATAFILE/roidba.376.963349729

7 rows selected.

SQL> 

SQL> ! ls -l /u01/app/oracle/product/12.1.0/dbhome_1/dbs/
total 11448
-rw-r----- 1 oracle asmadmin     1024 Dec 14 11:22 archlog_1_83_961866198_585bafa7.arc
-rw-r----- 1 oracle asmadmin    48640 Dec 14 11:22 archlog_1_84_961866198_585bafa7.arc
-rw-rw---- 1 oracle oinstall     1544 Dec 21 21:00 hc_orcldg.dat
-rw-r--r-- 1 oracle oinstall     2992 Feb  3  2012 init.ora
-rw-r--r-- 1 oracle oinstall       41 Sep 13 22:08 initorcldg.ora
-rw-r----- 1 oracle oinstall       24 Sep 13 22:02 lkORCLDG
-rw-r----- 1 oracle asmadmin 11649024 Dec 17 11:53 snapcf_orcldg.f
-rw-r----- 1 oracle oinstall     3584 Sep 13 22:02 spfileorcldg.ora

5.备库查看dg信息
SQL> select message from v$dataguard_status;

MESSAGE
--------------------------------------------------------------------------------
WARNING: STANDBY_FILE_MANAGEMENT initialization parameter is
ARC0: Archival started
ARC1: Archival started
ARC2: Archival started
ARC1: Becoming the 'no FAL' ARCH
ARC2: Becoming the heartbeat ARCH
ARC2: Becoming the active heartbeat ARCH
ARC3: Archival started
Managed Standby Recovery starting Real Time Apply
Primary database is in MAXIMUM PERFORMANCE mode
RFS[1]: Assigned to RFS process (PID:3014)

MESSAGE
--------------------------------------------------------------------------------
RFS[2]: Assigned to RFS process (PID:3008)
RFS[3]: Assigned to RFS process (PID:3021)
RFS[4]: Assigned to RFS process (PID:3024)
ARC1: Beginning to archive thread 1 sequence 261 (8320210-8320689)
ARC0: Beginning to archive thread 1 sequence 258 (8194341-8318764)
ARC1: Completed archiving thread 1 sequence 261 (0-0)
ARC0: Completed archiving thread 1 sequence 258 (0-0)
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery starting Real Time Apply
MRP0: Background Media Recovery terminated with error 1111

MESSAGE
--------------------------------------------------------------------------------
Managed Standby Recovery not using Real Time Apply
MRP0: Background Media Recovery process shutdown
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery starting Real Time Apply
Media Recovery Log +DATADG/arch/log_1_258_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_259_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_260_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_261_961866198_585bafa7.arc
Media Recovery Waiting for thread 1 sequence 262 (in transit)

32 rows selected.

6.主库切归档,备库继续查看日志

MESSAGE
--------------------------------------------------------------------------------
WARNING: STANDBY_FILE_MANAGEMENT initialization parameter is
ARC0: Archival started
ARC1: Archival started
ARC2: Archival started
ARC1: Becoming the 'no FAL' ARCH
ARC2: Becoming the heartbeat ARCH
ARC2: Becoming the active heartbeat ARCH
ARC3: Archival started
Managed Standby Recovery starting Real Time Apply
Primary database is in MAXIMUM PERFORMANCE mode
RFS[1]: Assigned to RFS process (PID:3014)

MESSAGE
--------------------------------------------------------------------------------
RFS[2]: Assigned to RFS process (PID:3008)
RFS[3]: Assigned to RFS process (PID:3021)
RFS[4]: Assigned to RFS process (PID:3024)
ARC1: Beginning to archive thread 1 sequence 261 (8320210-8320689)
ARC0: Beginning to archive thread 1 sequence 258 (8194341-8318764)
ARC1: Completed archiving thread 1 sequence 261 (0-0)
ARC0: Completed archiving thread 1 sequence 258 (0-0)
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery starting Real Time Apply
MRP0: Background Media Recovery terminated with error 1111

MESSAGE
--------------------------------------------------------------------------------
Managed Standby Recovery not using Real Time Apply
MRP0: Background Media Recovery process shutdown
Attempt to start background Managed Standby Recovery process
MRP0: Background Managed Standby Recovery process started
Managed Standby Recovery starting Real Time Apply
Media Recovery Log +DATADG/arch/log_1_258_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_259_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_260_961866198_585bafa7.arc
Media Recovery Log +DATADG/arch/log_1_261_961866198_585bafa7.arc
Media Recovery Waiting for thread 1 sequence 262 (in transit)
ARC3: Beginning to archive thread 1 sequence 262 (8320689-8322685)

MESSAGE
--------------------------------------------------------------------------------
ARC3: Completed archiving thread 1 sequence 262 (0-0)
Media Recovery Waiting for thread 1 sequence 263 (in transit)

35 rows selected.

SQL> 
三、小结

1.ALTER DATABASE ... CREATE DATAFILE
--官方说明
Creates a new empty data file in place of an old one--useful to re-create a data file that was lost with no backup.

2.StandbyFileManagement 需要参数设置为auto
DGMGRL> edit database orcl set property StandbyFileManagement=auto;
Property "standbyfilemanagement" updated
DGMGRL> edit database orcldg set property StandbyFileManagement=auto;
Property "standbyfilemanagement" updated
DGMGRL>