咨询微信: dbservice1234 7 x 24 在线支持!

How Recover an Oracle Database Backup in Windows When Everything is Lost

How Recover an Oracle Database Backup in Windows When Everything is Lost

GOAL
Which steps have to follow in order to recover a backup of a database in a windows platform when everything is lost ?
 
SOLUTION
NOTE: In the images and/or the document content below, the user information and environment data used represents fictitious data from the
Oracle sample schema(s), Public Documentation delivered with an Oracle database product or other training material. Any similarity to actual
environments, actual persons, living or dead, is purely coincidental and not intended in any manner.
For the purposes of this document, the following fictitious environment is used as an example to describe the procedure:
 
Database and SID Name:  YOURDB
 
************
 
First of all we need to install the Oracle Database Software, we need to install the same database release and the same patch set level.  But we must not create any database, in the installer window you
must select the option of installing software only.
 
Once the Oracle Database software is installed, to recover from an OS backup of your database in a windows platform, it's necessary :
 
 
    1: Create an Oracle Password File
    -------------------------------------------------------------
    For full details on how to create a password file please refer to Oracle9i Database
    Administrator's Guide.
   
      For example:  orapwd file=oraYOURDB.pwd password=<password> entries=10
   
   
   
    2: Create an Initialization Parameter File
    ----------------------------------------------------------------------
    Restore the init.ora file from the backup, and if you don't have the init.ora
    you can use an init.ora from another database and make the necessary changes
    You need setup the required parameters e.g DB_NAME, CONTROL_FILES and
    directories for bdump, udump,cdump etc...
   
      Parameter file '<ORACLE_HOME>\DATABASE\initYOURDB.ORA'
   
    3: Restore all the database files
    ----------------------------------------------------------------------
    Restore all the database files to the same location that they were in production database
   
    You must restore:
    -> controlfiles     <to  the location indicated in control_files parameter  in the init...ora>
    -> database files  
    -> Archivelog files <to the log_archive_dest directory in the init...ora>
   
    Make sure that you have the necessary backups of database and archived redo logs
   
   
   
    4: Create the Oracle services
    --------------------------------
    Create a new NT service for the duplicate database YOURDB using oradim.
   
     C:\>oradim -new -sid YOURDB -intpwd <password> -maxusers 10 -startmode auto -pfile  '<your pfile location>'
   
    if you don't have at least one control file, you  will need to recreate the control file.
    But must be careful,  you need to be sure that all the data files are  included in
    the CREATE CONTROLFILE command and that are all in the right location. Also must
    assure that the redolog files can be created in the indicated location.
       
    To recreate the control file 
   
      C:\> set ORACLE_SID=YOURDB
      C:\> sqlplus "sys/<password> as sysdba"
      SQL> startup nomount
      SQL> CREATE CONTROLFILE REUSE DATABASE YOURDB RESETLOGS  ARCHIVELOG
           MAXLOGFILES 16
           MAXLOGMEMBERS 3
           MAXDATAFILES 100
           MAXINSTANCES 8
           MAXLOGHISTORY 454
       LOGFILE
         GROUP 1 '<log_file_name_and_location>'  SIZE <size>M,
         GROUP 2 '<log_file_name_and_location>'  SIZE <size>M,
         GROUP 3 '<log_file_name_and_location>'  SIZE <size>M
      DATAFILE
      '<datafile_1_name_and_location>',
        .....
        '<datafile_1_name_and_location>'
      CHARACTER SET <your_db_charset>;
  
     You can change the CREATE control file options if you want:
    
     * CREATE CONTROLFILE SYNTAX:           
     This  information is fully documented in the Oracle SQL Reference Manual. 
     
                                               
       CREATE CONTROLFILE [REUSE]              
          DATABASE name                        
          [LOGFILE filespec [, filespec] ...]  
           RESETLOGS | NORESETLOGS             
          [MAXLOGFILES integer]                
          [DATAFILE filespec [, filespec] ...] 
          [MAXDATAFILES integer]               
          [MAXINSTANCES integer]               
          [ARCHIVELOG | NOARCHIVELOG]          
          [SHARED | EXCLUSIVE]                 
                                               
     
   
    5: Recover and Open database
    -------------------------------------
      C:\> set ORACLE_SID=YOURDB
      C:\> sqlplus "/ as sysdba"
      SQL> startup mount
      SQL> recover database until cancel using backup control file;
                    ===> apply all the archivelogs available and when you won't have
                         more available then type CANCEL
   
      SQL> alter database open resetlogs;