千家信息网

ORACLE 非归档模式下REDO日志丢失修复

发表于:2024-11-19 作者:千家信息网编辑
千家信息网最后更新 2024年11月19日,第一步:全备datafile,controlfile,spfile/pfile第二步:恢复日志。(原冷备的日志没有用,千万不要用!)SQL> select member from v$logfile;
千家信息网最后更新 2024年11月19日ORACLE 非归档模式下REDO日志丢失修复

第一步:全备datafile,controlfile,spfile/pfile

第二步:恢复日志。(原冷备的日志没有用,千万不要用!)

SQL> select member from v$logfile;                        /ora/app/oracle/oradata/orcl/redo03.log/ora/app/oracle/oradata/orcl/redo02.log/ora/app/oracle/oradata/orcl/redo01.logSQL> archive log list;Database log mode              No Archive ModeAutomatic archival             Disabled       Archive destination            USE_DB_RECOVERY_FILE_DESTOldest online log sequence     10                       Current log sequence           12                       SQL> ho rm $ORACLE_BASE/oradata/orcl/redo*.log   --模拟日志文件丢失。       SQL> ho ls $ORACLE_BASE/oradata/orcl/redo*.logls: cannot access /ora/app/oracle/oradata/orcl/redo*.log: No such file or directorySQL> startup forceORACLE instance started.Total System Global Area 1536602112 bytesFixed Size                  2213616 bytesVariable Size             956303632 bytesDatabase Buffers          570425344 bytesRedo Buffers                7659520 bytesDatabase mounted.                        ORA-00313: open failed for members of log group 3 of thread 1ORA-00312: online log 3 thread 1: '/ora/app/oracle/oradata/orcl/redo03.log'ORA-27037: unable to obtain file status                                    Linux-x86_64 Error: 2: No such file or directory                           Additional information: 3  SQL> alter database open resetlogs;        --第一步alter database open resetlogs      *                                  ERROR at line 1:                   ORA-01139: RESETLOGS option only valid after an incomplete database recoverySQL> recover database using backup controlfile; --第二步ORA-00279: change 1384991 generated at 05/22/2016 20:05:08 needed for thread 1ORA-00289: suggestion : /ora/app/oracle/flash_recovery_area/ORCL/archivelog/2016_05_22/o1_mf_1_12_%u_.arcORA-00280: change 1384991 for thread 1 is in sequence #12                                                Specify log: {=suggested | filename | AUTO | CANCEL}                          --注意:非归档,什么也不做,直接回车。ORA-00308: cannot open archived log '/ora/app/oracle/flash_recovery_area/ORCL/archivelog/2016_05_22/o1_mf_1_12_%u_.arc'ORA-27037: unable to obtain file status                                                                                Linux-x86_64 Error: 2: No such file or directory                                                                       Additional information: 3   SQL> alter database open resetlogs;          --第三步alter database open resetlogs      *                                  ERROR at line 1:                   ORA-01113: file 1 needs media recoveryORA-01110: data file 1: '/ora/app/oracle/oradata/orcl/system01.dbf'SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile;System altered.                            --第四步,使用隐藏参数,不做一致性检查启动数据库。SQL> startup force mount;                   --第五步,重启到MOUNT状态下。ORACLE instance started. Total System Global Area 1536602112 bytesFixed Size                  2213616 bytesVariable Size             956303632 bytesDatabase Buffers          570425344 bytesRedo Buffers                7659520 bytesDatabase mounted.                        SQL> alter database open;                    --第六步alter database open                      *                                        ERROR at line 1:                         ORA-01589: must use RESETLOGS or NORESETLOGS option for database openSQL> alter database open resetlogs;          --第七步,一般情况下会正常恢复。ERROR:                             ORA-03114: not connected to ORACLE                                             alter database open resetlogs*                            ERROR at line 1:             ORA-01092: ORACLE instance terminated. Disconnection forcedORA-00600: internal error code, arguments: [2662], [0], [1384999], [0], [1385016], [4194432], [], [], [], [], [], []Process ID: 28621                                                                                                   Session ID: 125 Serial number: 5                                                                                                                               --由于隐藏参数导致的600错误。SQL> exitDisconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit ProductionWith the Partitioning, OLAP, Data Mining and Real Application Testing options                 [oracle@test ~]$ sqlplus / as sysdba                                                          SQL*Plus: Release 11.2.0.1.0 Production on Sun May 22 22:56:21 2016Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to an idle instance.SQL> select status from v$instance;        --检查状态,数据库关闭了。select status from v$instance*ERROR at line 1:ORA-01034: ORACLE not availableProcess ID: 0Session ID: 0 Serial number: 0SQL> startup mount;                           --再次启动ORACLE instance started.Total System Global Area 1536602112 bytesFixed Size                  2213616 bytesVariable Size             956303632 bytesDatabase Buffers          570425344 bytesRedo Buffers                7659520 bytesDatabase mounted.SQL> alter database open;Database altered.                               --启动成功。SQL> ho ls $ORACLE_BASE/oradata/orcl/red*         --日志文件自动生成/ora/app/oracle/oradata/orcl/redo01.log  /ora/app/oracle/oradata/orcl/redo02.log  /ora/app/oracle/oradata/orcl/redo03.logSQL> alter system reset "_allow_resetlogs_corruption" scope=spfile sid='*';System altered.                                --第八步,还原隐藏参数值。SQL> startup force                              --第九步,重启数据库,使参数生效。


0