zoukankan      html  css  js  c++  java
  • TECH: Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION` with Automatic Undo Management [ID 283945.1]

     

    TECH: Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION` with Automatic Undo Management [ID 283945.1]


     

    Modified 18-MAY-2010     Type BULLETIN     Status PUBLISHED

     

     

     

     

    ***

    This article is being delivered in Draft form and may contain errors.  Please

    use the MetaLink "Feedback" button to advise Oracle of any issues related to

    this article.

    ***

     

    Warning

    ~~~~~~~

    The following instructions should only be used under the explicit direction

    of Oracle Support. These steps should only be used when all other conventional

    means of recovering the database have failed. Please note that there is no

    guarantee that this method will succeed.

     

    IF THE STEPS BELOW DO ALLOW YOU TO OPEN YOUR DATABASE THEN IT IS ESSENTIAL THAT

    THE DATABASE BE REBUILT AS IT IS NO LONGER SUPPORTED. FAILURE TO DO SO MAY LEAD

    TO DATA DICTIONARY INCONSISTENCIES, INTERNAL ERRORS AND CORRUPTIONS.

       

    ** Note: The steps here apply to Oracle 9i or higher and only and when Automatic

    Undo Management is being used. **

     

    Steps to attempt to force the database open:

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     

    1) Backup the database while the database is closed.

     

    THE INSTRUCTIONS HERE ARE DESTRUCTIVE. YOU ARE STRONGLY ADVISED TO BACKUP THE

    DATABASE BEFORE PROCEEDING. IF YOU DO NOT DO THIS YOU MAY LOSE THE CHANCE TO

    TRY OTHER OPTIONS.

     

     

    2) If your datafiles are from different points in time, it is best to try to

    use system tablespace datafiles at a similar timestamp to the OLDEST files

    you have online in the database. This reduces the chance that you will get

    problems during the bootstrap phase of opening the database.

     

     

    3) Edit your *init<sid>.ora file to change undo_management and add two parameters.

     

    *  Change UNDO_MANAGEMENT=AUTO to

     

      UNDO_MANAGEMENT=MANUAL

     

    *  Remove or comment out UNDO_TABLESPACE and UNDO_RETENTION.

     

    *  Add

     

      _ALLOW_RESETLOGS_CORRUPTION = TRUE

      _CORRUPTED_ROLLBACK_SEGMENTS =(comma separated list of Automatic Undo segments)

     

    Example: 

     

      _CORRUPTED_ROLLBACK_SEGMENTS = (_SYSSMU1$, _SYSSMU2$, _SYSSMU3$, _SYSSMU4$,

      _SYSSMU5$, _SYSSMU6$, _SYSSMU7$, _SYSSMU8$, _SYSSMU9$, _SYSSMU10$)

     

    Note, sometimes the alert log will tell you what Automatic Undo segments are in

    use.  Search the alert log for SYSS.  If the alert log does not contain that

    information then use _SYSSMU1$ through _SYSSMU10$ as shown in the example above.

     

    In UNIX you can issue this command to get the undo segment names:

     

      $ strings system01.dbf | grep _SYSSMU | cut -d $ -f 1 | sort -u

     

    From the output of the strings command above, add a $ to end of each _SYSSMU

    undo segment name.

     

    *  If you only have a spfile available, you can from the closed, nomount or the

    mount stage create an init<sid>.ora file as follows:

     

      SQL>  CREATE PFILE FROM SPFILE;

     

    Do NOT edit the SPFILE.

     

     

    4) Invoke SQL*Plus, startup mount, check that correct init<sid>.ora was used and

    all datafiles are in the status of online or system.

     

      $ sqlplus "/as sysdba"

     

      SQL>   startup mount pfile = (full path / file name to init<sid>.ora)

    Confirm that the hidden parameters from step 3 were used:

     

      SQL>   show parameters corrupt

     

    You should see both hidden parameters listed. If not, the wrong init<sid>.ora

    may have been modified.  Do not continue until "show parameters corrupt" shows

    both hidden parameters.

     

      SQL>   show parameters undo

     

    You should see undo management set to manual. If not, the wrong init<sid>.ora

    may have been modified.  Do not continue until "show parameters undo" shows

    undo management as manual.

     

    Check that all files you want to open with are listed as ONLINE or as SYSTEM. 

     

      SQL>   select name, file#, status from v$datafile where status not in

         ('SYSTEM', 'ONLINE');

     

    If any rows are returned from the query above, bring the file(s) online with:

     

      SQL>   ALTER DATABASE DATAFILE file# ONLINE;

     

    and repeat until there are no files in an OFFLINE status. If any file remains or

    changes into "recover" status after you try to online the file proceed to step 5.

     

    5)  Perform a fake incomplete recovery then open the database with resetlogs.

     

      SQL>   recover database until cancel;

     

                 or

     

      SQL>   recover database using backup controlfile until cancel;

     

    WHEN PROMPTED FOR AN ARCHIVELOG FILE TYPE cancel THEN PRESS ENTER.

     

      SQL>   ALTER DATABASE OPEN RESETLOGS;

     

     

    6) If the database opens try selecting from a table. For example:

     

      SQL>   SELECT SYSDATE FROM DUAL;

     

    If you get a row back the database is open and "functional".  If you wish, you

    may try to select from a other tables to make sure the database is functional

    enough for the required export.

     

    With the database open and functional you should attempt to export the database

    IMMEDIATELY. Once you have an export the database MUST be recreated from scratch.

    This means dropping and deleting ALL datafiles and creating a new database from

    scratch.

                  

    A database which has been opened in this way but not rebuilt will not be

    supported by Oracle. Any delay in exporting the contents or any attempt to

    use the system may cause irreparable damage.

     

    NOTE: BE SURE TO REVERSE / REMOVE THE INIT.ORA PARAMETERS ADDED IN STEP 3

    OTHERWISE YOU MAY ACCIDENTALLY CORRUPT ANY NEW DATABASE CREATED USING THE SAME

    INIT<sid>.ORA FILE.

      

    7)  If the instance crashed in the open phase of step 5, check for trace files

    in the background dump destination.  If you find a trace file, check to see if

    the trace file has an ORA-00600 [2662] or ORA-00600 [4000] error in it.

    Either of these errors may also be seen in the alert.log file.

     

    If you see the ORA-00600 [2662] or ORA-00600 [4000] error, provide Oracle Support

    Services the full error message. Oracle Support Services will provide steps to advance

    the SCN using a hidden parameter.

     

     

    NOTE: BE SURE TO REVERSE / REMOVE THE INIT.ORA PARAMETERS ADDED IN STEP 3

    OTHERWISE YOU MAY ACCIDENTALLY CORRUPT ANY NEW DATABASE CREATED USING THE SAME

    INIT<sid>.ORA FILE.

     

     

      *************************************************************************

      *                                                                       *

      * CAUTION: Once the database is open, it is imperative that you export, *

      *          rebuild the database, and import.                            *

      *                                                                       *

      * By forcing open the database in this fashion, there is a strong       *

      * likelihood of logical corruption, possibly affecting the data         *

      * dictionary.  Oracle does not guarantee that all of the data will be   *

      * accessible nor will it support a database that has been opened by     *

      * this method and that the database users will be allowed to continue   *

      * work.  All this does is provide a way to get at the contents of the   *

      * database for extraction, usually by export.  It is up to you to       *

      * determine the amount of lost data and to correct any logical          *

      * corruption issues.                                                    *

      *                                                                       *

      *************************************************************************

     

     

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     

     

    Related Documents:

     

    Note 41399.1  (Limited) TECH: Summary For Forcing The Database Open With

    `_ALLOW_RESETLOGS_CORRUPTION`

     

    (Use note 41399.1 for versions previous to 9i or with an Oracle version not

    using Automatic Undo Management but that is instead using rollback segments)

     

     

    Related


    Products


    ·         Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Enterprise Edition

    ·         Enterprise Management > Enterprise Manager Consoles, Packs, and Plugins > Managing Databases using Enterprise Manager > Enterprise Manager for RDBMS

    ·         Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Personal Edition

    ·         Oracle Database Products > Oracle Database > Oracle Database > Oracle Server - Standard Edition

    Errors


    ORA-600[2662]; ORA-600[4000]

     

     

     

    ------------------------------------------------------------------------------

    Blog http://blog.csdn.net/tianlesoftware

    网上资源: http://tianlesoftware.download.csdn.net

    相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

    DBA1 群:62697716(); DBA2 群:62697977()

    DBA3 群:62697850   DBA 超级群:63306533;    

    聊天 群:40132017

    --加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

    道森Oracle,国内最早、最大的网络语音培训机构,我们提供专业、优质的Oracle技术培训和服务! 我们的官方网站:http://www.daosenoracle.com 官方淘宝店:http://daosenpx.taobao.com/
  • 相关阅读:
    「网络流 24 题」太空飞行计划
    Wannafly挑战赛2D Delete (最短路好题)
    牛客 216 C 小K的疑惑
    Till I Collapse CodeForces
    bzoj 2734 集合悬殊 (状压dp)
    图写成一个类(2)
    写程序的易错点(不定期更新)
    强联通分量之kosaraju算法
    对各种lca算法的理解
    pb_ds的优先队列实现dijkstra
  • 原文地址:https://www.cnblogs.com/tianlesoftware/p/3609847.html
Copyright © 2011-2022 走看看