发新话题
打印

oracle10G自动备份与恢复参数文件

本帖已经被作者加入个人空间

oracle10G自动备份与恢复参数文件

ORACLE 10G中新增了一个对控制文件和参数文件的自动备份,这对我们进行控制文件与参数文件的保护又提供了一层保护。10G中默认情况下自动备份是没有打开的,我们需要到RMAN下打开它的自动备份功能。
C:\Documents and Settings\Administrator>rman target sys/oracle nocatalog
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 11月 10 09:33:31 2006
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
连接到目标数据库: ORCL (DBID=1133656846)
使用目标数据库控制文件替代恢复目录
RMAN> show all;
RMAN 配置参数为:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO 'D:\ORACLE\10G\DATABASE\SNCFORCL.ORA'; #
default
##将自动备份功能设置为ON状态##
RMAN> configure controlfile autobackup on;
旧的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数

##只有当数据库发生的结构的改变时,才会触发自动备份功能,例如增加或删除一下数据文件时,下面的测试我们将新增加一个数据文件,以触发一次自动备份控制文件和参数文件##
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 10 09:37:31 2006
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
SQL> conn sys/oracle as sysdba;
已连接。
SQL> select v$tablespace.name,v$datafile.name from v$tablespace join v$datafile
using(ts#);
NAME
------------------------------
NAME
--------------------------------------------------------------------------------
SYSTEM
D:\ORACLE\DATABASE\ORCL\SYSTEM01.DBF
UNDOTBS1
D:\ORACLE\DATABASE\ORCL\UNDOTBS01.DBF
SYSAUX
D:\ORACLE\DATABASE\ORCL\SYSAUX01.DBF

NAME
------------------------------
NAME
--------------------------------------------------------------------------------
USERS
D:\ORACLE\DATABASE\ORCL\USERS01.DBF
EXAMPLE
D:\ORACLE\DATABASE\ORCL\EXAMPLE.DBF

SQL> alter tablespace example add datafile 'd:\oracle\database\orcl\example01.db
f' size 5M;
表空间已更改。
##查看新添加的数据文件EXAMPLE01.DBF##
SQL> select name,file# from v$datafile;
NAME
--------------------------------------------------------------------------------
     FILE#
----------
D:\ORACLE\DATABASE\ORCL\SYSTEM01.DBF
         1
D:\ORACLE\DATABASE\ORCL\UNDOTBS01.DBF
         2
D:\ORACLE\DATABASE\ORCL\SYSAUX01.DBF
         3

NAME
--------------------------------------------------------------------------------
     FILE#
----------
D:\ORACLE\DATABASE\ORCL\USERS01.DBF
         4
D:\ORACLE\DATABASE\ORCL\EXAMPLE.DBF
         5
D:\ORACLE\DATABASE\ORCL\EXAMPLE01.DBF
         6

选择6行。
SQL>
##在ALERT_<SID>.中会看到下面的描述,它提示控制文件已经自动备份到默认的文件夹中,虽然下面的描述中
没有提示SPFILE已备份,但是据我后面的测试过程中,也可以对spfile进行自动恢复##
Control autobackup written to DISK device
handle 'D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2006_11_10\O1_MF_S_606131178_2O7PHGBL_.BKP'
Completed: alter tablespace example add datafile 'd:\oracle\database\orcl\example01.dbf' size 5M
##下面我们将数据库SHUTDOWN,将SPFILE修改文件名,使数据从PFILE启动,以测试最后是否可以从自动备动备份的参数文件中恢复,注意:执行自动恢复只能在RMAN下进行恢复,不能在"SQL>"下恢复。这种恢复只能在OPEN和MOUNT状态下才可以恢复,否则不会成功。##

RMAN> restore spfile to 'd:\oracle\10g\database\spfileorcl.ora' from autobackup;

启动 restore 于 10-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=143 devtype=DISK
恢复区域目标: D:\oracle\flash_recovery_area
用于搜索的数据库名 (或数据库的唯一名称): ORCL
通道 ORA_DISK_1: 在恢复区域中找到自动备份
通道 ORA_DISK_1: 已找到的自动备份: D:\ORACLE\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP
\2006_11_10\O1_MF_S_606131178_2O7PHGBL_.BKP
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 10-11月-06
##恢复后可以尝试STARTUP数据库,以检验是否恢复成功,然后执行"show parameter spfle以查看是否由SPFILE启动"##
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size             113247588 bytes
Database Buffers           50331648 bytes
Redo Buffers                2945024 bytes
数据库装载完毕。
数据库已经打开。
##当数据库不能到MOUNT状态只能到NOMOUNT时,我们就不能使用上面的办法去恢复参数文件,那么只能直接指定自动备份集来进行恢复##
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area  167772160 bytes
Fixed Size                  1247900 bytes
Variable Size             113247588 bytes
Database Buffers           50331648 bytes
Redo Buffers                2945024 bytes
SQL>

##在RAMN状态下执行恢复,恢复后可以尝试STARTUP数据库,以检验是否恢复成功,然后执行"show parameter spfle以查看是否由SPFILE启动##
RMAN> restore spfile to 'd:\oracle\10g\database\spfileorcl.ora' from 'D:\oracle\
flash_recovery_area\ORCL\AUTOBACKUP\2006_11_10\O1_MF_S_606131178_2O7PHGBL_.BKP';

启动 restore 于 10-11月-06
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 已找到的自动备份: D:\oracle\flash_recovery_area\ORCL\AUTOBACKUP
\2006_11_10\O1_MF_S_606131178_2O7PHGBL_.BKP
通道 ORA_DISK_1: 从自动备份复原 SPFILE 已完成
完成 restore 于 10-11月-06
RMAN>
至此SPFILE的自动备份与恢复的测试已经完成,其中有不完善的地方,请大家多多指教。
发新话题
查看积分策略说明

快速回复主题

选项

[完成后可按 Ctrl+Enter 发布]  预览帖子  恢复数据  清空内容