SPFILE的备份与恢复一

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

六. 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 2004Starting control autobackupControl autobackup written to DISK devicehandle '/opt/oracle/product/9.2.0/dbs/c-1052178311-20040117-00'Completed: create tablespace eygledatafile '/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自动备份控制文件的功能给我们带来了极大的收益,通过自动备份,在数据库出现紧急状况的时候,你可能可以从这个自动备份中获得更为有效及时的控制文件.

缺省的,这个自动备份功能是关闭的,你可以用我们上面提到的方法打开该功能.

七. 设置Events事件

Events事件是Oracle的重要诊断工具及问题解决办法,很多时候需要通过Events设置来屏蔽或者更改Oracle的行为,下面我们来看一下怎样修改spfile,增加Events事件设置:

SQL alter system set event='10841 trace name context forever' scope=spfile;

System altered.

SQL startup force;

ORACLE instance started.

Total System Global Area 101782380 bytes

Fixed Size 451436 bytes

Variable Size 75497472 bytes

Database Buffers 25165824 bytes

Redo Buffers 667648 bytes

Database mounted.

Database opened.

SQL show parameter event

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

event string 10841 trace name context forever

顺便提一句,10841事件是用于解决Oracle9i中JDBC Thin Driver问题的一个方法,假如你的alert.log文件中出现以下错误提示:

Wed Jan 7 17:17:08 2004

Errors in file /opt/oracle/admin/phsdb/udump/phsdb_ora_1775.trc:

ORA-00600: internal error code, argument

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有