130506rman恢复测试,四种场景
来源:互联网 发布:sql case语句用法 编辑:程序博客网 时间:2024/06/06 14:04
1. 非系统表空间损坏,而控制文件和联机日志文件没有损坏
这是如果数据库为打开状态,则只需要进行表空间级别的恢复,如下所示,假设users表空间损坏
SQL> SELECT * FROM DBA_DATA_FILES; FILE_NAME FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUTOEXTENSIBLE MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_STATUS------------------------------------------------------------------------------------------ ------------------------------ ---------- ---------- --------------------- -------------- ---------- ---------- ------------ --------------------- -------------D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF 4 USERS 15728640 1920 AVAILABLE 4 YES 3435972198 4194302 160 14680064 1792 ONLINED:\APP\CALVIN\ORADATA\TEST\UNDOTBS01.DBF 3 UNDOTBS1 104857600 12800 AVAILABLE 3 YES 3435972198 4194302 640 103809024 12672 ONLINED:\APP\CALVIN\ORADATA\TEST\SYSAUX01.DBF 2 SYSAUX 660602880 80640 AVAILABLE 2 YES 3435972198 4194302 1280 659554304 80512 ONLINED:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF 1 SYSTEM 796917760 97280 AVAILABLE 1 YES 3435972198 4194302 1280 795869184 97152 SYSTEMD:\APP\CALVIN\ORADATA\TEST\EXAMPLE01.DBF 5 EXAMPLE 104857600 12800 AVAILABLE 5 YES 3435972198 4194302 80 103809024 12672 ONLINED:\APP\CALVIN\ORADATA\TEST\TEST01.DBF 6TEST01 104857600 12800 AVAILABLE 6 NO 0 0 0 103809024 12672 ONLINED:\APP\CALVIN\ORADATA\TEST\TEST02.DBF 7TEST02 104857600 12800AVAILABLE 7 NO 0 0 0 103809024 12672 ONLINE 7 rowsselected SQL> SELECT * FROM v$tablespace; TS# NAME INCLUDED_IN_DATABASE_BACKUP BIGFILE FLASHBACK_ON ENCRYPT_IN_BACKUP---------- ------------------------------ ---------------------------------- ------------ ----------------- 0 SYSTEM YES NO YES 1 SYSAUX YES NO YES 2 UNDOTBS1 YES NO YES 4 USERS YES NO YES 3 TEMP NO NO YES 6 EXAMPLE YES NO YES 7 TEST01 YES NO YES 8 TEST02 YES NO YES 8 rowsselected RMAN> run2> {3> sql 'altertablespace users offline immediate';4> restore tablespaceusers;5> recover tablespaceusers;6> sql 'altertablespace users online';7> } sql 语句: alter tablespaceusers offline immediate 启动 restore 于 07-5月 -13使用通道 ORA_DISK_1 通道 ORA_DISK_1: 正在开始还原数据文件备份集通道 ORA_DISK_1: 正在指定从备份集还原的数据文件通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF通道 ORA_DISK_1: 正在读取备份片段D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_06\O1_MF_NNNDF_TAG20130506T174452_8RGYWNYX_.BKP通道 ORA_DISK_1: 段句柄 = D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_06\O1_MF_NNNDF_TAG20130506T174452_8RGYWNYX_.BKP标记 = TAG20130506T174452通道 ORA_DISK_1: 已还原备份片段 1通道 ORA_DISK_1: 还原完成, 用时: 00:00:01完成 restore 于 07-5月 -13 启动 recover 于 07-5月 -13使用通道 ORA_DISK_1 正在开始介质的恢复介质恢复完成, 用时: 00:00:02 完成 recover 于 07-5月 -13 sql 语句: alter tablespaceusers online
恢复表空间前,必须将表空间离线;然后通过restore命令还原users表空间包含的所有数据文件,在发出recover命令,通过应用归档日志文件,从而恢复表空间,回复外币后,将users表空间设置为在线状态;
如果数据库为关闭状态,则现将数据库启动到mount状态,然后将受损的表空间的所有数据文件离线后,将数据库启动到打开状态,再执行上面这段程序即可;
2. 某个非系统数据文件损坏,而控制文件和联机日志文件没有损坏;
如果某个非系统数据文件损坏,则我们进行数据文件级别的恢复操作,如果数据库处于打开的状态,则执行一下语句,这里假设6号文件损坏;
在tablespace在线的情况下强行离线数据文件,是一种特殊情况,会导致再次在线数据文件是,需要通过归档日志进行media recover;
SQL> select file_name ,file_id, tablespace_name from dba_data_files; FILE_NAME FILE_IDTABLESPACE_NAME------------------------------------------------------------------------------------------ ------------------------------D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF 4 USERSD:\APP\CALVIN\ORADATA\TEST\UNDOTBS01.DBF 3 UNDOTBS1D:\APP\CALVIN\ORADATA\TEST\SYSAUX01.DBF 2 SYSAUXD:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF 1 SYSTEMD:\APP\CALVIN\ORADATA\TEST\EXAMPLE01.DBF 5 EXAMPLED:\APP\CALVIN\ORADATA\TEST\TEST01.DBF 6 TEST01D:\APP\CALVIN\ORADATA\TEST\TEST02.DBF 7 TEST02 RMAN> run {2> sql 'alter database datafile4 offline';3> restore datafile 4;4> recover datafile 4;5> sql 'alter database datafile4 online';6> } sql 语句:alter database datafile 4 offline 启动restore于07-5月-13使用通道ORA_DISK_1 通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:将数据文件00004还原到D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF通道ORA_DISK_1:正在读取备份片段D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_06\O1_MF_NNNDF_TAG20130506T174452_8RGYWNYX_.BKP通道ORA_DISK_1:段句柄=D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_06\O1_MF_NNNDF_TAG20130506T174452_8RGYWNYX_.BKP标记 =TAG20130506T174452通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:01完成restore于07-5月-13 启动recover于07-5月-13使用通道ORA_DISK_1 正在开始介质的恢复介质恢复完成,用时:00:00:01 完成recover于07-5月-13 sql 语句:alter database datafile 4 online
如果在非系统数据文件损坏时,数据库已经关闭,则先将数据库启动到mount,然后将受损的文件离线以后,将数据库启动到打开状态,再执行以上这段程序即可;
3. 系统表空间的数据文件损坏,而控制文件和联机日志文件没有损坏;
如果系统表空间损坏,则只能先将数据库启动到mount状态,然后进行数据文件级别的恢复操作。
SQL> select file_name , file_id,tablespace_name from dba_data_files; FILE_NAME FILE_ID TABLESPACE_NAME------------------------------------------------------------------------------------------ ------------------------------D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF 4 USERSD:\APP\CALVIN\ORADATA\TEST\UNDOTBS01.DBF 3 UNDOTBS1D:\APP\CALVIN\ORADATA\TEST\SYSAUX01.DBF 2 SYSAUXD:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF 1 SYSTEMD:\APP\CALVIN\ORADATA\TEST\EXAMPLE01.DBF 5 EXAMPLED:\APP\CALVIN\ORADATA\TEST\TEST01.DBF 6 TEST01D:\APP\CALVIN\ORADATA\TEST\TEST02.DBF 7 TEST02 7 rows selected Oracle Database 11g Enterprise Edition Release11.2.0.1.0 - 64bit Production SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mount;ORACLE 例程已经启动。 Total System Global Area 3407261696 bytesFixed Size 2180504 bytesVariable Size 1962936936 bytesDatabase Buffers 1426063360 bytesRedo Buffers 16080896 bytes数据库装载完毕。SQL> RMAN> connect target / 已连接到目标数据库:TEST (DBID=2109778957,未打开) RMAN> run{2> sql 'alter database datafile 1 offline';3> restore datafile 1;4> recover datafile 1;5> sql 'alter database datafile 1 online';6> } 使用目标数据库控制文件替代恢复目录sql 语句:alter database datafile 1 offline 启动restore于07-5月-13分配的通道:ORA_DISK_1通道ORA_DISK_1: SID=189设备类型=DISK 通道ORA_DISK_1:正在开始还原数据文件备份集通道ORA_DISK_1:正在指定从备份集还原的数据文件通道ORA_DISK_1:将数据文件00001还原到D:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF通道ORA_DISK_1:正在读取备份片段D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_07\O1_MF_NNNDF_TAG20130507T185034_8RKQ3V5C_.BKP通道ORA_DISK_1:段句柄= D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_07\O1_MF_NNNDF_TAG20130507T185034_8RKQ3V5C_.BKP标记 =TAG20130507T185034通道ORA_DISK_1:已还原备份片段1通道ORA_DISK_1:还原完成,用时:00:00:25完成restore于07-5月-13 启动recover于07-5月-13使用通道ORA_DISK_1 正在开始介质的恢复介质恢复完成,用时:00:00:00 完成 recover于 07-5月 -13 sql 语句: alter database datafile 1online RMAN> sql 'alter database open'; sql 语句: alter database open RMAN> sql 'select status from v$instance'; sql 语句: select status from v$instance RMAN> SQL> select status from v$instance; STATUS------------OPEN
4. 如果所有的数据文件丢失,而控制文件和联机日志文件没有损坏
这时,我们必须进行数据库级别的恢复,将数据库启动到mount阶段以后,执行以下命令:
SQL> host "del D:\app\calvin\oradata\test\*.dbf";D:\app\calvin\oradata\test\EXAMPLE01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\SYSAUX01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\SYSTEM01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\TEMP01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\TEST01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\TEST02.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\UNDOTBS01.DBF另一个程序正在使用此文件,进程无法访问。D:\app\calvin\oradata\test\USERS01.DBF另一个程序正在使用此文件,进程无法访问。数据文件正在使用,无法删除,关闭Oracle数据库在尝试删除;SQL> shutdown immediate;数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> host "del D:\app\calvin\oradata\test\*.dbf";SQL> startup ;ORACLE 例程已经启动。Total System Global Area 3407261696 bytesFixed Size 2180504 bytesVariable Size 1962936936 bytesDatabase Buffers 1426063360 bytesRedo Buffers 16080896 bytes数据库装载完毕。ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件ORA-01110: 数据文件 1: 'D:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF'SQL> shutdown abort;ORACLE 例程已经关闭。SQL> shutdown mount;SP2-0717: 非法的 SHUTDOWN 选项SQL> startup mount;ORACLE 例程已经启动。Total System Global Area 3407261696 bytesFixed Size 2180504 bytesVariable Size 1962936936 bytesDatabase Buffers 1426063360 bytesRedo Buffers 16080896 bytes数据库装载完毕。SQL>PS C:\Users\calvin> rman恢复管理器: Release 11.2.0.1.0 - Production on 星期二 5月 7 19:04:45 2013Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.RMAN> connect target /已连接到目标数据库: TEST (DBID=2109778957, 未打开)RMAN> run {2> restore database;3> recover database;4> alter database open;5> }启动 restore 于 07-5月 -13使用目标数据库控制文件替代恢复目录分配的通道: ORA_DISK_1通道 ORA_DISK_1: SID=189 设备类型=DISK通道 ORA_DISK_1: 正在开始还原数据文件备份集通道 ORA_DISK_1: 正在指定从备份集还原的数据文件通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\CALVIN\ORADATA\TEST\SYSTEM01.DBF通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\CALVIN\ORADATA\TEST\SYSAUX01.DBF通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\CALVIN\ORADATA\TEST\UNDOTBS01.DBF通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\CALVIN\ORADATA\TEST\USERS01.DBF通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\CALVIN\ORADATA\TEST\EXAMPLE01.DBF通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\APP\CALVIN\ORADATA\TEST\TEST01.DBF通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\APP\CALVIN\ORADATA\TEST\TEST02.DBF通道 ORA_DISK_1: 正在读取备份片段 D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_07\O1_MF_NNNDF_TAG20130507T185034_8RKQ3V5C_.BKP通道 ORA_DISK_1: 段句柄 = D:\APP\CALVIN\FLASH_RECOVERY_AREA\TEST\BACKUPSET\2013_05_07\O1_MF_NNNDF_TAG20130507T185034_8RKQ3V5C_.BKP 标记 = TAG20130507T185034通道 ORA_DISK_1: 已还原备份片段 1通道 ORA_DISK_1: 还原完成, 用时: 00:00:46完成 restore 于 07-5月 -13启动 recover 于 07-5月 -13使用通道 ORA_DISK_1正在开始介质的恢复介质恢复完成, 用时: 00:00:03完成 recover 于 07-5月 -13数据库已打开RMAN>SQL> select status from v$instance;STATUS------------OPEN
- 130506rman恢复测试,四种场景
- 几种RMAN恢复场景
- RMAN备份恢复测试
- RMAN恢复案例之四
- ORACLE RMAN恢复测试脚本
- 12C的PDB使用RMAN的4种完全恢复场景
- RMAN研究之测试时间点恢复
- ORACLE RMAN 增量备份完整恢复测试
- oracle rman 增量备份完整恢复测试
- rman 备份策略及恢复测试
- instance和media损坏恢复-RMAN(四) --恢复
- Oracle恢复(四)------用RMAN恢复一个数据文件
- RMAN恢复
- rman恢复
- rman恢复
- RMAN 恢复
- RMAN 恢复
- RMAN恢复
- 杭电1262
- python IDE比较与推荐
- find + grep 组合
- linux的 wget 命令
- POJ 1753 Flip Game
- 130506rman恢复测试,四种场景
- maven冲突问题笔记
- Redis作者谈Redis应用场景
- REDIS跳表(skiplist)
- linux文件锁技术文档
- 键盘过滤之内核级Hook(二)
- 算法导论 2.3-2
- hdu1070(找最便宜的牛奶喝)
- Python导入模块的方法