




已阅读5页,还剩142页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库备份与恢复测试为了提高各位ORACLE爱好着数据库备份与恢复实践能力,我把以前做过的备份与恢复测试共享给大家。希望大家能够补充,我也能从中提高自己,如有错误的地方也望大家指出,谢谢!这个案例有1万多行,所以我也列了个目录#1 控制文件损坏(rman和常规恢复) #准备工作备份C:Documents and Settingslifeng.fangrman nocatalog target sys/sunsdl恢复管理器: 版本9.2.0.1.0 - ProductionCopyright (c) 1995, 2002, Oracle Corporation. All rights reserved.连接到目标数据库: PDF (DBID=3171861129) -新的ID2334768642正在使用目标数据库控制文件替代恢复目录RMAN configure controlfile autobackup on;新的 RMAN 配置参数:CONFIGURE CONTROLFILE AUTOBACKUP ON;已成功存储新的 RMAN 配置参数RMAN configure controlfile autobackup format for device type disk to c:temp%F;新的 RMAN 配置参数:CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO c:temp%F;已成功存储新的 RMAN 配置参数RMANRMAN backup database;启动 backup 于 25-2月 -05分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=12 devtype=DISK分配的通道: ORA_DISK_2通道 ORA_DISK_2: sid=13 devtype=DISK通道 ORA_DISK_1: 正在启动 full 数据文件备份集通道 ORA_DISK_1: 正在指定备份集中的数据文件输入数据文件 fno=00002 name=C:ORACLEORADATAPDFUNDOTBS01.DBF输入数据文件 fno=00003 name=C:ORACLEORADATAPDFINDX01.DBF输入数据文件 fno=00005 name=C:ORACLEORADATAPDFUSERS01.DBF通道 ORA_DISK_1: 正在启动段 1 于 25-2月 -05通道 ORA_DISK_2: 正在启动 full 数据文件备份集通道 ORA_DISK_2: 正在指定备份集中的数据文件输入数据文件 fno=00001 name=C:ORACLEORADATAPDFSYSTEM01.DBF输入数据文件 fno=00004 name=C:ORACLEORADATAPDFTOOLS01.DBF通道 ORA_DISK_2: 正在启动段 1 于 25-2月 -05通道 ORA_DISK_1: 已完成段 1 于 25-2月 -05段 handle=C:ORACLEORA92DATABASE07GDKT8C_1_1 comment=NONE通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:56通道 ORA_DISK_2: 已完成段 1 于 25-2月 -05段 handle=C:ORACLEORA92DATABASE08GDKT8C_1_1 comment=NONE通道 ORA_DISK_2: 备份集已完成, 经过时间:00:00:57完成 backup 于 25-2月 -05启动 Control File and SPFILE Autobackup 于 25-2月 -05段 handle=C:TEMPC-3171861129-20050225-00 comment=NONE完成 Control File and SPFILE Autobackup 于 25-2月 -05RMAN 常规备份备份数据文件cp C:ORACLEORADATAPDF* C:ORACLEORADATAbak备份控制文件 # 1.1 有老的备份数据备份和控制文件trace#SQL alter session set tracefile_identifier=fanglf 2 ;会话已更改。SQL alter database backup controlfile to trace;数据库已更改。SQL alter database backup controlfile to c:tempcontrolfile.bak;数据库已更改。我们也可以使用RMAN来拷贝备份控制文件RMAN copy CURRENT CONTROLFILE TO c:cf.cpy;启动 copy 于 03-3月 -05分配的通道: ORA_DISK_1通道 ORA_DISK_1: sid=16 devtype=DISK通道 ORA_DISK_1: 已复制当前的控制文件输出文件名=C:CF.CPY完成 copy 于 03-3月 -05SQL col name format a50SQL select * from v$controlfile;STATUS NAME- - C:ORACLEORADATAPDFCONTROL01.CTL C:ORACLEORADATAPDFCONTROL02.CTL C:ORACLEORADATAPDFCONTROL03.CTL select * from v$controlfile;STATUS NAME- - C:ORACLEORADATAPDFCONTROL01.CTL C:ORACLEORADATAPDFCONTROL02.CTL C:ORACLEORADATAPDFCONTROL03.CTLSQLSQL create table test (a int,v varchar(200);使用ULTRAEDIT编辑清空CONTROL01.CTL大部分数据 SQL select * from v$controlfile; startupORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesORA-00205: ?恢复实例# 测试1 -使用trace恢复 shutdown abort#SQL shutdown abort ORACLE 例程已经关闭。SQL startup nomountORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesSQLSQL CREATE CONTROLFILE REUSE DATABASE DF NORESETLOGS ARCHIVELOG 2 - SET STANDBY TO MAXIMIZE PERFORMANCE 3 MAXLOGFILES 5 4 MAXLOGMEMBERS 3 5 MAXDATAFILES 100 6 MAXINSTANCES 1 7 MAXLOGHISTORY 226 8 LOGFILE 9 GROUP 1 C:ORACLEORADATAPDFREDO01.LOG SIZE 100M,10 GROUP 2 C:ORACLEORADATAPDFREDO02.LOG SIZE 100M,11 GROUP 3 C:ORACLEORADATAPDFREDO03.LOG SIZE 100M12 - STANDBY LOGFILE13 DATAFILE14 C:ORACLEORADATAPDFSYSTEM01.DBF,15 C:ORACLEORADATAPDFUNDOTBS01.DBF,16 C:ORACLEORADATAPDFINDX01.DBF,17 C:ORACLEORADATAPDFTOOLS01.DBF,18 C:ORACLEORADATAPDFUSERS01.DBF19 CHARACTER SET ZHS16GBK20 ;控制文件已创建SQL alter database open;alter database open*ERROR 位于第 1 行:ORA-01113: ? 1 ?ORA-01110: ? 1: C:ORACLEORADATAPDFSYSTEM01.DBFSQL startupORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。ORA-01113: 文件 1 需要介质恢复ORA-01110: 数据文件 1: C:ORACLEORADATAPDFSYSTEM01.DBFSQL recover database ; -因为是shutdown abort关闭,所以需要恢复完成介质恢复。SQL alter database open;数据库已更改。# 测试2 -使用trace恢复 正常shutdown #SQL insert into test select rownum,aaaaaaaaaaaaaaaaaaaaaa from dba_objects;已创建6165行。SQL /已创建6165行。SQL insert into test select * from test;已创建12330行。SQL commit;提交完成。SQL shutdown数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL startup nomountORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesSQLSQL CREATE CONTROLFILE REUSE DATABASE DF NORESETLOGS ARCHIVELOG 2 - SET STANDBY TO MAXIMIZE PERFORMANCE 3 MAXLOGFILES 5 4 MAXLOGMEMBERS 3 5 MAXDATAFILES 100 6 MAXINSTANCES 1 7 MAXLOGHISTORY 226 8 LOGFILE 9 GROUP 1 C:ORACLEORADATAPDFREDO01.LOG SIZE 100M,10 GROUP 2 C:ORACLEORADATAPDFREDO02.LOG SIZE 100M,11 GROUP 3 C:ORACLEORADATAPDFREDO03.LOG SIZE 100M12 - STANDBY LOGFILE13 DATAFILE14 C:ORACLEORADATAPDFSYSTEM01.DBF,15 C:ORACLEORADATAPDFUNDOTBS01.DBF,16 C:ORACLEORADATAPDFINDX01.DBF,17 C:ORACLEORADATAPDFTOOLS01.DBF,18 C:ORACLEORADATAPDFUSERS01.DBF19 CHARACTER SET ZHS16GBK20 ;控制文件已创建SQL alter database open; 数据库已更改。 我们看到如果是正常数据库down机的,那么使用noresetlog创建控制文件后直接可以打开数据库 SQL select count(*) from test; COUNT(*)- 24660 用trace完成了数据库的完全恢复 SQL select * from v$tempfile;未选定行SQL select name from v$tablespace;NAME-SYSTEMUNDOTBS1INDXTOOLSUSERSTEMP注意我们可以看到由于重建了控制文件,临时表空间的临时文件没有了# # 测试3 -使用控制文件备份来恢复#还原备份控制文件C:Documents and Settingslifeng.fangcopy c:tempcontrolfile.bakC:oracleoradatapdfCONTROL01.CTL已复制 1 个文件。C:Documents and Settingslifeng.fangcopy c:tempcontrolfile.bakC:oracleoradatapdfCONTROL02.CTL已复制 1 个文件。C:Documents and Settingslifeng.fangcopy c:tempcontrolfile.bakC:oracleoradatapdfCONTROL03.CTL已复制 1 个文件。备份控制文件不会存有关于联机日志文件和数据文件结束SCN,因此不会在恢复时使用联机日志文件,并因此将数据文件假定了一个无穷大的结束SCN,所以要休整他,必须resetlogs,但是我们可以在例子测试5.1中可以看到我们可以强制应用在线日志实现完全恢复当数据库用normal或immediate关闭时,发出检查点处理,这将为每个数据文件在控制文件中设置相应的结束SCN,使其等于数据文件头中对应的开始SCNSQL startupORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytesORA-01991: ?C:oracleora92DATABASEPWDpdf.ORA SQL recover database;ORA-00283: ?ORA-01610: ? BACKUP CONTROLFILE ?数据文件头中原有检查点计数器决不会大于当前控制文件中的检查点计数器,所以必须在恢复时指定USING BACKUP CONTROLFILE,这样就会基于备份控制文件的信息 SQL alter database open resetlogs;alter database open resetlogs*ERROR 位于第 1 行:ORA-01152: ? 1 ?ORA-01110: ? 1: C:ORACLEORADATAPDFSYSTEM01.DBF这时,没有进行恢复,检查到当前数据文件头的开始SCN和控制文件的结束SCN不一致需要进行恢复这里无法恢复数据库而采用第1钟方法执行成功# 测试4 我们现在模拟备份控制文件,同时备份部分数据文件先于备份# 控制文件的数据文件#SQL shutdown immediate数据库已经关闭。已经卸载数据库。copy SYSTEM01.DBF 复件 SYSTEM01.DBFalter database backup controlfile to c:tempcontrolfile1.bak;SQL shutdown immediate数据库已经关闭。已经卸载数据库。C:Documents and Settingslifeng.fangcopy c:tempcontrolfile1.bak C:oracleoradatapdfCONTROL01.CTL已复制 1 个文件。C:Documents and Settingslifeng.fangcopy c:tempcontrolfile1.bak C:oracleoradatapdfCONTROL02.CTL已复制 1 个文件。C:Documents and Settingslifeng.fangcopy c:tempcontrolfile1.bak C:oracleoradatapdfCONTROL03.CTL已复制 1 个文件。SQL startupORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL startup mountORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。SQL recover database using backup controlfile;ORA-00279: 更改 1069041 (在 02/25/2005 15:36:00 生成) 对于线程 1 是必需的ORA-00289: 建议: C:ORACLEORA92RDBMSARC00012.001ORA-00280: 更改 1069041 对于线程 1 是按序列 # 12 进行的指定日志: =suggested | filename | AUTO | CANCELautoORA-00308: 无法打开存档日志 C:ORACLEORA92RDBMSARC00012.001ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件。ORA-00308: 无法打开存档日志 C:ORACLEORA92RDBMSARC00012.001ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件。SQL alter database open;alter database open*ERROR 位于第 1 行:ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项SQL alter database open resetlogs;alter database open resetlogs*ERROR 位于第 1 行:ORA-01113: 文件 1 需要介质恢复ORA-01110: 数据文件 1: C:ORACLEORADATAPDFSYSTEM01.DBFSQL recover database using backup controlfile until cancel;ORA-00279: 更改 1069041 (在 02/25/2005 15:36:00 生成) 对于线程 1 是必需的ORA-00289: 建议: C:ORACLEORA92RDBMSARC00012.001ORA-00280: 更改 1069041 对于线程 1 是按序列 # 12 进行的指定日志: =suggested | filename | AUTO | CANCELcancelORA-01547: 警告: RECOVER 成功但 OPEN RESETLOGS 将出现如下错误ORA-01152: 文件 2 没有从完备的旧备份中恢复ORA-01110: 数据文件 2: C:ORACLEORADATAPDFUNDOTBS01.DBFORA-01112: 未启动介质恢复SQL alter database open resetlogs;alter database open resetlogs*ERROR 位于第 1 行:ORA-01152: 文件 2 没有从完备的旧备份中恢复ORA-01110: 数据文件 2: C:ORACLEORADATAPDFUNDOTBS01.DBF虽然在备份控制文件前备份了SYSTEM文件,但是其他文件没有备份,而有超过控制文件检查点SCN的信息,不能恢复成功如果有只读表空间,使用备份控制文件恢复,要先offline 参见备份与恢复手册对于使用备份控制文件进行恢复由于默认是所有数据文件联机的,而且resetlogs时需要写数据文件的,那么只读文件恢复时,由于只读文件不需要恢复,就要强制将他offline;所以在选取控制文件时也要注意,如果选取了当时正好是只读状态的控制文件时,必须将数据文件offline ,而使得在切换前为读写状态时的数据无法恢复,反之同理# 测试5我们现在模拟控制文件损坏,将备份控制文件前,先备份所有数据文件#copy SYSTEM01.DBF 复件 SYSTEM01.DBFcopy UNDOTBS01.DBF 复件 UNDOTBS01.DBFcopy TOOLS01.DBF 复件 TOOLS01.DBFcopy USERS01.DBF 复件 USERS01.DBFcopy INDX01.DBF 复件 INDX01.DBFSQL alter database backup controlfile to c:tempcontrolfile2.bak; 数据库已更改。 替换老的控制文件SQL insert into test select * from test;已创建24660行。SQL commit;提交完成。SQL select count(*) from test; COUNT(*)- 49320SQL shutdown数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。copy c:tempcontrolfile2.bak C:oracleoradatapdfCONTROL01.CTLcopy c:tempcontrolfile2.bak C:oracleoradatapdfCONTROL02.CTLcopy c:tempcontrolfile2.bak C:oracleoradatapdfCONTROL03.CTL rename SYSTEM01.DBF 复件 SYSTEM01.DBF SYSTEM01.DBF -临时文件可以不要rename UNDOTBS01.DBF 复件 UNDOTBS01.DBF UNDOTBS01.DBF rename TOOLS01.DBF 复件 TOOLS01.DBF TOOLS01.DBF rename USERS01.DBF 复件 USERS01.DBF USERS01.DBF rename INDX01.DBF 复件 INDX01.DBF INDX01.DBFSQL startup mountORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。 SQL recover database using backup controlfile until cancel;ORA-00279: 更改 1069386 (在 02/25/2005 15:47:59 生成) 对于线程 1 是必需的ORA-00289: 建议: C:ORACLEORA92RDBMSARC00013.001ORA-00280: 更改 1069386 对于线程 1 是按序列 # 13 进行的指定日志: =suggested | filename | AUTO | CANCELauto -使用auto恢复也是成功ORA-00308: 无法打开存档日志 C:ORACLEORA92RDBMSARC00013.001ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件。ORA-00308: 无法打开存档日志 C:ORACLEORA92RDBMSARC00013.001ORA-27041: 无法打开文件OSD-04002: 无法打开文件O/S-Error: (OS 2) 系统找不到指定的文件。SQL recover database using backup controlfile until cancel; -这个cancel是表示每次应用一个日志时都提示一下,直到输入cancel后结束ORA-00279: 更改 1069386 (在 02/25/2005 15:47:59 生成) 对于线程 1 是必需的ORA-00289: 建议: C:ORACLEORA92RDBMSARC00013.001ORA-00280: 更改 1069386 对于线程 1 是按序列 # 13 进行的cancel通常好于change和time的恢复指定日志: =suggested | filename | AUTO | CANCEL cancel -输入cancel恢复成功 -cancel选项允许每次前滚一个日志文件,当需要停止恢复时,输入cancel ,在这种方式下不会自动运用联机日志文件.介质恢复已取消。SQL alter database open resetlogs;数据库已更改。SQL select CHECKPOINT_CHANGE# from v$database;CHECKPOINT_CHANGE#- 1069388 SQL select count(*) from test; COUNT(*)- 24660 -丢失了数据 那我们使用备份控制文件恢复,是不是一定恢复不了在线日志中的数据吗?答案是错误的,其实也能完全恢复(当然我们用trace更好) # 测试5.1我们现在模拟控制文件损坏,有控制文件备份,先于控制文件备份的所有数据文件备份# 使用在线日志进行完全恢复#SQL startupORACLE 例程已经启动。Total System Global Area 101784276 bytesFixed Size 453332 bytesVariable Size 75497472 bytesDatabase Buffers 25165824 bytesRedo Buffers 667648 bytes数据库装载完毕。数据库已经打开。SQL create table arch (status varchar(2) tablespace users;表已创建。SQL alter system switch logfile;系统已更改。SQL insert into arch select ok from dba_objects;已创建6166行。SQL commit;提交完成。SQL insert into arch select * from arch;已创建6166行。SQL /已创建12332行。SQL /已创建24664行。SQL /已创建49328行。SQL commit;提交完成。SQL alter system switch logfile;系统已更改。SQL insert into arch select no from dba_objects;已创建6166行。SQL commit;提交完成。SQL select GROUP#,SEQUENCE#,archived, STATUS from v$log; GROUP# SEQUENCE# ARC STATUS- - - - 1 5 NO CURRENT 2 3 YES ACTIVE 3 4 YES ACTIVESQL select resetlogs_change# - 1,CONTROLFILE_CHANGE# from v$database;RESETLOGS_CHANGE#-1 CONTROLFILE_CHANGE#- - 68658 69410SQL shutdown数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。还原备份控制文件,还原所有备份数据文件SQL startup mountORACLE 例程已经启动。Tota
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电商平台售后服务技术解决方案与应用报告
- 现场勘查基础知识培训课件
- 2025年开放银行生态构建中的金融科技与数字货币应用前景研究报告
- 新疆石河子二中2026届高三化学第一学期期中经典模拟试题含解析
- 广东省深圳市罗湖区罗湖外国语学校2026届化学高一上期中复习检测模拟试题含解析
- 甘肃省酒泉市瓜州县2026届高三上化学期中复习检测试题含解析
- 2025年秋季初级经济师考试 经济基础知识深度解析冲刺试卷
- 2025年土木工程师考试结构设计专项训练试卷 掌握结构设计要点
- 2025年注册会计师考试 会计科目冲刺模拟试卷及答案详解
- 2025年中学教师招聘考试(中学科目二)教育知识与能力重点难点试卷
- 一年级道德法治教案设计
- 2024年上海市自来水公司招聘笔试冲刺题(带答案解析)
- 微量注射泵的使用操作评分标准
- 专利侵权比对分析报告
- 民航安全检查全套教学课件
- 社情民意信息写作与传播
- 腹腔镜下嵌顿疝的治疗
- 电气施工图审图要点
- 机场管制课件
- 2023中华护理学会团体标准-老年人误吸的预防
- 体育中心建设项目可研报告汇编(完整版)资料
评论
0/150
提交评论