oracle数据库恢复
- 格式:ppt
- 大小:253.50 KB
- 文档页数:44


rac数据库RMAN 备份与恢复
一、数据库备份
在主库上通过rman 每天对数据库进行备份,并且保留两份备份
在主库删除归档和进行rman 备份的脚本:
[oracle@rac1 arch]$ pwd
/opt/app/arch
[oracle@rac1 arch]$ more del_arch.sh
export ORACLE_SID=orcl1
export ORACLE_BASE=/opt/app/oracle
export ORACLE_TERM=xterm
export ORACLE_HOME=/opt/app/oracle/product/10.2.0/db_1
source /opt/app/arch/orcl1/del_arch.list
source /opt/app/arch/orcl2/del_arch.list
/opt/app/oracle/product/10.2.0/db_1/bin/rman target /
log='/opt/app/arch/rman.log' <
delete obsolete recovery window of 3 days;
crosscheck archivelog all;
delete noprompt obsolete;
delete noprompt expired archivelog all;
crosscheck backup; delete noprompt expired backup;
backup format='/opt/app/arch/rman/orcl_full_%U_%T' tag='orcl_full'
database;
backup current controlfile tag='orcl_ctlfile'
format='/opt/app/arch/rman/orcl_ctlfile_%U_%T';
将Oracle备份数据还原到数据库的步骤
随着整个社会信息化程度的不断深化,被审计单位使用的数据库也越来越复杂。Oracle数据库因为其处理速度快、安全级别高和数据存储功能强大等特点备受使用者的青睐。正是因为如此对采集oracle数据的要求也越来越高,以下是笔者在审计过程中采集该数据一点经验:譬如将备份数据text.dmp存放在e盘上。
1.启动服务:net start oracle service orcl (orcl是预先创建的ORACAL实例)
第二,更改用户:sqlplus sys@orcl as sysdba (提示输入password时,选择enter确定)
第三:设置口令:SQL> alter user system identified by tssj;(在忘记的情况下重新定义该用户密码)
第四,建立连接:SQL> conn system/tssj@orcl
第五,创建这个表空间create tablespace mof datafile
'd:\mof.dbf' size 100m autoextend on;(提前可以在D盘上建立一个tbs文件夹,用来存储MOF数据文件文件)
第六,创建一个用户,其默认的表空间在MOF上:create user tssj identified by tssj default tablespace mof quota unlimited on mof;
第七,授予cz用户dba角色:grant dba to tssj;(为方便起见,将DBA角色赋予cz)
第八,导入数据imp tssj/ft@orcl file=d:\222.dmp
fromuser=nlzw touser=tssj log=d:\imp_nlzw.log ignore=y
grants=n;(nlzw是导出的用户,可以向数据提供者索取,或通过其他方式显示)
Oracle数据库恢复案例
当我们在使用Oracle数据库时,突然断电,造成很多问题,致使旧数据丢失,影响了数据的正确性,破坏了数据库。此时,用户急切需求恢复数据。本文以此为例,讲述数据库数据恢复。
一、案例描述:
数据库因突然断电,数据库启库报system01.dbf需要更多的恢复来保持一致性,数据库无法打开;数据库没有备份,归档日志也不连续。客户提供了数据库的在线文件,急需恢复zxfg用户下的数据。
二、恢复流程:
1 数据库的故障检测
2 尝试挂起数据库并修复数据库
3解析数据文件
4验证数据
5导出数据与交付数据(导入)
三、恢复数据
1数据库的故障检测
利用DBV 命令检测数据文件的完整性
结果如下:
分析结果发现SYSAUX01.DBF文件数据块(Data)检测失败40页,索引页(Index)检测失败29页,说明SYSAUX01.DBF存在坏块。
结论:通过dbv对数据文件的完整性检验,SYSAUX01.DBF存在坏块,其他检测的文件完整。
2 用客户的数据库本地挂起数据库,尝试修复数据库。
2.1创建新的OS :windows server 2008 x86,安装oracle 11.2.0.1.0 for 32-bit
版本数据库,挂起数据库
起库报ORA-01110错误,System01.dbf需要更多一致性恢复。使用recover database
命令,利用在线日志做介质恢复。
数据库的控制文件已被修改,需要使用控制文件恢复数据库
恢复数据库需要2016_01_19的11号归档日志。由于归档日志丢失,使用cancel参数进行不完全恢复。
再次执行alter database open 命令,数据库打开。
2.2 查询实例状态,数据库报ora_00600错误;进行其他查询,其中一些查询可以进行,一些查询报错,而且报错都是ora_00600错误。
2.4查看警告日志追踪文件查看内部错误代码;
oracle数据库rman备份计划及恢复
1.rman完全恢复的前提条件:历史的datafile,controlfile和spfile备份,加上完整的archivelog和完好的redolog。
2.rman备份脚本:
a.RMAN 0级备份命令:
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag 'level0' format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_0_%u_%s_%p" as compressed backupset
database;
sql "alter system archive log current";
backup filesperset 3 format "E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\arch_%u_%s_%p_%c"
archivelog all delete input; #备份归档可选,可以单独定期备份
release channel c1;
release channel c2;
release channel c3;
}
b.RMAN 1级备份命令:
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 1 tag 'level1' format 'E:\recovery_area\rfdb\rfdb\AUTOBACKUP\rman_dir\RFDB_level_1_%u_%s_%p' as compressed backupset