《oracle 10g数据库备份与还原总结》由会员分享,可在线阅读,更多相关《oracle 10g数据库备份与还原总结(4页珍藏版)》请在金锄头文库上搜索。
1、三.归档模式. 可以防止数据丢失. 数据处于 OPEN 状态时可以进行备份.当出现介质失败时,除了 SYSTEM表空间中的数据文件外其他的都可以在open状态下恢 复. 可执行完全恢复, 也可以恢复到备份点与失败点之间的某时刻1. 备份1)冷备份shutdown 后拷贝所需数据文件和控制文件2)热备份 将数据库设置为归档模式 在数据库上发出全局检查点, 在所有的数据文件头块上加锁 sqlalter database begin backup ;备份数据文件及控制文件 数据文件直接拷贝至其他目录 控制文件需使用 alter database backup controlfilesqlalter
2、database backup controlfile to d:backupdemo. ctl; 结束数据备份,为确保数据文件备份的同步性,还应该归档当前日志组sqlalter database end backup;sqlalter system archive log cuurent;3)备份表空间*脱机备份(表空间处于OFFLINE状态SYSTEM表空间和正在使用的UNDO空间不 能脱机)确定表空间包涵的数据文件,如空间USERSsqlselect file_name from dba_data_fileswhere tablespace_name = users;设置表空间为脱机状态
3、sqlalter tablespace users offline;复制数据文件 设置表空间联机sqlalter tablespace users online;*联机备份确定对应关系 设置表空间为备份模式sqlalter tablespace users begin backup ;复制数据文件设置表空间为正常模式sqlalter tablespace users end backup ;*处理联机备份失败 当执行联机备份时,若出现例程失败,再次打开数据库时,如果数据文件仍 处于备份状态,则会出错,此时需要结束备份装载数据库sqlstartup force mount 查看处于联机备份状态的
4、所有数据文件sqlselect file# from v$backup where status = active; 结束联机备份状态sqlalter tablespace end backup或 alter tablespace datafile backup;或 recover datafile 序号打开数据库sqlalter database open;2.还原1)完全恢复相关命令:recover database :恢复数据库的多个数据文件(在 MOUNT 状态下运行) recover tadaspace :恢复多个表空间的所有数据文件( 在 open 状态下运 行)recover d
5、atafile :恢复一个或多个数据文件( 在 mount,open 状态下都可) *在 mount 状态下恢复数据文件( 用于 SYSTEM 表空间恢复)装载数据库 mount 状态 确定需要恢复的数据文件 sqlselect file#,error from v$recover_file拷贝备份至原位置恢复数据库 recover.上述命令打开数据库 alter database open;*在 open 状态下恢复关闭后意外对视的数据文件, 此时数据库将无法打开装载数据库 mount确定需要恢复的数据文件 使相应的数据文件脱机 sqlalter database datafile 4 of
6、fline;打开数据库sqlalter database open复制数据备份文件恢复数据文件是数据文件联机 alter database datafile 4 online;*在 open 状态下恢复打开时意外丢失的数据文件确定要恢复的数据文件使数据文件脱机复制数据文件恢复相应的表空间或数据文件使相应的表空间或数据文件联机*在 open 状态下恢复未备份的数据文件( 要求在归档模式下, 新建数据文件, 其 从简历开始的所有归档日志必须全部存在)装载数据库确定要恢复的数据文件 是数据文件脱机 打开数据库重新建立数据文件sqlalter database create datafile d:de
7、mousers01.dbf;恢复数据文件使数据文件联机2)不完全恢复 使用已备份的数据文件,归档日志,和重做日志,将数据库恢复到备份点与失败点 之间 某个时刻的状态*恢复分类基于时间的恢复:误删除表,误截断表,提交了错误的数据 基于取笑恢复:恢复到某个日志序列号之前的状态基于SCN的恢复:恢复到特定SCN值的状态基于备份控制文件恢复: 表空间被意外删除,或所有控制文件全部损坏 *不完全恢复指令recover database until timerecover database until changerecover database until cancelrecover database
8、. using backup controlfile *基于时间的恢复关闭数据库( 为防止备份失败, 应备份当前数据库所有文件 装载数据库 startup mount 复制所有备份数据文件,并确定备份文件的时间点sqlselect file#,to_char(time,yyyy-mm-dd hh24:mi:ss) from v$recover_file;执行 recover database until timesqlrecover database until time 2006-09-26 16:40:33以 resetlogs 方式打开数据库,并检查恢复结果sqlalter databa
9、se open resetlogs;备份数据库所有数据文件和控制文件, 因为当以 resetlogs 方式打开数据库后会重新建立重做日志,清空原有重做日志的所有内容,并将日志序列号复位为1sqlselect name from v$datafile;sqlalter database begin backup; 拷贝数据文件sqlalter database end backup;sqlalter database backup controlfileto d:backupdemo.ctl reuse;sqlalter system archive log cuurent;*基于 SCN 恢复
10、关闭数据库装载数据库 mount 复制所有备份数据文件, 确定备份文件 SCN 值 sqlselect file#,change#, from v$recover_file;执行 recover database until change sqlrecover database until change 675978;以 resetlogs 方式打开数据库 备份数据库所有数据文件和控制文件*基于取消恢复关闭数据库装载数据库 复制所有备份的数据文件,确定备份文件的 SCN 值 sqlselect file#,change# from v$recover_file;执行 recover database until cancle sqlrecover database until cancel以 resetlogs 方式打开数据库 备份所有数据文件和控制文件*基于备份控制文件的恢复通过查看 alert 文件,确定误操作时间关闭数据库复制所有备份的数据文件,控制文件装载数据库执行 recover database .using backup controlfile sqlrecover database until time 2004-09-26 19:51:06 using backup controlfile以 resetlogs 方式打开数据库 备份所有数据文件和控制文件