您的位置:首页 > 其它

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运行正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: