分类: Oracle
2010-01-13 23:12:18
目标:在同平台下,模拟数据库宕机的情况下,利用RMAN恢复整个数据库。该模拟平台是window平台。
一 备份与恢复整个过程如以下步骤:
(1)创建数据库ora2;
(2)利用RMAN备份整个数据库,包括参数文件,控制文件,数据文件,重做日志文件;
(3)创建一张表jsjzx,插入两条记录,操作完提交,并且对日志文件进行切换;
(4)关闭数据库ora2;
(5)删除数据库ora2;
(6)创建服务ora2;
(7)创建密码文件pwdora2.ora;
(8)创建adump,bdump,cdump,dpdump,pfile,udump文件;
(9)利用备份文件进行恢复数据库。
结果:数据库ora2正常启动,并且表jsjzx中的数据存在。
二 备份过程
由于要模拟的机器都是生产机,不允许关闭目标数据库,所以只能在打开状态下对目标数据库进行不一致备份,步骤如下:
(1)首先,利用oracle自带的数据库配置助手,创建一个数据库ora2。
(2)其次,要模拟的数据库运行在归档模式下,因此,要将数据库ora2修改成归档模式。由于修改归档模式需要在加载数据库并且数据库未打开的状态下进行,因此要在mount的状态下启动数据库,但最后需要将数据库打开(因为模拟的是数据库打开的状态下备份数据库,否则,无法备份归档日志文件),如下命令:
D:\>set oracle_sid=ora2
D:\>sqlplus "/as sysdba"
SQL*Plus: Release
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 612368384 bytes
Fixed Size 1250452 bytes
Variable Size 171969388 bytes
Database Buffers 436207616 bytes
Redo Buffers 2940928 bytes
数据库装载完毕。
SQL> archive log list;
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
当前日志序列 2
SQL> alter database archivelog;
数据库已更改。
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 1
下一个存档日志序列 2
当前日志序列 2
SQL>alter database open;
数据库已打开。
(3)启动RMAN并连接到目标数据库。
D:\>set oracle_sid=ora2
D:\>rman target system/oracle
恢复管理器: Release
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORA2 (DBID=1599628932)
(4)修改RMAN配置参数。
(i)查看配置参数信息
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; # default
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\PRODUCT\
(ii)修改配置参数,当备份数据库的时候能够自动备份控制文件
RMAN> configure controlfile autobackup on;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
(iii)创建目录d:\autobackup\cf,修改配置参数,使自动备份的控制文件以%F格式保存在d:\autobackup\cf目录下。其中,参数%F--复合format == c-IIIIIIIIII-YYYYMMDD-QQ,其中IIIIIIIIII为dbid,YYYYMMDD为年月日,QQ为十六进制的备份片的多个copy的序号(00-ff)。
RMAN> configure controlfile autobackup format for device type disk to 'd:\autobackup\cf\%F';
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\autobackup\cf\%F';
已成功存储新的 RMAN 配置参数
(iv)创建目录d:\ora\bak,修改配置参数,使备份文件以%d_%T_%s格式保存在d:\ora\bak目录下。其中,参数%d--数据库的db_name;参数%T--年月日(YYYYMMDD)=%Y%M%D;参数%s--备份集序号;
RMAN> configure channel device type disk format 'd:\ora\bak\%d_%T_%s';
新的 RMAN 配置参数:
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'd:\ora\bak\%d_%T_%s';
已成功存储新的 RMAN 配置参数
(v)再次查看配置参数信息
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 ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'd:\autobackup\cf\%F';
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 CHANNEL DEVICE TYPE DISK FORMAT 'd:\ora\bak\%d_%T_%s';
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\PRODUCT\
(5)备份整个数据库。
RMAN> run {backup full database include current controlfile;backup archivelog from time 'sysdate-3' format 'd:\ora\bak\arc_%U.bak';copy current controlfile to 'd:\ora\bak\control_bak.ctl';}
启动 backup 于 13-1月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\
SYSTEM01.DBF
输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\
SYSAUX01.DBF
输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\
UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\
USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 13-1月 -10
通道 ORA_DISK_1: 已完成段 1 于 13-1月 -10
段句柄=D:\ORA\BAK\ORA2_20100113_5 标记=TAG20100113T092244 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:15
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 ORA_DISK_1: 正在启动段 1 于 13-1月 -10
通道 ORA_DISK_1: 已完成段 1 于 13-1月 -10
段句柄=D:\ORA\BAK\ORA2_20100113_6 标记=TAG20100113T092244 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 13-1月 -10
启动 backup 于 13-1月 -10
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =2 记录 ID=1 时间戳=708168182
通道 ORA_DISK_1: 正在启动段 1 于 13-1月 -10
通道 ORA_DISK_1: 已完成段 1 于 13-1月 -10
段句柄=D:\ORA\BAK\ARC_
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 13-1月 -10
启动 backup 于 13-1月 -10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动数据文件副本
复制当前控制文件
输出文件名 = D:\ORA\BAK\CONTROL_BAK.CTL 标记 = TAG20100113T092304 recid = 2 时间戳 = 708168184
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 13-1月 -10
启动 Control File and SPFILE Autobackup 于 13-1月 -10
段 handle=D:\AUTOBACKUP\CF\C-1599628932-20100113-01 comment=NONE
完成 Control File and SPFILE Autobackup 于 13-1月 -10
由以上过程可知,首先备份整个数据库,包括数据文件和控制文件,保存在D:\ORA\BAK目录下,以%d_%T_%s格式保存,这里以ORA2_20100113_5和ORA2_20100113_6命名。其次,备份三天内的归档日志文件,保存在D:\ORA\BAK目录下,以arc_%U.bak 格式保存,其中,参数%U--复合format =%u_%p_%c;参数%u--8位字母唯一串;参数%p—备份片序号;参数%c—备份片的多个copy的序号。这里以ARC_
备份完成以后,发现归档日志也自动保存到D:\oracle\product\
ORA2\ARCHIVELOG\2010_01_13目录下,以01_MF_1_2_5NT830VT_.ARC命名。
(6)创建目录d:\ora\bak\spfile,将d:\oracle\product\
(7) 利用LIST BACKUP OF DATABASE 命令查看建立的备份集与备份片段信息。
RMAN> list backup of database;
使用目标数据库控制文件替代恢复目录
备份集列表
===================
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
4 Full
BP 关键字: 4 状态: AVAILABLE 已压缩: NO 标记: TAG20100113T092244
段名:D:\ORA\BAK\ORA2_20100113_5
备份集 4 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 545398 13-1月 -10 D:\ORACLE\PRODUCT\
2 Full 545398 13-1月 -10 D:\ORACLE\PRODUCT\
3 Full 545398 13-1月 -10 D:\ORACLE\PRODUCT\
4 Full 545398 13-1月 -10 D:\ORACLE\PRODUCT\