Tip

Script to back up database controlfile

The script will enable DBAs to backup the database controlfile in binary and ASCII format. When a DBA issues the command "alter database backup controlfile to trace;", the result is a trace file written to the location defined by USER_DUMP_DEST, similar to mdl1_ora_25524.trc (which is in the format ORACLE_SID_ora_SPID.trc). This script will find the trace file just written and rename it to controlfile.backup. Therefore, if you backup the controlfile to trace a million times, you will still only have one controlfile.backup versus a million trace files. Since it is a shell script, it should work on all versions of Oracle running Unix (and probably Linux) but it has only been tested on Oracle 8i running Solaris.

#!/bin/sh
 
# Michael Dinh - August 2002
# Backup controlfile - binary
# Backup controlfile to trace - ascii
# Rename trace file to controlfile.backup
 
umask 077
ORACLE_SID= ; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle ; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/8.1.7 ; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib ; export LD_LIBRARY_PATH
 
USER_DUMP_DEST=`$ORACLE_HOME/bin/sqlplus -s "/ as sysdba" << END1
    SET PAUSE OFF
    SET PAGES 0
    SET ECHO OFF
    SET VERIFY OFF
    SET FEED OFF
    SELECT value
    FROM   v\$parameter
    WHERE  name = 'user_dump_dest';
    EXIT
END1`
export USER_DUMP_DEST
 
TRACEID=`$ORACLE_HOME/bin/sqlplus -s "/ as sysdba" << END1
set pause off
set pages 0
set echo off
set verify off
set feed off
alter database backup controlfile to 'controlfile.backup' REUSE;
alter database backup controlfile to trace;
select p.spid
from   v\$session s, v\$process p
where  s.paddr = p.addr
and    s.machine = name of the server
and    s.username = 'SYS';
exit
END1`
export TRACEID
 
mv $USER_DUMP_DEST/${ORACLE_SID}_ora_${TRACEID}.trc $USER_DUMP_DEST/controlfile.backup
exit

For More Information

  • Feedback: E-mail the editor with your thoughts about this tip.
  • More tips: Hundreds of free Oracle tips and scripts.
  • Tip contest: Have an Oracle tip to offer your fellow DBAs and developers? The best tips submitted will receive a cool prize -- submit your tip today!
  • Ask the Experts: Our SQL, database design, Oracle, SQL Server, DB2, metadata, and data warehousing gurus are waiting to answer your toughest questions.
  • Forums: Ask your technical Oracle questions--or help out your peers by answering them--in our active forums.
  • Best Web Links: Oracle tips, tutorials, and scripts from around the Web.

    Requires Free Membership to View

This was first published in November 2002

There are Comments. Add yours.

 
TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.