2022年oracleg数据库备份与还原总结 .pdf
oracle 10g 数据库备份与还原总结.txt今天心情不好。 我只有四句话想说。包括这句和前面的两句。我的话说完了对付凶恶的人,就要比他更凶恶;对付卑鄙的人,就要比他更卑鄙没有情人味,哪来人情味拿什么整死你,我的爱人。收银员说:没零钱了,找你两个塑料袋吧!三. 归档模式 . 可以防止数据丢失 . 数据处于OPEN 状态时可以进行备份 . 当出现介质失败时, 除了 SYSTEM 表空间中的数据文件外其他的都可以在open 状态下恢复 . 可执行完全恢复, 也可以恢复到备份点与失败点之间的某时刻 1.备份 1)冷备份 shutdown后拷贝所需数据文件和控制文件 2)热备份 将数据库设置为归档模式 在数据库上发出全局检查点, 在所有的数据文件头块上加锁 sqlalter database begin backup ; 备份数据文件及控制文件数据文件直接拷贝至其他目录控制文件需使用alter database backup controlfile sqlalter database backup controlfile to d:backupdemo.ctl; 结束数据备份, 为确保数据文件备份的同步性,还应该归档当前日志组 sqlalter database end backup; sqlalter system archive log cuurent; 3)备份表空间 *脱机备份 ( 表空间处于OFFLINE状态 ,SYSTEM表空间和正在使用的UNDO 空间不能脱机 ) 确定表空间包涵的数据文件, 如空间 USERS sqlselect file_name from dba_data_files where tablespace_name = users; 设置表空间为脱机状态 sqlalter tablespace users offline; 复制数据文件 设置表空间联机 sqlalter tablespace users online; *联机备份名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 确定对应关系 设置表空间为备份模式 sqlalter tablespace users begin backup ; 复制数据文件 设置表空间为正常模式 sqlalter tablespace users end backup ; *处理联机备份失败当执行联机备份时, 若出现例程失败, 再次打开数据库时, 如果数据文件仍处于备份状态 , 则会出错 , 此时需要结束备份 装载数据库 sqlstartup force mount 查看处于联机备份状态的所有数据文件 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 datafile : 恢复一个或多个数据文件( 在 mount,open 状态下都可 ) *在 mount 状态下恢复数据文件( 用于 SYSTEM 表空间恢复 ) 装载数据库 mount 状态 确定需要恢复的数据文件 sqlselect file#,error from v$recover_file 拷贝备份至原位置 恢复数据库 recover.上述命令 打开数据库 alter database open; *在 open 状态下恢复关闭后意外对视的数据文件, 此时数据库将无法打开 装载数据库 mount 确定需要恢复的数据文件 使相应的数据文件脱机 sqlalter database datafile 4 offline; 打开数据库 sqlalter database open 复制数据备份文件 恢复数据文件 是数据文件联机 alter database datafile 4 online; *在 open 状态下恢复打开时意外丢失的数据文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 确定要恢复的数据文件 使数据文件脱机 复制数据文件 恢复相应的表空间或数据文件 使相应的表空间或数据文件联机 *在 open 状态下恢复未备份的数据文件( 要求在归档模式下, 新建数据文件, 其从简历开始的所有归档日志必须全部存在) 装载数据库 确定要恢复的数据文件 是数据文件脱机 打开数据库 重新建立数据文件 sqlalter database create datafile d:demousers01.dbf; 恢复数据文件 使数据文件联机 2)不完全恢复使用已备份的数据文件, 归档日志 , 和重做日志 , 将数据库恢复到备份点与失败点之间某个时刻的状态 *恢复分类基于时间的恢复: 误删除表 , 误截断表 , 提交了错误的数据基于取笑恢复 : 恢复到某个日志序列号之前的状态基于 SCN的恢复 : 恢复到特定SCN值的状态基于备份控制文件恢复:表空间被意外删除, 或所有控制文件全部损坏 *不完全恢复指令 recover database until time recover database until change recover database until cancel recover database . using backup controlfile *基于时间的恢复 关闭数据库 ( 为防止备份失败, 应备份当前数据库所有文件 装载数据库 startup mount 复制所有备份数据文件, 并确定备份文件的时间点 sqlselect file#,to_char(time,yyyy-mm-dd hh24:mi:ss) from v$recover_file; 执行 recover database until time sqlrecover database until time 2006-09-26 16:40:33 以 resetlogs方式打开数据库, 并检查恢复结果 sqlalter database open resetlogs; 备份数据库所有数据文件和控制文件, 因为当以resetlogs方式打开数据库后会重新建立重做日志, 清空原有重做日志的所有内容, 并将日志序列号复位为1 sqlselect name from v$datafile; sqlalter database begin backup; 拷贝数据文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - sqlalter database end backup; sqlalter database backup controlfile to d:backupdemo.ctl reuse; sqlalter system archive log cuurent; *基于 SCN恢复 关闭数据库 装载数据库 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 方式打开数据库 备份所有数据文件和控制文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -