Backing up Infiniband Swithes

If you're an Exadata admin, your title becomes DMA (Database Machine Administrator) instead of DBA. Since backups are routine tasks of every DBA, scope of what to backup extends a little bit when it comes to Exadata. Beyond the databases, you need to backup hardware also.

So, let's start with infiband swithes. Before configurations changes or updating its software it's a good practice to backup them. There are 3 things to backup and actually it's a really simple thing to do.

Here are the steps for firwware version 1.3.3:

1. Login to switch's ILOM interface. There should be an https address for that
2. Click on the "Maintenance" tab an then "Backup/Restore"
3. Select "Backup" as operation and "Browser" as transfer method from the drop downs
4. Write a passphrase
5. Click "Run" button and save the XML output.
6. For the next item to backup logon to switch through ssh
7. Take a backup of the file opensm.conf under /etc/opensm/ directory to somewhere else. 
8. Last to backup is the output of the commad: version

Don't forget to repeat steps for other infiband switches too:)

Recreating the spfile on ASM from pfile

You may face with  one of the errors below or such while you are starting your database, probably after you alter some parameters' values and restart.

  • ORA-15124 : ASM file name '...' contains an invalid alias name
  • ORA-01078 : Failure in processing system parameters
So, what you need to do is correct the faulty value in the spfile and retry starting up. However if your database is mounted on ASM and you don't have a backup, you need to get the spfile which is on ASM. Here are the steps you may follow:

1. Logon to your server as Oracle owner, such as oracle

2. Get the spfile from ASM:

SQL> CREATE PFILE FROM SPFILE='+DATA/<DBID>/spfile<DBID>.ora;

File is saved as /u01/app/oracle/product/11.2.0/dbhome_1/dbs/init<DBID>.ora over pfile by default.
Alternatively you can specify the output file by giving pfile='/tmp/pfile.ora' option to the statement above. If you don't, it's better backup your original pfile. 

3. Change what is wrong in the pfile with your favorite text editor 

Note: If there is, remove the line "spfile='+DATA/<DBID>/spfile<DBID>.ora'" at the end of the file. If you don't, Oracle read the spfile in ASM as it's set in that line.
 
4. Create a new spfile from the pfile you have just edited:

SQL> STARTUP MOUNT PFILE='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/init<DBID>.ora';
SQL> CREATE SPFILE='+DATA/<DBID>/spfile<DBID>.ora' FROM PFILE;

5. You can see that the spfile in ASM has been changed. You may use asmcmd utility to do this:

ASMCMD> cd +DATA/<DBID> 
ASMCMD> ls -l spfile*

6. Now, it's time to tidy up and make everything as it supposed to be. Shutdown your database first:

SQL> SHUTDOWN IMMEDIATE;

7. Change the pfile back to its original state by restoring pfile backup you got in step 2 or create a new one.  Its contents should be like:

spfile=’+DATA/<DBID>/spfile<DBID>.ora’

(Backup the new pfile you created first, just in case)

8.  Start your database
    If it's a RAC:
    $ srvctl start database -d <DBID>
    Otherwise:
    SQL> STARTUP

9. See that the spfile being used is the one in the ASM:
    SQL> SHOW PARAMETER spfile;

That's all...