RAC Attack - Oracle Cluster Database at Home/Setup Backups

From Wikibooks, open books for an open world
Jump to navigation Jump to search


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