资源描述
数据备份恢复应急演练方案
二零一四年十月
目录
第一章 应急恢复演练目标 2
第二章 应急恢复演练范围及演练参考文档 2
2.1 应急恢复演练参与人员及分工 3
2.2 应急恢复演练场景 4
2.3 应急恢复演练环境组成 4
2.3.1 生产环境组成 4
2.3.2 应急演练环境组成 6
2.4 应急恢复演练内容 8
2.4.1 应急恢复演练事前准备 8
2.4.2 应急恢复演练关键步骤 9
2.3.1 应急恢复演练观察、跟踪和审计 9
附件一:数据库应急恢复演练具体步骤 10
附件二: 恢复预演时间估算-3月23日(8个小时) 26
第一章 应急恢复演练场景
序号
项目
内容
备注
1
场景模拟
CSP数据库发生异常数据库无法正常开启
2
演练目标
在异机重构数据库,进行全库恢复; 11.2.0.4.4RAC数据库恢复到11.2.0.4.4rac数据库中。
2.1 应急恢复演练内容
2.4.1 应急恢复演练关键步骤
1) 应用数据检测
2) 应用数据备份
3) 模拟数据库损坏,不能正常开启
4) 实施事件应急响应机制
5) 通知应急恢复管理团体
6) 应急恢复管理团体报到,各恢复小组报到
7) 数据库开始恢复 (具体步骤参见附件一)
8) 通知数据恢复
9) 恢复后数据库测试和校验
a) 经过对比生产库和演练库数据查询一致度来判定恢复是否成功;
b) 经过将演练库接入到应用系统测试环境中,来检验演练库是否能够正常对外工作。
2.3.1 应急恢复演练观察、跟踪和审计
应急恢复演练观察、跟踪和审计内容:
Ø 各实施步骤实际开始和结束时间
Ø 操作步骤实施正确性
Ø 演练工作清单完整性和正确性
Ø 应急恢复操作手册完整性和正确性
Ø 应用系统功效和数据录入测试结果
附件一:数据库应急恢复演练具体步骤
将RMAN备份文件拷贝到异机相同目录下。
1. 创建。恢复pfile文件
经过RMAN备份文件恢复参数控制文件内容以下:
修改数据库DBID跟源数据库DBID一样,创建跟源数据库服务器相同文件目录。
rman target / ;
set dbid=源库DBID
RMAN> restore spfile from 'rman备份文件直接路径位置';
2. 配置oracle_sid
Oracle实施
$echo $ORACLE_SID
修改oracle用户下.profile文件,把以下内容添加到该文件中 :
Export ORACLE_SID=cspdb1
3. 开启库到nomount状态
$rman
RMAN>connect target /
RMAN>startup nomount
4. 从pfile恢复spfile
$sqlplus “/ as sysdba”
SQL>create spfile from pfile;
5. 恢复控制文件
$rman
RMAN>connect target /
RMAN>set dbid=源库DBID
RMAN>list backup; --检验备份信息
RMAN> restore controlfile from '/RMAN备份集绝对位置';
RMAN>quit
6. 恢复数据文件和归档日志(可选)
$rman
RMAN>connect target / --注意,这里不能连catalog.
RMAN>alter database mount; --注意,这里需要在mount状态实施
RMAN>
----恢复全部可用数据文件
SQL> select file#,name from v$datafile;
RMAN> restore datafile 1,2,3,4,5,6 x;
RMAN>quit
7. 确定恢复完成SCN点(统计恢复完成时数据库时间点)
RMAN> list backup of archivelog all;
--确定哪些归档可用,选择某一个归档scn点进行恢复
--可确定此scn在生产库时间(比如scn=48)
select to_char(scn_to_timestamp(scn号), 'YYYY-MM-DD HH24:MI:SS' ) from dual;
8. 恢复归档文件脚本(恢复前必需确定数据库是mount状态)
拷贝归档文件到归档文件目录。
RMAN> run{
2> set archivelog destination to '/racbackup';
3> restore archivelog all;
4> }
----恢复数据库
SQL> conn /as sysdba
SQL> recover database using backup controlfile until cancel;
----指定 resetlogs关键字,开启数据库到open状态
SQL> alter database open resetlogs;
9. 创建新临时表空间
$sqlplus “/ as sysdba”
SQL> select tablespace_name from dba_tablespaces where contents='TEMPORARY';
TEMP
SQL> create temporary tablespace TEMP1 tempfile '/oradata/lcamdb/temp01.dbf' size 1024M reuse;
SQL> alter database default temporary tablespace TEMP1;
SQL> drop tablespace TEMP including contents and datafiles;
10. 验证恢复表空间
因为生产机备份后产生归档仍然保留在生产机,所以演练时数据只恢复到备份时间点,生产机和演练机数据会有多个小时差异
表空间使用情况比较
生产机和演练机分别实施,然后对比结果
SELECT a.tablespace_name,
ROUND(total/,3) "total_GB",
ROUND(free/,3) "free_GB",
ROUND((total-free)/,3) "used_GB",
ROUND((total-free)/total, 4) * 100 "used %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM DBA_FREE_SPACE
where tablespace_name in('DSS_DATA','REPT','MSTR')
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total FROM DBA_DATA_FILES GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
order by tablespace_name;
表空间中表数比较
生产机和演练机分别实施,然后对比结果
select tablespace_name,count(*) from dba_tables group by tablespae_name;
表行数比较
每个表空间抽取部分表对比表行数
生产机和演练机分别实施,然后对比结果
select * from v$version;
附件二: 恢复预演时间估算
展开阅读全文