zoukankan      html  css  js  c++  java
  • 【Vegas原创】联机日志丢失,recover database until cancel不可以的解决方法

    情形:RMAN做DB还原,restore后,发现redo log全部丢失,archive log也没有了

    解决方法:重建日志文件,重建控制文件。

    重建日志文件:

    1,

    SQL> SELECT NAME,OPEN_MODE,LOG_MODE FROM V$DATABASE;

    NAME      OPEN_MODE  LOG_MODE
    --------- ---------- ------------
    HISDB     MOUNTED    ARCHIVELOG

    数据库处于归档模式

    2,

    SQL> SELECT GROUP#,SEQUENCE#,STATUS FROM V$LOG;

        GROUP#  SEQUENCE# STATUS
    ---------- ---------- ----------------
             1          5 INACTIVE
             3          4 INACTIVE
             2          6 CURRENT

    3,由于GROUP 2是当前日志组,所以先删除GROUP 1 与GROUP 3,然后重建日志文件,再删除GROUP 2。就算不行,肯定能删除掉两个group,一个个的尝试删掉,重建吧~

    SQL> SELECT MEMBER FROM V$LOGFILE WHERE GROUP#=1;

    MEMBER
    ------------------------------------------------------

    D:\ORACLE\PRODUCT\10.2.0\ORADATA\HISDB\REDO01.LOG

    SQL>ALTER DATABASE DROP LOGFILE GROUP 1;
    SQL>ALTER DATABASE DROP LOGFILE GROUP 3;
     
    SQL> alter database add logfile ('F:\oracle\product\10.2.0\oradata\hisdb\redo01.
    log') size 30m;
    SQL> alter database add logfile ('F:\oracle\product\10.2.0\oradata\hisdb\redo03.
    log') size 30m;
     
    SQL> ALTER SYSTEM SWITCH LOGFILE;

    执行此语句出错,因为数据库还未open

    SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;

    此语句还是不行~

    4,用重建控制文件的方法来重建数据库(可选)

    SQL> alter database backup controlfile to trace;

     找到trace文件(udump),将刚才trace出来的control文件copy出来,更改redolog路径(必要时)执行:

    CREATE CONTROLFILE REUSE DATABASE "HISDB" RESETLOGS ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
    LOGFILE
    GROUP 1 'F:\oracle\product\10.2.0\oradata\hisdb\REDO01.LOG' SIZE 30M,
    GROUP 2 'F:\oracle\product\10.2.0\oradata\hisdb\REDO02.LOG' SIZE 30M,
    GROUP 3 'F:\oracle\product\10.2.0\oradata\hisdb\redo03.LOG' SIZE 30M
    -- STANDBY LOGFILE
    DATAFILE
    'F:\oracle\product\10.2.0\oradata\hisdb\SYSTEM01.DBF',
    'F:\oracle\product\10.2.0\oradata\hisdb\UNDOTBS01.DBF',
    'F:\oracle\product\10.2.0\oradata\hisdb\SYSAUX01.DBF',
    'F:\oracle\product\10.2.0\oradata\hisdb\USERS01.DBF',
    'F:\oracle\product\10.2.0\oradata\hisdb\EXAMPLE01.DBF',
    'F:\oracle\product\10.2.0\oradata\hisdb\DRSYS',
    'F:\oracle\product\10.2.0\oradata\hisdb\INDX',
    'F:\oracle\product\10.2.0\oradata\hisdb\RBS',
    'F:\oracle\product\10.2.0\oradata\hisdb\TOOLS'
    CHARACTER SET WE8ISO8859P1
    ;

    5,重建logfile2(可选)

    SQL> startup mount;
    SQL> alter database drop logfile group 2;
    SQL> alter database add logfile ('F:\oracle\product\10.2.0\oradata\hisdb\redo02.log') size 30m;

      

    如果执行第四步骤,可以将不可删除的redo文件(如redo02.log)路径改为正确路径(如将C:\改到F:\),并copy、paste已经创建的redo文件(如redo01.log),rename为redo02.log,之后直接open resetlogs即可。

    6,恢复及打开数据库

    SQL> recover database using backup controlfile until cancel;
    SQL> alter database open resetlogs;

    到此处,成功了!!

    7,开启后,重建临时表空间

    SQL> alter tablespace temp add tempfile 'F:\oracle\product\10.2.0\oradata\hisdb\TEMP01.DBF' size 30m;

    好了,ok了。

    8,赶紧备份吧!

  • 相关阅读:
    [LeetCode] 64. 最小路径和 ☆☆☆(动态规划)
    [LeetCode] 62. 不同路径 ☆☆☆(动态规划)
    [LeetCode] 25. K 个一组翻转链表 ☆☆☆☆☆(链表)
    jquery validate 多种使用方式
    javascript 闭包学习
    javascript prototype学习
    jquery中event对象属性与方法小结
    html5获取地理位置信息
    thinkphp 构建子查询
    mongodb gridfs基本使用
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744191.html
Copyright © 2011-2022 走看看