RAC Attack - Oracle Cluster Database at Home/Setup Backups
Prev: RAC SQL and PLSQL
RAC Backups and Recovery (e)
- Setup Backups
- Flashback Database
- Block Change Tracking
- Archived Logs
- Database Backups
- Database Recovery
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 188.8.131.52.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 184.108.40.206.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