ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
2016-08-05 14:13
351 查看
检查DG发现有gap 就查看下备库的alert.log文件,发现报如下错误:
Managed Standby Recovery starting Real Time Apply
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_dbw0_4112.trc:
ORA-01186: 文件 12 验证测试失败
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
File 12 not verified due to error ORA-01157
UNNAMED00012 说明有文件有问题。
查看备库:
SQL> select file#,name from v$datafile order by file#
2 /
FILE# NAME
---------- --------------------------------------------------
1 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSTEM01.DBF
2 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSAUX01.DBF
3 D:\APP\ADMINISTRATOR\ORADATA\LMIS\UNDOTBS01.DBF
4 D:\LMISDATAFILE\LMIS01.DBF
5 D:\LMISDATAFILE\INDX01.DBF
6 D:\LMISDATAFILE\TOOL01.DBF
7 D:\LMISDATAFILE\RSGB01.DBF
8 D:\LMISDATAFILE\AUDIT01.DBF
9 D:\LMISDATAFILE\LMIS02.DBF
10 D:\LMISDATAFILE\RSGB02.DBF
11 D:\LMISDATAFILE\INDX02.DBF
FILE# NAME
---------- --------------------------------------------------
12 D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATAB
ASE\UNNAMED00012
查看主库:
SYS@lmis>
SYS@lmis> select gap_status ,archived_seq#,applied_seq# from v$archive_dest_sttus where rownum < 4 ;
GAP_STATUS ARCHIVED_SEQ# APPLIED_SEQ#
------------------------ ------------- ------------
2574 0
RESOLVABLE GAP 2565 2559
2573 0
SYS@lmis>
SYS@lmis> select file#, name from v$datafile order by file# ;
FILE# NAME
---------- --------------------------------------------------
1 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSTEM01.DBF
2 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSAUX01.DBF
3 D:\APP\ADMINISTRATOR\ORADATA\LMIS\UNDOTBS01.DBF
4 D:\LMISDATAFILE\LMIS01.DBF
5 D:\LMISDATAFILE\INDX01.DBF
6 D:\LMISDATAFILE\TOOL01.DBF
7 D:\LMISDATAFILE\RSGB01.DBF
8 D:\LMISDATAFILE\AUDIT01.DBF
9 D:\LMISDATAFILE\LMIS02.DBF
10 D:\LMISDATAFILE\RSGB02.DBF
11 D:\LMISDATAFILE\INDX02.DBF
已选择11行。
主库中没有file#=12 ,说明12文件在主库已经删除,而在备库没有删除干净。这类问题一般是由于备库上standby_file_management=MANUAL引起的。
SYS@lmis>
查看备库文件管理模式:
SQL> show parameter management
NAME TYPE VALUE
------------------------------------ ----------- -------------------------
control_management_pack_access string DIAGNOSTIC+TUNING
standby_file_management string MANUAL
undo_management string AUTO
SQL>
SQL> alter system set standby_file_management=AUTO ;
系统已更改。
SQL> show parameter management
NAME TYPE VALUE
------------------------------------ ----------- --------------------------
control_management_pack_access string DIAGNOSTIC+TUNING
standby_file_management string AUTO
undo_management string AUTO
SQL> select process,status,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 2566
ARCH CLOSING 2564
ARCH CONNECTED 0
ARCH CLOSING 2565
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
已选择7行。
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
SQL> select process,status,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 2566
ARCH CLOSING 2564
ARCH CONNECTED 0
ARCH CLOSING 2565
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
依然无法启动rpm进程
Completed: alter database recover managed standby database using current logfile disconnect from session
2016-08-05 08:59:39.882000 +08:00
Recovery Slave PR00 previously exited with exception 1111
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_14172.trc:
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
SQL> select facility,severity,message from v$dataguard_status where timestamp > sysdate - 1/24 and rownum < 3 ;
FACILITY SEVERITY MESSAGE
------------------------ ------------- -----------------------------------------
---------
Log Apply Services Control Attempt to start background Managed Standby Recovery process
Log Apply Services Control MRP0: Background Managed Standby Recovery process started
shutdown immediate
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 5344731136 bytes
Fixed Size 2185160 bytes
Variable Size 4613736504 bytes
Database Buffers 704643072 bytes
Redo Buffers 24166400 bytes
数据库装载完毕。
ORA-10458: standby database requires recovery
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
显示"请重命名以更正文件"
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ALTER DATABASE REGISTER LOGFILE 'E:\archivelog\ARC0000000554_0893192950.0001';
试想把2560删了,在重新注册进去,也许会重新操作的。
rman 中删除 sequence=2560
然后在注册2560
SQL> select name,sequence# ,applied from v$archived_log where name is not null ;
NAME SEQUENCE# APPLIED
-------------------------------------------------- ---------- ---------
E:\ARCHIVELOG\ARC0000002551_0898534261.0001 2551 YES
E:\ARCHIVELOG\ARC0000002552_0898534261.0001 2552 YES
E:\ARCHIVELOG\ARC0000002553_0898534261.0001 2553 YES
E:\ARCHIVELOG\ARC0000002554_0898534261.0001 2554 YES
E:\ARCHIVELOG\ARC0000002555_0898534261.0001 2555 YES
E:\ARCHIVELOG\ARC0000002556_0898534261.0001 2556 YES
E:\ARCHIVELOG\ARC0000002557_0898534261.0001 2557 YES
E:\ARCHIVELOG\ARC0000002558_0898534261.0001 2558 YES
E:\ARCHIVELOG\ARC0000002559_0898534261.0001 2559 YES
E:\ARCHIVELOG\ARC0000002560_0898534261.0001 2560 NO
E:\ARCHIVELOG\ARC0000002561_0898534261.0001 2561 NO
NAME SEQUENCE# APPLIED
-------------------------------------------------- ---------- ---------
E:\ARCHIVELOG\ARC0000002562_0898534261.0001 2562 NO
E:\ARCHIVELOG\ARC0000002563_0898534261.0001 2563 NO
E:\ARCHIVELOG\ARC0000002564_0898534261.0001 2564 NO
E:\ARCHIVELOG\ARC0000002565_0898534261.0001 2565 NO
E:\ARCHIVELOG\ARC0000002566_0898534261.0001 2566 NO
SQL> select 'ALTER DATABASE REGISTER LOGFILE '''||name||''';' from v$archived_log where name is not null and APPLIED='NO';
'ALTERDATABASEREGISTERLOGFILE'''||NAME||''';'
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002560_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002561_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002562_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002565_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002566_0898534261.0001';
已选择7行。
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002560_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002561_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002562_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001';
SQL> ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.000
1';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001'
*
第 1 行出现错误:
ORA-16089: 归档日志已注册
SQL> ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.000
1';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.0001'
*
第 1 行出现错误:
ORA-16089: 归档日志已注册
ALTER DATABASE REGISTER LOGFILE 'E:\archivelog\ARC0000000554_0893192950.0001';
但问题还是如此:
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
Recovery Slave PR00 previously exited with exception 1111
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_19448.trc:
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
只好在mount的状态手动删除了:
alter database datafile 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012' offline drop;
在mount状态开启同步
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
数据库已更改。
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2561 1484813 1660301
SQL> select name from v$datafile where file#=12 ;
未选定行
SQL> shutdown ;
SQL> startup ;
ORACLE 例程已经启动。
Total System Global Area 5344731136 bytes
Fixed Size 2185160 bytes
Variable Size 4613736504 bytes
Database Buffers 704643072 bytes
Redo Buffers 24166400 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2567 1 2097152
此时2560到2566的归档都已经apply在备库,备库又报如下错误:
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_11944.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
Recovery of Online Redo Log: Thread 1 Group 5 Seq 2567 Reading mem 0
Mem# 0: D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD05.LOG
Mem# 1: D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD051.LOG
DDE rules only execution for: ORA 313
----- START Event Driven Actions Dump ----
---- END Event Driven Actions Dump ----
----- START DDE Actions Dump -----
Executing SYNC actions
----- START DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (Async) -----
Successfully dispatched
----- END DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (SUCCESS, 0 csec) -----
Executing ASYNC actions
----- END DDE Actions Dump (total 0 csec) -----
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
SQL> select group#,thread#,status from v$standby_log ;
GROUP# THREAD# STATUS
---------- ---------- ----------
4 1 UNASSIGNED
5 1 ACTIVE
6 1 UNASSIGNED
7 0 UNASSIGNED
SQL> select group#,status from v$log ;
GROUP# STATUS
---------- ----------------
1 CLEARING
2 CLEARING_CURRENT
3 CLEARING
重建redlog 2 :
ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> select group#,status from v$log ;
GROUP# STATUS
---------- ----------------
1 CLEARING
2 current
3 CLEARING
运行alter database recover managed standby database using current logfile disconnect from session; 报错消失,
但备库还卡在2567,以前听人说这是什么bug 的,就想重建standby log ,也许可以让数据库正常运行
重新standby log :
alter database add standby logfile group 4 ('E:\LMIS\LOG\REDO04.LOG','E:\LMIS\LOG\REDO041.LOG') size 500M reuse;
select 'alter database add standby logfile group '||group#||' ('''||member||''') size 1024M reuse' from v$logfile where type='STANDBY' order by group#;
alter database drop standby logfile group 4;
alter database drop standby logfile group 5;
alter database drop standby logfile group 6;
alter database drop standby logfile group 7;
SQL> select 'alter database add standby logfile group '||group#||' ('''||member
||''') size 1024M reuse' from v$logfile where type='STANDBY' order by group#;
'ALTERDATABASEADDSTANDBYLOGFILEGROUP'||GROUP#||'('''||MEMBER||''')SIZE1024MREUSE
'
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
alter database add standby logfile group 4 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD041.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD04.LOG') size 1024M reuse;
alter database add standby logfile group 5 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD05.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD051.LOG') size 1024M reuse;
alter database add standby logfile group 6 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD06.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD061.LOG') size 1024M reuse;
alter database add standby logfile group 7 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD07.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD071.LOG') size 1024M reuse;
已选择8行。
然后再重启数据库,发现任然如此。(反省,有时候自动都知道是别人忽悠你,却为什么还要听呢,哎!)
QL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2567 1 2097152
查找备库传送过来的归档日志发现没有2567 以后的,其实standby db这时在等主库的归档日志;。可以肯定日志传送有问题
在主库上
tnsping standby 发现不通,而备库可以tnsping primary ,standby
然后发现备库的动态监控没起作用,找不到主题问题。就只好重建监控配置了。重建之后,备库的动态监听正常。重其他电脑tnsping standby 可以通,唯独主库不通。可以认定是主库的监听出故障了。
所以归档才不能传送过来.
现在数据库在正常作业,尝试lsnrctl reload 希望可以好起来。可是没想到踩到坑了。主库的监听挂了,无论怎么做都启动不了。(反省,发现有问题千万不要想当然为之,否则后果不堪设想)
以 pid=28508 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ServerB.ha.server)(PORT=1521)))
监听该对象时出错: (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PARTIAL=yes)(QUEUESIZE=1))
不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ServerB.ha.server)(PORT=1521)))
TNS-12532: TNS: 无效的参数
TNS-12560: TNS: 协议适配器错误
TNS-00502: 参数无效
64-bit Windows Error: 22: Invalid argument
网上也没有说这类问题具体原因,采取重启服务器后启动监听程序。
至此,主备库的网络通了。发现主库的归档能正常传递到备库
运行alter database recover managed standby database using current logfile disconnect from session ;备库正常工作DG运行正常。
Managed Standby Recovery starting Real Time Apply
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_dbw0_4112.trc:
ORA-01186: 文件 12 验证测试失败
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
File 12 not verified due to error ORA-01157
UNNAMED00012 说明有文件有问题。
查看备库:
SQL> select file#,name from v$datafile order by file#
2 /
FILE# NAME
---------- --------------------------------------------------
1 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSTEM01.DBF
2 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSAUX01.DBF
3 D:\APP\ADMINISTRATOR\ORADATA\LMIS\UNDOTBS01.DBF
4 D:\LMISDATAFILE\LMIS01.DBF
5 D:\LMISDATAFILE\INDX01.DBF
6 D:\LMISDATAFILE\TOOL01.DBF
7 D:\LMISDATAFILE\RSGB01.DBF
8 D:\LMISDATAFILE\AUDIT01.DBF
9 D:\LMISDATAFILE\LMIS02.DBF
10 D:\LMISDATAFILE\RSGB02.DBF
11 D:\LMISDATAFILE\INDX02.DBF
FILE# NAME
---------- --------------------------------------------------
12 D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATAB
ASE\UNNAMED00012
查看主库:
SYS@lmis>
SYS@lmis> select gap_status ,archived_seq#,applied_seq# from v$archive_dest_sttus where rownum < 4 ;
GAP_STATUS ARCHIVED_SEQ# APPLIED_SEQ#
------------------------ ------------- ------------
2574 0
RESOLVABLE GAP 2565 2559
2573 0
SYS@lmis>
SYS@lmis> select file#, name from v$datafile order by file# ;
FILE# NAME
---------- --------------------------------------------------
1 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSTEM01.DBF
2 D:\APP\ADMINISTRATOR\ORADATA\LMIS\SYSAUX01.DBF
3 D:\APP\ADMINISTRATOR\ORADATA\LMIS\UNDOTBS01.DBF
4 D:\LMISDATAFILE\LMIS01.DBF
5 D:\LMISDATAFILE\INDX01.DBF
6 D:\LMISDATAFILE\TOOL01.DBF
7 D:\LMISDATAFILE\RSGB01.DBF
8 D:\LMISDATAFILE\AUDIT01.DBF
9 D:\LMISDATAFILE\LMIS02.DBF
10 D:\LMISDATAFILE\RSGB02.DBF
11 D:\LMISDATAFILE\INDX02.DBF
已选择11行。
主库中没有file#=12 ,说明12文件在主库已经删除,而在备库没有删除干净。这类问题一般是由于备库上standby_file_management=MANUAL引起的。
SYS@lmis>
查看备库文件管理模式:
SQL> show parameter management
NAME TYPE VALUE
------------------------------------ ----------- -------------------------
control_management_pack_access string DIAGNOSTIC+TUNING
standby_file_management string MANUAL
undo_management string AUTO
SQL>
SQL> alter system set standby_file_management=AUTO ;
系统已更改。
SQL> show parameter management
NAME TYPE VALUE
------------------------------------ ----------- --------------------------
control_management_pack_access string DIAGNOSTIC+TUNING
standby_file_management string AUTO
undo_management string AUTO
SQL> select process,status,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 2566
ARCH CLOSING 2564
ARCH CONNECTED 0
ARCH CLOSING 2565
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
已选择7行。
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
SQL> select process,status,sequence# from v$managed_standby ;
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 2566
ARCH CLOSING 2564
ARCH CONNECTED 0
ARCH CLOSING 2565
RFS IDLE 0
RFS IDLE 0
RFS IDLE 0
依然无法启动rpm进程
Completed: alter database recover managed standby database using current logfile disconnect from session
2016-08-05 08:59:39.882000 +08:00
Recovery Slave PR00 previously exited with exception 1111
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_14172.trc:
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
SQL> select facility,severity,message from v$dataguard_status where timestamp > sysdate - 1/24 and rownum < 3 ;
FACILITY SEVERITY MESSAGE
------------------------ ------------- -----------------------------------------
---------
Log Apply Services Control Attempt to start background Managed Standby Recovery process
Log Apply Services Control MRP0: Background Managed Standby Recovery process started
shutdown immediate
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 5344731136 bytes
Fixed Size 2185160 bytes
Variable Size 4613736504 bytes
Database Buffers 704643072 bytes
Redo Buffers 24166400 bytes
数据库装载完毕。
ORA-10458: standby database requires recovery
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
显示"请重命名以更正文件"
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ALTER DATABASE REGISTER LOGFILE 'E:\archivelog\ARC0000000554_0893192950.0001';
试想把2560删了,在重新注册进去,也许会重新操作的。
rman 中删除 sequence=2560
然后在注册2560
SQL> select name,sequence# ,applied from v$archived_log where name is not null ;
NAME SEQUENCE# APPLIED
-------------------------------------------------- ---------- ---------
E:\ARCHIVELOG\ARC0000002551_0898534261.0001 2551 YES
E:\ARCHIVELOG\ARC0000002552_0898534261.0001 2552 YES
E:\ARCHIVELOG\ARC0000002553_0898534261.0001 2553 YES
E:\ARCHIVELOG\ARC0000002554_0898534261.0001 2554 YES
E:\ARCHIVELOG\ARC0000002555_0898534261.0001 2555 YES
E:\ARCHIVELOG\ARC0000002556_0898534261.0001 2556 YES
E:\ARCHIVELOG\ARC0000002557_0898534261.0001 2557 YES
E:\ARCHIVELOG\ARC0000002558_0898534261.0001 2558 YES
E:\ARCHIVELOG\ARC0000002559_0898534261.0001 2559 YES
E:\ARCHIVELOG\ARC0000002560_0898534261.0001 2560 NO
E:\ARCHIVELOG\ARC0000002561_0898534261.0001 2561 NO
NAME SEQUENCE# APPLIED
-------------------------------------------------- ---------- ---------
E:\ARCHIVELOG\ARC0000002562_0898534261.0001 2562 NO
E:\ARCHIVELOG\ARC0000002563_0898534261.0001 2563 NO
E:\ARCHIVELOG\ARC0000002564_0898534261.0001 2564 NO
E:\ARCHIVELOG\ARC0000002565_0898534261.0001 2565 NO
E:\ARCHIVELOG\ARC0000002566_0898534261.0001 2566 NO
SQL> select 'ALTER DATABASE REGISTER LOGFILE '''||name||''';' from v$archived_log where name is not null and APPLIED='NO';
'ALTERDATABASEREGISTERLOGFILE'''||NAME||''';'
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002560_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002561_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002562_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002565_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002566_0898534261.0001';
已选择7行。
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002560_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002561_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002562_0898534261.0001';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001';
SQL> ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.000
1';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002563_0898534261.0001'
*
第 1 行出现错误:
ORA-16089: 归档日志已注册
SQL> ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.000
1';
ALTER DATABASE REGISTER LOGFILE 'E:\ARCHIVELOG\ARC0000002564_0898534261.0001'
*
第 1 行出现错误:
ORA-16089: 归档日志已注册
ALTER DATABASE REGISTER LOGFILE 'E:\archivelog\ARC0000000554_0893192950.0001';
但问题还是如此:
Completed: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT
Recovery Slave PR00 previously exited with exception 1111
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_19448.trc:
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
ORA-01157: 无法标识/锁定数据文件 12 - 请参阅 DBWR 跟踪文件
ORA-01111: 数据文件 12 名称未知 - 请重命名以更正文件
ORA-01110: 数据文件 12: 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012'
只好在mount的状态手动删除了:
alter database datafile 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\UNNAMED00012' offline drop;
在mount状态开启同步
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
数据库已更改。
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2561 1484813 1660301
SQL> select name from v$datafile where file#=12 ;
未选定行
SQL> shutdown ;
SQL> startup ;
ORACLE 例程已经启动。
Total System Global Area 5344731136 bytes
Fixed Size 2185160 bytes
Variable Size 4613736504 bytes
Database Buffers 704643072 bytes
Redo Buffers 24166400 bytes
数据库装载完毕。
数据库已经打开。
SQL> alter database recover managed standby database using current logfile disconnect from session;
数据库已更改。
SQL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2567 1 2097152
此时2560到2566的归档都已经apply在备库,备库又报如下错误:
Errors in file d:\app\administrator\diag\rdbms\standby\lmis\trace\lmis_mrp0_11944.trc:
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
Recovery of Online Redo Log: Thread 1 Group 5 Seq 2567 Reading mem 0
Mem# 0: D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD05.LOG
Mem# 1: D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD051.LOG
DDE rules only execution for: ORA 313
----- START Event Driven Actions Dump ----
---- END Event Driven Actions Dump ----
----- START DDE Actions Dump -----
Executing SYNC actions
----- START DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (Async) -----
Successfully dispatched
----- END DDE Action: 'DB_STRUCTURE_INTEGRITY_CHECK' (SUCCESS, 0 csec) -----
Executing ASYNC actions
----- END DDE Actions Dump (total 0 csec) -----
ORA-00313: 无法打开日志组 2 (用于线程 1) 的成员
SQL> select group#,thread#,status from v$standby_log ;
GROUP# THREAD# STATUS
---------- ---------- ----------
4 1 UNASSIGNED
5 1 ACTIVE
6 1 UNASSIGNED
7 0 UNASSIGNED
SQL> select group#,status from v$log ;
GROUP# STATUS
---------- ----------------
1 CLEARING
2 CLEARING_CURRENT
3 CLEARING
重建redlog 2 :
ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> select group#,status from v$log ;
GROUP# STATUS
---------- ----------------
1 CLEARING
2 current
3 CLEARING
运行alter database recover managed standby database using current logfile disconnect from session; 报错消失,
但备库还卡在2567,以前听人说这是什么bug 的,就想重建standby log ,也许可以让数据库正常运行
重新standby log :
alter database add standby logfile group 4 ('E:\LMIS\LOG\REDO04.LOG','E:\LMIS\LOG\REDO041.LOG') size 500M reuse;
select 'alter database add standby logfile group '||group#||' ('''||member||''') size 1024M reuse' from v$logfile where type='STANDBY' order by group#;
alter database drop standby logfile group 4;
alter database drop standby logfile group 5;
alter database drop standby logfile group 6;
alter database drop standby logfile group 7;
SQL> select 'alter database add standby logfile group '||group#||' ('''||member
||''') size 1024M reuse' from v$logfile where type='STANDBY' order by group#;
'ALTERDATABASEADDSTANDBYLOGFILEGROUP'||GROUP#||'('''||MEMBER||''')SIZE1024MREUSE
'
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------
alter database add standby logfile group 4 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD041.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD04.LOG') size 1024M reuse;
alter database add standby logfile group 5 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD05.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD051.LOG') size 1024M reuse;
alter database add standby logfile group 6 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD06.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD061.LOG') size 1024M reuse;
alter database add standby logfile group 7 ('D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD07.LOG','D:\APP\ADMINISTRATOR\ORADATA\LMIS\STD071.LOG') size 1024M reuse;
已选择8行。
然后再重启数据库,发现任然如此。(反省,有时候自动都知道是别人忽悠你,却为什么还要听呢,哎!)
QL> select process, status, thread#,sequence#, block#, blocks from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS
--------- ------------ ---------- ---------- ---------- ----------
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
ARCH CONNECTED 0 0 0 0
MRP0 APPLYING_LOG 1 2567 1 2097152
查找备库传送过来的归档日志发现没有2567 以后的,其实standby db这时在等主库的归档日志;。可以肯定日志传送有问题
在主库上
tnsping standby 发现不通,而备库可以tnsping primary ,standby
然后发现备库的动态监控没起作用,找不到主题问题。就只好重建监控配置了。重建之后,备库的动态监听正常。重其他电脑tnsping standby 可以通,唯独主库不通。可以认定是主库的监听出故障了。
所以归档才不能传送过来.
现在数据库在正常作业,尝试lsnrctl reload 希望可以好起来。可是没想到踩到坑了。主库的监听挂了,无论怎么做都启动不了。(反省,发现有问题千万不要想当然为之,否则后果不堪设想)
以 pid=28508 开始
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ServerB.ha.server)(PORT=1521)))
监听该对象时出错: (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PARTIAL=yes)(QUEUESIZE=1))
不再监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ServerB.ha.server)(PORT=1521)))
TNS-12532: TNS: 无效的参数
TNS-12560: TNS: 协议适配器错误
TNS-00502: 参数无效
64-bit Windows Error: 22: Invalid argument
网上也没有说这类问题具体原因,采取重启服务器后启动监听程序。
至此,主备库的网络通了。发现主库的归档能正常传递到备库
运行alter database recover managed standby database using current logfile disconnect from session ;备库正常工作DG运行正常。
相关文章推荐
- Android不预览录视频
- ant-1.8.4.jar实现压缩和解压文件的工具类
- 【华为 OJ 】(练习用)挑7
- js 对象转数组
- Gas Station
- 20位活跃在Github上的国内技术大牛
- ls 列出文件或目录下的文件名
- java 位运算
- GreenDAO数据库升级问题的解决方法
- PorterDuff及Xfermode详解
- 单链表操作A
- [DP]为什么我们使用继承呢?
- level-list 的大坑
- 天天笑话
- HIKEY OP-TEE切换UART运行状态
- Cannot read property 'value' of null
- Stay Hungry Stay Foolish的真正含义
- 约瑟夫问题
- cocos lua遇到的一些问题
- 【华为 OJ 】表示数字