Last modified on 5 April 2013, at 05:56

RAC Attack - Oracle Cluster Database at Home/Setup Backups


During this lab we will intentionally misconfigure the cluster database backups and make some common mistakes with local, non-shared storage.



  1. Login to a terminal on collabn1 as the user oracle.


  2. On collabn1 create a directory /u01/app/oradata and try to configure it as the Flash Recovery Area (FRA) through the init param db_recovery_file_dest. The operation will fail.

    collabn1:/home/oracle[RAC1]$ mkdir /u01/app/oradata
     
    collabn1:/home/oracle[RAC1]$ ss
    SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 4 07:39:57 2009
     
    SQL> show parameter recovery_file
     
    NAME                            TYPE        VALUE
    ------------------------------- ----------- ------------------------------
    db_recovery_file_dest           string      +FRA
    db_recovery_file_dest_size      big integer 4000M
     
    SQL> alter system set db_recovery_file_dest='/u01/app/oradata';
    alter system set db_recovery_file_dest='/u01/app/oradata'
    *
    ERROR at line 1:
    ORA-32008: error while processing parameter update at instance RAC2
    ORA-02097: parameter cannot be modified because specified value is invalid
    ORA-01261: Parameter db_recovery_file_dest destination string cannot be
    translated
    ORA-01262: Stat failed on a file destination directory
    Linux Error: 2: No such file or director
    


  3. Now create the directory on the remote node and re-run the operation. This should succeed but it is still a poor configuration; we will investigate the reasons later in this lab.

    SQL> host ssh collabn2 mkdir /u01/app/oradata
     
    SQL> alter system set db_recovery_file_dest='/u01/app/oradata';
    System altered.
    


  4. Shutdown the database across the cluster. Then mount it on collabn1 and put the database into archivelog mode. No archivelog destination is assigned – where will the archivelogs go and why?

    collabn1:/home/oracle[RAC1]$ srvctl stop database -d RAC
    collabn1:/home/oracle[RAC1]$ srvctl status database -d RAC
    Instance RAC1 is not running on node collabn1
    Instance RAC2 is not running on node collabn2
     
    collabn1:/home/oracle[RAC1]$ ss
    SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 4 09:08:01 2009
     
    SQL> startup mount
     
    SQL> alter database archivelog;
    Database altered.
     
    SQL> alter database open;
     
    collabn1:/home/oracle[RAC1]$ srvctl start database -d RAC