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,赶紧备份吧!

  • 相关阅读:
    关于Maya Viewport 2.0 API 开发的介绍视频
    春节大假
    Some tips about the life cycle of Maya thread pool
    Can I compile and run Dx11Shader for Maya 2015 on my side?
    How to get current deformed vertex positions in MoBu?
    想加入全球首届的 欧特克云加速计划吗?
    三本毕业(非科班),四次阿里巴巴面试,终拿 offer(大厂面经)
    mac、window版编辑器 webstorm 2016... 永久破解方法。
    node 搭载本地代理,处理web本地开发跨域问题
    js 一维数组,转成嵌套数组
  • 原文地址:https://www.cnblogs.com/amadeuslee/p/3744191.html
Copyright © 2011-2022 走看看