oracle9i新特点:spfile的使用
–how to backup and restore spfile and controlfile using autobackup option
last updated: wednesday, 2004-10-27 0:40 eygle
本文发表于itpub技术丛书《oracle数据库dba专题技术精粹》,未经许可,严禁转载本文.
原文出处:
http://www.eygle.com/faq/oracle9i.new.feature.spfile.04.htm
六. spfile的备份与恢复
在本文开篇我们提到,oracle把spfile也纳入到rman的备份恢复策略当中,如果你配置了控制文件自动备份(autoback),那么oracle会
在数据库发生重大变化(如增减表空间)时自动进行控制文件及spfile文件的备份。
下面我们来看一下这个过程:
a. 设置控制文件自动备份:
[oracle@jumper oracle]$ rman target /
recovery manager: release 9.2.0.3.0 – production
copyright (c) 1995, 2002, oracle corporation. all rights reserved.
connected to target database: hsjf (dbid=1052178311)
rman> configure controlfile autobackup on;
using target database controlfile instead of recovery catalog
old rman configuration parameters:
configure controlfile autobackup off;
new rman configuration parameters:
configure controlfile autobackup on;
new rman configuration parameters are successfully stored
rman> exit
这个设置可以在数据库中通过如下方式查询得到:
[oracle@jumper bdump]$ sqlplus “/ as sysdba”
sql*plus: release 9.2.0.3.0 – production on sat jan 17 01:08:05 2004
copyright (c) 1982, 2002, oracle corporation. all rights reserved.
connected to:
oracle9i enterprise edition release 9.2.0.3.0 – production
with the partitioning, olap and oracle data mining options
jserver release 9.2.0.3.0 – production
sql> select * from v$rman_configuration;
conf# name value
———- ————————- ———-
1 controlfile autobackup on
b. 记录数据库变化
sql> create tablespace eygle
2 datafile /data1/oracle/oradata/eygle01.dbf
3 size 5m;
tablespace created.
如果新创建一个表空间,这时候检查alert<sid>.log文件,你可以在其中发现这样的备份信息:
sat jan 17 00:55:57 2004
starting control autobackup
control autobackup written to disk device
handle /opt/oracle/product/9.2.0/dbs/c-1052178311-20040117-00
completed: create tablespace eygle
datafile /data1/oracle/oradata/eygle01.dbf’
如果使用rman进行备份,在提示中你可以看到如下信息:
rman> configure controlfile autobackup on;
old rman configuration parameters:
configure controlfile autobackup off;
new rman configuration parameters:
configure controlfile autobackup on;
new rman configuration parameters are successfully stored
rman> run
2> {
3> allocate channel ch1 type disk format=e:\oracle\orabak\penny%t.arc;
4> backup archivelog all delete all input;
5> release channel ch1;
6> }
allocated channel: ch1
channel ch1: sid=13 devtype=disk
starting backup at 02-dec-03
current log archived
channel ch1: starting archive log backupset
channel ch1: specifying archive log(s) in backup set
input archive log thread=1 sequence=63 recid=168 stamp=511712617
input archive log thread=1 sequence=64 recid=169 stamp=511712620
input archive log thread=1 sequence=65 recid=170 stamp=511712626
input archive log thread=1 sequence=66 recid=171 stamp=511712690
channel ch1: starting piece 1 at 02-dec-03
channel ch1: finished piece 1 at 02-dec-03
piece handle=e:\oracle\orabak\penny511712693.arc comment=none
channel ch1: backup set complete, elapsed time: 00:00:03
channel ch1: deleting archive log(s)
archive log filename=e:\oracle\oradata\penny\archive\1_63.dbf recid=168 stamp=511712617
archive log filename=e:\oracle\oradata\penny\archive\1_64.dbf recid=169 stamp=511712620
archive log filename=e:\oracle\oradata\penny\archive\1_65.dbf recid=170 stamp=511712626
archive log filename=e:\oracle\oradata\penny\archive\1_66.dbf recid=171 stamp=511712690
finished backup at 02-dec-03
starting control file and spfile autobackup at 02-dec-03
piece handle=e:\oracle\ora92\database\c-3627775766-20031202-01 comment=none
finished control file and spfile autobackup at 02-dec-03
released channel: ch1
我们简单看一下自动备份的控制文件及spfile文件的格式及命名规则:
c-iiiiiiiiii-yyyymmdd-qq
c ————————控制文件
iiiiiiiiii———dbid
yyyymmdd————时间戳
qq———————-序号00-ff,16进制表示
c. 使用自动备份恢复spfile文件
[oracle@jumper bdump]$ rman target /
recovery manager: release 9.2.0.3.0 – production
copyright (c) 1995, 2002, oracle corporation. all rights reserved.
connected to target database: hsjf (dbid=1052178311)
rman> restore spfile to /tmp/spfileeygle.ora from autobackup;
starting restore at 17-jan-04
using target database controlfile instead of recovery catalog
allocated channel: ora_disk_1
channel ora_disk_1: sid=18 devtype=disk
channel ora_disk_1: looking for autobackup on day: 20040117
channel ora_disk_1: autobackup found: c-1052178311-20040117-01
channel ora_disk_1: spfile restore from autobackup complete
finished restore at 17-jan-04
rman> exit
recovery manager complete.
[oracle@jumper bdump]$ ls -l /tmp/spfileeygle.ora
-rw-r—– 1 oracle dba 3584 1月 17 09:34 /tmp/spfileeygle.ora
你同样可以通过这种方法恢复控制文件,示例如下:
[oracle@jumper bdump]$ rman target /
recovery manager: release 9.2.0.3.0 – production
copyright (c) 1995, 2002, oracle corporation. all rights reserved.
connected to target database: hsjf (dbid=1052178311)
rman> restore controlfile to /tmp/control01.ctl from autobackup;
starting restore at 17-jan-04
using target database controlfile instead of recovery catalog
allocated channel: ora_disk_1
channel ora_disk_1: sid=10 devtype=disk
channel ora_disk_1: looking for autobackup on day: 20040117
channel ora_disk_1: autobackup found: c-1052178311-20040117-02
channel ora_disk_1: controlfile restore from autobackup complete
finished restore at 17-jan-04
rman> exit
recovery manager complete.
[oracle@jumper bdump]$ ls -l /tmp/control*
-rw-r—– 1 oracle dba 1892352 1月 17 09:44 /tmp/control01.ctl
oracle9i自动备份控制文件的功能给我们带来了极大的收益,通过自动备份,在数据库出现紧急状况的时候,你可能可以从这个自动备份中获得更
为有效及时的控制文件.
缺省的,这个自动备份功能是关闭的,你可以用我们上面提到的方法打开该功能.
<<上一页 下一页>>
本文作者:
eygle,oracle技术关注者,来自中国最大的oracle技术论坛itpub.
www.eygle.com是作者的个人站点.你可通过guoqiang.gai@gmail.com来联系作者.欢迎技术探讨交流以及链接交换.
原文出处:
http://www.eygle.com/faq/oracle9i.new.feature.spfile.04.htm