方法一:创建文本格式的控制文件
$ sqlplus '/ as sysdba';
SQL> alter database backup controlfile to trace;
Database altered.
这种备份方式会产生一个trace文件(文本格式),可以使用编辑器进行编辑,里面记录了创建控制文件(control file)的脚本,其中包括了两部分-RESETLOGS和NORESETLOGS。还可以在trace后面跟resetlog/noresetlogs选项,单独生成指定类型的控制文件脚本。默认生成两种格式的。
SQL>alter database backup controlfile to trace resetlog/noresetlogs;
该命令生成的trace文件存放在参数文件中USER_DUMP_DEST参数指定的位置。默认位置为$ORACLE_HOME/admin//udump目录。(表示数据库实例名)
SQL> show parameter user_dump_dest
NAME TYPE VALUE
----------------------------- ----------- --------------------------------------------------
user_dump_dest string /space/orcl9i/admin/beta9i/udump
生成的trace文件名称为_ora_.trc。(表示数据库实例名,表示执行控制文件备份命令的会话所对应的操作系统进程号,相关信息可以查询v$session和v$process视图)
SQL> select sid,serial#,process,paddr from v$session where username='SYS';
SID SERIAL# PROCESS PADDR
---------- -------------- ------------------ ------------------------------
11 573 29185 000000038A296190
SQL> select spid,addr from v$process where
2 addr = (select paddr from v$session where username='SYS');
SPID ADDR
------------ --------------------------------
29186 000000038A296190
其中v$session视图PADDR字段等于v$process视图的ADDR字段。SPID就是执行控制文件备份命令的会话所对应的操作系统进程号。
此时已经在在USER_DUMP_DEST参数目录下创建了文件beta9i_ora_29186.trc。
$ ps -ef | grep 29185
orcl9i 29314 29159 0 09:23:51 pts/1 0:00 grep 29185
orcl9i 29186 29185 0 08:53:09 ? 0:00 oraclebeta9i (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
beta9i 29185 29181 0 08:53:08 pts/2 0:00 sqlplus / as sysdba
方法二:创建二进制格式的控制文件
$ sqlplus '/ as sysdba'
SQL> alter database backup controlfile to '/space/beta9i/controlfile.bak';
Database altered.
如果备份指定的文件已经存在,系统会报错,可以在命令中使用reuse选项来重用文件。
SQL> alter database backup controlfile to '/space/beta9i/controlfile.bak';
alter database backup controlfile to '/space/beta9i/controlfile.bak'
*
ERROR at line 1:
ORA-01580: error creating control backup file /space/beta9i/controlfile.bak
ORA-27038: skgfrcre: file exists
SQL> alter database backup controlfile to '/space/beta9i/controlfile.bak' reuse;
Database altered.
$ ls -l /space/beta9i/controlfile.bak
-rw-r----- 1 orcl9i dba 2023424 Nov 25 09:35 /space/beta9i/controlfile.bak
方法三、直接复制control file
复制又分两种,一是shutdown数据库,用操作系统的命令将control01.ctl复制到备份的目录中去。二是
sql>host copy c:oracleoradafoxcontrol01.ctl d:备份目录