RMAN数据库恢复测试
RMAN恢复实践
RMAN> list backup;
using target database control file instead of recovery catalog
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
1 Full 964.65M DISK 00:02:07 19-SEP-13
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20130919T011640
Piece Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 838482 19-SEP-13 /u01/app/oracle/oradata/august/august/system01.dbf
2 Full 838482 19-SEP-13 /u01/app/oracle/oradata/august/august/sysaux01.dbf
3 Full 838482 19-SEP-13 /u01/app/oracle/oradata/august/august/undotbs01.dbf
4 Full 838482 19-SEP-13 /u01/app/oracle/oradata/august/august/users01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2 Full 9.36M DISK 00:00:08 19-SEP-13
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20130919T011640
Piece Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_ncsnf_TAG20130919T011640_93odvkkc_.bkp
SPFILE Included: Modification time: 19-SEP-13
SPFILE db_unique_name: AUGUST
Control File Included: Ckp SCN: 838535 Ckp time: 19-SEP-13
2. 归档当前日志
SQL> alter system switch logfile;
SQL> select sequence#,first_change#,next_change# ,archived from v$archived_log;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE# ARCHIV
---------- ------------- ------------ ------
2 757280 767227 YES
3 767227 780016 YES
4 780016 811911 YES
5 811911 835483 YES
6 835483 840784 YES
3. 在新的日志文件中,进行DML操作。
SQL> create table scott.rman_test1(id int,name char(10));
SQL> select * from scott.rman_test1;
ID NAME
---------- --------------------
1 log1
1 log1
1 log1
1 log1
1 log1
1 log1
将表scott.rman_test1操作日志归档。
SQL> alter system switch logfile;
SQL> select sequence#,first_change#,next_change# from v$archived_log;
SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
......
6 835483 840784
7 840784 841197
在新的日志中,进行scott.rman_test2的创建,不对此日志归档,log sequence 8.
SQL> create table scott.rman_test2 as select table_name from user_tables;
此时在线日志8中有rman_test2,归档日志7中有rman_test1.
4. 使用rman进行不完整恢复到归档日志7.
注:rman restore操作需要在mount下进行,不然会报错。
RMAN> restore database; Starting restore at 19-SEP-13 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=44 device type=DISK channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/august/august/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/august/august/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/august/august/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/august/august/users01.dbf channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure of restore command at 09/19/2013 20:38:42 ORA-19870: error while restoring backup piece /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp ORA-19573: cannot obtain exclusive enqueue for datafile 1
关闭数据库,启动到mount
RMAN> shutdown immediate /*RMAN下可以进行shutdown, startup命令*/ database closed database dismounted Oracle instance shut down RMAN> startup mount; connected to target database (not started) Oracle instance started database mounted Total System Global Area 422670336 bytes Fixed Size 1336960 bytes Variable Size 322963840 bytes Database Buffers 92274688 bytes Redo Buffers 6094848 bytes
查看备份集信息概要。
RMAN> list backup summary; List of Backups =============== Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag ------- -- -- - ----------- --------------- ------- ------- ---------- --- 1 B F A DISK 19-SEP-13 1 1 NO TAG20130919T011640 2 B F A DISK 19-SEP-13 1 1 NO TAG20130919T011640
恢复备份文件
-rw-r-----. 1 Oracle oinstall 9830400 Sep 19 01:18 o1_mf_ncsnf_TAG20130919T011640_93odvkkc_.bkp -rw-r-----. 1 Oracle oinstall 1011515392 Sep 19 01:18 o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp RMAN> restore database; Starting restore at 19-SEP-13 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=19 device type=DISK channel ORA_DISK_1: starting datafile backup set restore channel ORA_DISK_1: specifying datafile(s) to restore from backup set channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/august/august/system01.dbf channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/august/august/sysaux01.dbf channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/august/august/undotbs01.dbf channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/august/august/users01.dbf channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/august/AUGUST/backupset/2013_09_19/o1_mf_nnndf_TAG20130919T011640_93odqb65_.bkp tag=TAG20130919T011640 channel ORA_DISK_1: restored backup piece 1 channel ORA_DISK_1: restore complete, elapsed time: 00:03:45 Finished restore at 19-SEP-13
介质恢复(相当于db2中的前滚操作)
RMAN> recover database until;
RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-00558: error encountered while parsing input commands RMAN-01009: syntax error: found ";": expecting one of: "scn, sequence, time" RMAN-01007: at line 1 column 23 file: standard input
可以看出RMAN中recover database until 后面可以按三种方式前滚(SCN,SEQUENCE,TIME).
这里我们按照sequence方式恢复(前滚)。
查看归档日志情况。
RMAN> list archivelog all;
List of Archived Log Copies for database with db_unique_name AUGUST
=====================================================================
Key Thrd Seq S Low Time
------- ---- ------- - ---------
1 1 2 A 15-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_15/o1_mf_1_2_93cc8thy_.arc
2 1 3 A 15-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_15/o1_mf_1_3_93ck0mxm_.arc
3 1 4 A 15-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_16/o1_mf_1_4_93ftwxqj_.arc
4 1 5 A 16-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_5_93o9xt7k_.arc
5 1 6 A 19-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_6_93qgls17_.arc
6 1 7 A 19-SEP-13
Name: /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_7_93qh7sqx_.arc
前滚恢复。
RMAN> recover database until sequence 7; Starting recover at 19-SEP-13 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 6 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_6_93qgls17_.arc archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_6_93qgls17_.arc thread=1 sequence=6 media recovery complete, elapsed time: 00:00:06 Finished recover at 19-SEP-13
/*好像只恢复到log 7就停止了*/
RMAN> recover database until sequence 8; Starting recover at 19-SEP-13 using channel ORA_DISK_1 starting media recovery archived log for thread 1 with sequence 7 is already on disk as file /u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_7_93qh7sqx_.arc archived log file name=/u01/app/oracle/flash_recovery_area/august/AUGUST/archivelog/2013_09_19/o1_mf_1_7_93qh7sqx_.arc thread=1 sequence=7 media recovery complete, elapsed time: 00:00:01 Finished recover at 19-SEP-13
/*看来需要指定到需要日志的下一个sequence*/
察看当前日志情况。
SQL> select sequence#,archived,status,first_change#,next_change# from v$log;
SEQUENCE# ARCHIV STATUS FIRST_CHANGE# NEXT_CHANGE#
---------- ------ -------------------------------- ------------- ------------
7 YES INACTIVE 840784 841197
6 YES INACTIVE 835483 840784
8 NO CURRENT 841197 2.8147E+14
我们采用不完全恢复,不应用8号日志,直接打开数据库。
RMAN> alter database open resetlogs;
database opened
数据库完成恢复,由于是resetlogs模式打开的,查看当前日志状态。
SQL> select sequence#,archived,status,first_change#,next_change# from v$log;
SEQUENCE# ARCHIV STATUS FIRST_CHANGE# NEXT_CHANGE#
---------- ------ -------------------------------- ------------- ------------
1 NO CURRENT 841198 2.8147E+14
0 YES UNUSED 0 0
0 YES UNUSED 0 0
日志被reset从1号开始了。
看到恢复后的用户表情况。
SQL> select table_name from user_tables;
TABLE_NAME ------------------------------------------------------------ RMAN_TEST1 T_C T_P SALGRADE BONUS EMP DEPT
看到RMAN_TEST1表已经被恢复回来了。但是里面没有数据,因为我们之前并没有commit这个插入。
RMAN数据库恢复测试的更多相关文章
- RMAN基础恢复测试
--RMAN恢复测试实战 RMAN> list backup; using target database control file instead of recovery catalo ...
- RMAN数据库恢复 之归档模式有(无)备份-丢失数据文件的恢复
1.归档模式有备份,丢失数据文件的恢复归档模式有备份,不管丢失什么数据文件,直接在RMAN下RESTOER--->RECOVER--->OPEN即可. RMAN> STARUP MO ...
- rman数据库恢复;关键/非重要文件、影像副本、控制文件、还原点、非归档、增量、新数据库、灾难性回复
运行全然恢复:在 ARCHIVELOG 模式下 丢失了系统重要数据文件: 假设某个数据文件丢失或损坏.且该文件属于 SYSTEM 或 UNDO 表空间,请运行下面步骤: 1. 实例可能会也可能不会自己 ...
- RMAN备份介质的移动与再恢复测试 [ catalog start with ‘dir’ ]
--RMAN备份介质的移动与再恢复测试 ---------------------------------------------------------2013/09/21 由于目前生产环境中没 ...
- Oracle之使用rman进行异机恢复测试记录
本次测试目的是从生产数据库导出rman备份然后在测试数据库恢复 1,拷贝备份至相应目录 2,进入rman rman target \ 3,关闭数据库 shutdown 4,以nomount模式启动数据 ...
- oracle 11g 数据库恢复技术 --rman catalog
Oracle RMAN的catalog并不是指标备份恢复操作的一个必要组件,但oracle推荐使用该组件.启用之后,归档日志.备份集.镜像复制等备份信息的保存地点是RMAN资料库(catalog), ...
- RMAN数据库恢复之对数据库进行完全介质恢复
RMAN数据库恢复之对数据库进行完全介质恢复环境:控制文件和参数文件SPFILE及归档文件.重做日志文件都在.其它数据文件丢失.恢复方法:使用之前创建的全库备份进行恢复1.删除数据文件: SQL> ...
- Oracle之rman数据库在非归档模式下的备份和恢复
1.数据库在非归档模式下的备份 SQL> archive log list;数据库日志模式 非存档模式自动存档 禁用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 ...
- 使用zfs进行pg的pitr恢复测试
前段时间做了一下zfs做pg的增量恢复测试,mark一下. 服务器信息: 主机:192.168.173.43 备机:192.168.173.41 主备使用流复制搭建,在备机上面进行了zfs快照备份. ...
随机推荐
- 【TCP/IP详解 卷1:协议】 第18章TCP连接的建立与终止
img { border: 1px solid black } T C P是一个面向连接的协议.无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接. RST:复位连接,将连接重置,一般用在 ...
- (cljs/run-at (JSVM. :browser) "简单类型可不简单啊~")
前言 每逢学习一个新的语言时总要先了解这门语言支持的数据类型,因为数据类型决定这门语言所针对的问题域,像Bash那样内置只支持字符串的脚步明显就是用于文本处理啦.而数据类型又分为标量类型(Scala ...
- org.apache.commons.beanutils.BeanMap简单使用例子
一.org.apache.commons.beanutils.BeanMap; 将一个java bean允许通过map的api进行调用, 几个支持的操作接口: Object get(Object ke ...
- OpenCV探索之路(十八):使用imwrite调整保存的图片质量
近日在用opencv做一些图像处理的操作时,需要对一些高分辨率的图像进行保存.比如,在操作一个容量为230M的图像后,并对该图像保存为JPG格式后,发现图像容量变为80M了!针对这个问题,忙了大半天, ...
- orcle 索引的使用
2.4.3.1. 索引的概念 数据库中的索引与书籍中的索引类似,在一本书中,利用索引可以快速查找所需信息, 无须阅读整本书.在数据库中,索引使数据库程序无须对整个表进行扫描, 就可以在其中找到所需数据 ...
- Postmessage运用-往飞信添加信息
1.定位窗口 fHwnd:=FindWindow(nil,'短信中心'); then begin showmessage('请先登录飞信2013短信中心'); exit; end; { applica ...
- 【Data Visual】一文搞懂matplotlib数据可视化
一文搞懂matplotlib数据可视化 作者:白宁超 2017年7月19日09:09:07 摘要:数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息.但是,这并不就意味着数据可视化就一定因为 ...
- 【iOS干货】☞ Socket
一.概念 Socket 字面意思又称“套接字” 网络上的两个程序(如,客户端和服务器端)通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 应用程序一般是先通过Socket来建 ...
- 玩玩微信公众号Java版之四:自定义公众号菜单
序: 微信公众号基本的菜单很难满足个性化及多功能的实现,那么微信能否实现自定菜单呢,具体的功能又如何去实现么?下面就来学习一下微信自定义公众号菜单吧! 自定义菜单接口可实现多种类型按钮,如下: 1.c ...
- showcase,开发中必须引起重视的小环节
有人说,测试者来自火星,开发者来自金星.这是因为软件测试员和软件开发者就好比一对冤家,里面的缘由说不清也道不明.开发代表着创造,而测试则代表着摧毁,因为测试的目的就是以各种方式不断地从开发出的产品中发 ...