RAC Attack - Oracle Cluster Database at Home/Setup Backups
Appearance
Prev: RAC SQL and PLSQL
RAC Backups and Recovery (e)
- Setup Backups
- Flashback Database
- Block Change Tracking
- Archived Logs
- Database Backups
- Database Recovery
Next: Home
During this lab we will intentionally misconfigure the cluster database backups and make some common mistakes with local, non-shared storage.
- Login to a terminal on collabn1 as the user oracle.
-
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
The error occurred on the remote node, but was reported here. It was also recorded on the remote node – do you know where it is recorded? What kind of monitoring would need to be in place to be proactively alerted by messages like this?
- 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.
-
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?
You do not need to disable the cluster_database init param for this.
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