技术方案备份与恢复湖南卫生厅v20.docx
《技术方案备份与恢复湖南卫生厅v20.docx》由会员分享,可在线阅读,更多相关《技术方案备份与恢复湖南卫生厅v20.docx(14页珍藏版)》请在冰豆网上搜索。
技术方案备份与恢复湖南卫生厅v20
湖南卫生厅系统数据库
数据库备份与恢复演练技术方案
文件状态:
[]草稿
[]正式发布
[√]正在修改
文档限制:
内部发行
当前版本:
2.0
作者:
关金龙
项目参与人
完成日期:
2018年10月29日
IT服务事业部
数据库服务产品部
2018年10月29日
文档修订记录
版本
日期
修订内容
修订
审核
1.0
2013-08-01
第一稿
2.0
2013-08-06
放弃虚拟库,采用全库备份
参考文档/书目:
文档/书籍名称
作者/出版社
目录
第1章基本概况3
1.1数据库备份恢复测试概况3
1.2数据库备份恢复演练规划3
第2章数据备份3
2.1备份策略与配置优化3
2.1.1当前备份策略如下:
3
2.1.2归档日志的处理3
2.1.3打开控制文件自动备份3
2.1.4配置备份周期3
2.2RAC数据库备份规划3
2.2.1归档日志存放的位置3
2.2.2RMAN配置3
2.2.2.1归档日志NFS访问的RMAN配置3
第3章数据恢复3
3.1数据恢复过程概述3
3.2获取备份文件3
3.3获取数据库信息3
3.4获取数据库参数文件3
3.5确定要恢复的路径3
3.6恢复参数文件3
3.7修改参数文件3
3.8恢复控制文件3
3.9恢复数据文件3
3.10恢复并打开数据库3
3.11进行数据库备份3
第1章基本概况
1.1数据库备份恢复测试概况
当前数据库为EXADATA服务器ORACLE11R2RACASM,数据量3.8TB。
采用NBURMAN备份方式,为了测试备份的有效性,计划进行恢复测试演练。
演练方式采用NBURMAN备份生产库,再恢复到单节点PCSERVER+LINUX+ORACLE11GR2+ASM上,来验证备份恢复的有效性。
生产库及恢复目标测试库的信息如下。
数据库架构
服务器IP
数据库版本
数据库平台
磁盘管理
数据量
生产库
RAC
172.16.10.1
172.16.10.2
11.2.0.3
EXADATALinux5.7
ASM管理
3.8TB
恢复目标库
单节点
10.0.0.57
11.2.0.3
PCSERVERLinux5.4
ASM管理
4TB
1.2数据库备份恢复演练规划
备份恢复需求:
一、恢复测试库服务器。
二、恢复测试库能访问到全库备份、增量备份和归档备份,以便恢复。
三、恢复测试库大约需要磁盘空间4TB。
四、恢复时间需要实际测试。
恢复测试步骤:
一、利用NBURMAN备份生产库。
二、搭建单节点测试库。
三、创建ASM实例,并建立与生产库相同磁盘组(+DATA_DM01、+RECO_DM0)
三、配置NBU至单节点测试库。
四、利用RMAN进行数据库恢复测试。
第2章数据备份
2.1备份策略与配置优化
2.1.1当前备份策略如下:
由于数据库数据量较大,可以采取每周进行一次全库备份,每日进行增量备份和归档备份。
目前oracleexadataRAC通过NBU7.5每周六(00:
00-12:
00)一次全备、每天增量和归档备份,其中全备和增量的数据备份到华为的虚拟带库VTL6000,每天的归档(8:
00-22:
00,频率为每小时备份一次)备份到NBUmasterserver(windows2003svr--10.0.0.86--- nbuserver)本机挂接的存储上。
2.1.2归档日志的处理
建议每次备份后自动删除归档日志文件。
2.1.3打开控制文件自动备份
CONFIGURECONTROLFILEAUTOBACKUPON;
CONFIGURECONTROLFILEAUTOBACKUPFORMATFORDEVICETYPEDISKTO'somePath';
2.1.4配置备份周期
CONFIGURERETENTIONPOLICYTORECOVERYWINDOWOF7DAYS;
2.2RAC数据库备份规划
2.2.1归档日志存放的位置
归档日志放在磁盘阵列,对方节点通过NFS读写访问
实例名称
归档目标地址
LOG_ARCHIVE_FORMAT
访问方式
hnws1
hnws1
%t_%s_%r.dbf
node1本地
node2NFS
Hnws2
Hnws2
%t_%s_%r.dbf
node2本地
node1NFS
2.2.2RMAN配置
2.2.2.1归档日志NFS访问的RMAN配置
2.2.2.1.1RMAN备份脚本
节点1:
RUN{
ALLOCATECHANNELch00DEVICETYPEDISK;
BACKUPASCOMPRESSEDBACKUPSET
FILESPERSET10
FORMAT'${MY_BACKUP_DIR}/dbfile/db_backup_%U'
DATABASE
;
SQL'ALTERSYSTEMCHECKPOINT';
SQL'ALTERSYSTEMARCHIVELOGCURRENT';
RELEASECHANNELch00;
ALLOCATECHANNELch00DEVICETYPEDISK;
BACKUP
FORMAT'${MY_BACKUP_DIR}/dbfile/arch_%U'
ARCHIVELOGALLDELETEINPUT;
BACKUP
FORMAT'${MY_BACKUP_DIR}/controlfile/ControlFile_%U'
CURRENTCONTROLFILE;
RELEASECHANNELch00;
}
节点2:
可以不进行备份。
也可单独只备份归档日志:
RUN{
ALLOCATECHANNELch00DEVICETYPEDISK;
SQL'ALTERSYSTEMCHECKPOINT';
SQL'ALTERSYSTEMARCHIVELOGCURRENT';
BACKUP
FORMAT'${MY_BACKUP_DIR}/dbfile/arch_%U'
ARCHIVELOGALLDELETEINPUT;
RELEASECHANNELch00;
}
第3章数据恢复
数据恢复过程概述
Ø获取备份文件
Ø获取数据库信息
Ø获取数据库参数文件
Ø确定要恢复的路径
Ø恢复参数文件
Ø恢复控制文件
Ø恢复数据文件
Ø恢复归档日志文件
Ø恢复并打开数据库
Ø进行数据库备份
获取备份文件
查找备份软件日志,获取数据库的备份文件。
获取数据库信息
需要获取以下信息:
一、数据库的DBID
SQL>selectdbidfromv$database;
二、数据库的SID
Selectinstance_namefromv$instance;
三、数据库的SYS密码
获取数据库参数文件
在生产库执行如下操作:
SQL>createpfile='/u01/rman/pfile_restore.ora'fromspfile;
Filecreated.
setlines200
setpages200
setechooff
setverifyoff
setscanon
colTIME_TAKEN_DISPLAYfora10
col"INPUT(SUM)"fora10
col"OUTPUT(SUM)"fora12
colstatusfora10
col"INPUT(s)"fora10
col"OUTPUT(s)"fora10
SELECTj.session_key,
TO_CHAR(J.START_TIME,'yyyy-mm-ddhh24:
mi:
ss')start_time,
TO_CHAR(j.end_time,'yyyy-mm-ddhh24:
mi:
ss')end_time,
J.TIME_TAKEN_DISPLAY,
J.INPUT_BYTES_DISPLAY"INPUT(SUM)",
J.OUTPUT_BYTES_DISPLAY"OUTPUT(SUM)",
J.OUTPUT_DEVICE_TYPE,
J.STATUS,
J.INPUT_TYPE,
J.INPUT_BYTES_PER_SEC_DISPLAY"INPUT(s)",
J.OUTPUT_BYTES_PER_SEC_DISPLAY"OUTPUT(s)"
FROMV$rman_Backup_Job_Detailsj;
查看rman所有备份的历史信息,包括开始、结束时间,总共花费的时间以及备份的大小以及状态等信息。
setlines120
setpages200
setfeedbackoff
setverifyoff
setscanon
selectoutputfromv$rman_outputowhereo.session_key=&1;
其中的session_key来自己于第一个查询中。
确定要恢复的路径
查看以前的备份日志,确定要恢复的数据文件路径与以前的是否一致。
创建ASM实例并且建立相应ASM磁盘组。
三操作步骤
1修改IBM1上的ORACLE的配置文件,只需要修改ORACLE_SID即可。
vi/oracle/.profileoracle_sid=ccdb1
2进入RMAN,强行启动数据库(会报没有参数文件)后,恢复参数文件。
rmantarget/
startupnomount
restorespfilefrom'/u01/rman/ControlFile_05oj8o65_1_1';
3根据spfile,恢复出pfile,编辑pfile,去掉与rac设置相关的参数,再将pfile转换成spfile
createpfilefromspfile;
shutdownabort;
viinitccdb1.ora--去掉与rac设置相关的参数,同时注意参数里指定的各目录是否存在。
createspfilefrompfile;
4使用新创建的spfile启动数据库,恢复出控制文件。
startupnomount;
restorecontrolfilefrom'/oradata/orabak/rmanspctlback/c-3276392049-20080620-01';
alterdatabasemount;
5由于正式环境使用了ASM,数据文件,在线日志都存在ASM里,而测试环境没有ASM,故需要将文件转换,存放到文件系统下,
由于在IBM4上记录的数据库,归档日志的备份集的存放路径与IBM1上的不一样,故,需要说明在IBM1上这些备份集的路径,以便RMAN知晓。
catalogbackuppiece'/oradata/orabak/databackup/db_CCDB_900_1_20080620';
catalogbackuppiece'/oradata/orabak/logbackup/log_CCDB_901_1_20080620';
7检查备份集的存在状况,删除多余的备份集信息
crosscheckbackup;
deletenopromptexpiredbackup;
8检查全库恢复时的,需要哪些数据文件备份集,归档日志文件的备份集。
restoredatabasepreviewsummary;
9找出库的数据文件。
Reportschema;
run
{allocatechanneld1typedisk;
setnewnamefordatafile1to'/oradata/ccdb/system.dbf';
setnewnamefordatafile2to'/oradata/ccdb/undotbs1.dbf';
setnewnamefordatafile3to'/oradata/ccdb/sysaux.dbf';
setnewnamefordatafile4to'/oradata/ccdb/users.dbf';
setnewnamefordatafile5to'/oradata/ccdb/undotbs2.dbf';
setnewnamefordatafile6to'/oradata/ccdb/unicall2x.dbf';
setnewnamefordatafile7to'/oradata/ccdb/unicall2x_idx.dbf';
restoredatabase;
switchdatafileall;
releasechanneld1;
}
13recoverdatabase,注意恢复完成后,系统提示需要的日志文件及SCN好。
recoverdatabase;
14罗列出归档日志的备份集,和上面的RECOVERDATABASE信息作比较,以确定是否已经用完备份集里的归档日志。
listbackupofarchivelogall;
15alterdatabaseopenresetlogs;
恢复参数文件
RMAN>setDBID=2560842197
RMAN>RESTORESPFILETOPFILE'/tmp/pfile_barols_restored.ora'FROMAUTOBACKUP;
RMAN>SHUTDOWNABORT;
修改参数文件
将参数文件中涉及到集群的信息删除掉。
racle@/oracle/backup/barols/controlfile$sqlplussys/oracle@barols_207assysdba
SQL*Plus:
Release10.2.0.2.0-ProductiononMonApr1413:
44:
502008
Copyright(c)1982,2005,Oracle.AllRightsReserved.
Connectedtoanidleinstance.
SQL>STARTUPNOMOUNTPFILE='/tmp/pfile_barols_restored.ora';
ORACLEinstancestarted.
TotalSystemGlobalArea2147483648bytes
FixedSize2072680bytes
VariableSize822087576bytes
DatabaseBuffers1308622848bytes
RedoBuffers14700544bytes
SQL>quit
DisconnectedfromOracleDatabase10gEnterpriseEditionRelease10.2.0.2.0-64bitProduction
WiththePartitioning,OLAPandDataMiningoptions
恢复控制文件
RMAN>SETDBID=2560842197
executingcommand:
SETDBID
RMAN>RESTORECONTROLFILEFROMAUTOBACKUP;
RMAN>ALTERDATABASEMOUNT;
恢复数据文件
RMAN>RESTOREDATABASE;
版本不同需要打补丁的,否则报错ORA-00600:
:
[krbrvalmd_zeroscn]
恢复并打开数据库
RMAN>RECOVERDATABASE;
RMAN>RECOVERDATABASEUNTILSEQUENCE22;
RMAN>ALTERDATABASEOPENRESETLOGS;
进行数据库备份
RUN{
ALLOCATECHANNELch00DEVICETYPEDISK;
BACKUPASCOMPRESSEDBACKUPSET
FILESPERSET10
FORMAT'${MY_BACKUP_DIR}/dbfile/db_backup_%U'
DATABASE
;
SQL'ALTERSYSTEMCHECKPOINT';
SQL'ALTERSYSTEMARCHIVELOGCURRENT';
RELEASECHANNELch00;
ALLOCATECHANNELch00DEVICETYPEDISK;
BACKUP
FORMAT'${MY_BACKUP_DIR}/dbfile/arch_%U'
ARCHIVELOGALLDELETEINPUT;
BACKUP
FORMAT'${MY_BACKUP_DIR}/controlfile/ControlFile_%U'
CURRENTCONTROLFILE;
RELEASECHANNELch00;
}