今日实验:模拟 rman备份数据库之后,example表空间存储坏掉,然后将example表空间做恢复,并修改恢复后的路径到另外一个磁盘上。以及恢复后路径不变的情况,实验的过程中要监视rman备份的过程和查看关于坏块的几个视图。
步骤:
1,检查数据库的物理结构,一共有几个表空间,对应那些数据文件。
2,用户ning的animal表是建立在example表空间上的,查询animal表空间的内容,只有一行dog,可以查看到,没有问题。
3,使用rman对数据库数据文件做full backup;对数据文件作level为0的增量备份。
4,登陆ning用户,增加一行数据到cat到animal表中
5,使用rman对数据库数据文件做level为1的增量备份,查询v$session_longops视图监视进度,查询v$session视图查看每个channel对应的sid和user,(client-infro )。
6,对数据库shutdown immediate,干净的关闭,然后将example表空间的数据文件移动到另外一个目录d:\backup-lab\test下。
7,打开数据库到mount状态,在rman中运行更改数据文件路径的命令 renew观察到同时对控制文件做了备份。
8,更改数据库到open状态,查看数据库的物理结构的视图,已经修改成功。
9,增加一行数据pig到animal表中。
10, 使用rman再对数据库文件做level为1的增量备份。查询v$backup_corruption,v$database_block_corruption,查看坏块的情况。查询v$archived_log,v$backup_datafile,v$backup_redolog,v$backup_set,v$backup_piece查看备份情况。
11,删除example表空间的数据文件,再查询animal表没有办法查到。(这一步的小实验 由于我是在windows下装的oracle,介于windows程序对文件的保护,我没有办法在数据库打开的情况下删除example数据文件来完成这个实验,由于这个实验也比较简单,那就明天在linux系统下再做吧)
12,使用rman恢复数据库,将该数据文件恢复出来,再查询animal表和表的内容,可以正常查询。
实现:
1、
SQL> col tablespace_name format a15;
SQL> col file_name format a40;
SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
---------------------------------------- ---------------
E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF USERS
E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF SYSAUX
E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF UNDO
E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF SYSTEM
E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF EXAMPLE
2、
SQL> conn ning/ning
已连接。
animal建立在example表空间上
SQL> select table_name,tablespace_name from user_tables;
TABLE_NAME TABLESPACE_NAME
----------------------- ---------------
ANIMAL EXAMPLE
SQL> select * from animal;
NAME
-------------------------------------------------
dog
3、
RMAN> backup database plus archivelog delete all input format 'd:\backup-lab\ning_%U';
启动 backup 于 29-10月-10
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =32 记录 ID=5 时间戳=733696305
输入存档日志线程 =1 序列 =33 记录 ID=6 时间戳=733696385
输入存档日志线程 =1 序列 =34 记录 ID=7 时间戳=733701984
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=D:\BACKUP-LAB\NING_0CLRMPR1_1_1 标记=TAG20101029T220625 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:04
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2010_10_29\O1_MF_1_32_6DOHOJQX_.ARC
存档日志文件名 =E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2010_10_29\O1_MF_1_33_6DOHR0YR_.ARC
存档日志文件名 =E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2010_10_29\O1_MF_1_34_6DOO6ZQG_.ARC
完成 backup 于 29-10月-10
启动 backup 于 29-10月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
输入数据文件 fno=00001 name=E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
输入数据文件 fno=00002 name=E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
输入数据文件 fno=00004 name=E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
输入数据文件 fno=00005 name=E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\BACKUPSET\2010_10_29\O1_MF_NNNDF_TAG20101029T220630_6DO
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:05
完成 backup 于 29-10月-10
启动 backup 于 29-10月-10
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =35 记录 ID=8 时间戳=733702055
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=D:\BACKUP-LAB\NING_0ELRMPT8_1_1 标记=TAG20101029T220735 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
通道 ORA_DISK_1: 正在删除存档日志
存档日志文件名 =E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\ARCHIVELOG\2010_10_29\O1_MF_1_35_6DOO97LK_.ARC
完成 backup 于 29-10月-10
启动 Control File Autobackup 于 29-10月-10
段 handle=E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\2010_10_29\O1_MF_N_733702058_6DOO9C5V_.BK
完成 Control File Autobackup 于 29-10月-10
RMAN> list backup;
备份集列表
===================
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
10 16.92M DISK 00:00:02 29-10月-10
BP 关键字: 10 状态: AVAILABLE 已压缩: NO 标记: TAG20101029T220625
段名:D:\BACKUP-LAB\NING_0CLRMPR1_1_1
备份集 10 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 32 916841 29-10月-10 924133 29-10月-10
1 33 924133 29-10月-10 924166 29-10月-10
1 34 924166 29-10月-10 928518 29-10月-10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
11 Full 726.52M DISK 00:01:02 29-10月-10
BP 关键字: 11 状态: AVAILABLE 已压缩: NO 标记: TAG20101029T220630
段名:E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\BACKUPSET\2010_10_29\O1_MF_NNNDF_TAG20101029T220630_6DOO7
备份集 11 中的数据文件列表
文件 LV 类型 Ckp SCN Ckp 时间 名称
---- -- ---- ---------- ---------- ----
1 Full 928523 29-10月-10 E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
2 Full 928523 29-10月-10 E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
3 Full 928523 29-10月-10 E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
4 Full 928523 29-10月-10 E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
5 Full 928523 29-10月-10 E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF
BS 关键字 大小 设备类型占用时间 完成时间
------- ---------- ----------- ------------ ----------
12 38.50K DISK 00:00:01 29-10月-10
BP 关键字: 12 状态: AVAILABLE 已压缩: NO 标记: TAG20101029T220735
段名:D:\BACKUP-LAB\NING_0ELRMPT8_1_1
备份集 12 中的已存档日志列表
Thrd Seq 低 SCN 短时间 下一个 SCN 下一次
---- ------- ---------- ---------- ---------- ---------
1 35 928518 29-10月-10 928551 29-10月-10
BS 关键字 类型 LV 大小 设备类型 经过时间 完成时间
------- ---- -- ---------- ----------- ------------ ----------
13 Full 6.77M DISK 00:00:01 29-10月-10
BP 关键字: 13 状态: AVAILABLE 已压缩: NO 标记: TAG20101029T220738
段名:E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\2010_10_29\O1_MF_N_733702058_6DOO9C5V_.BKP
包括的控制文件: Ckp SCN: 928557 Ckp 时间: 29-10月-10
RMAN>
SQL> select sid,username,client_info from v$session order by 2;
SID USERNAME CLIENT_INFO
---------- --------------- ------------------------------
23 SYS
33 SYS rman channel=ORA_DISK_1
21 SYS
20 SYS
37
已选择20行。
SQL> select sid,sofar,totalwork from v$session_longops;
RMAN> backup incremental level 0 database format 'd:\backup-lab\ning0_%U';
启动 backup 于 29-10月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 0 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
输入数据文件 fno=00001 name=E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
输入数据文件 fno=00002 name=E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
输入数据文件 fno=00004 name=E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
输入数据文件 fno=00005 name=E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=D:\BACKUP-LAB\NING0_0GLRMQFN_1_1 标记=TAG20101029T221727 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:05
完成 backup 于 29-10月-10
启动 Control File Autobackup 于 29-10月-10
段 handle=E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\2010_10_29\O1_MF_N_733702712_6DOOXSLK_.BKP comment=NONE
完成 Control File Autobackup 于 29-10月-10
4、
SQL> insert into animal values('cat');
已创建 1 行。
SQL> select * from animal;
NAME
--------------------------------------------------------------------------------
cat
dog
5、完成增量备份
RMAN> backup incremental level 1 database format 'd:\backup-lab\ning1_%U';
启动 backup 于 29-10月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
输入数据文件 fno=00001 name=E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
输入数据文件 fno=00002 name=E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
输入数据文件 fno=00004 name=E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
输入数据文件 fno=00005 name=E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=D:\BACKUP-LAB\NING1_0ILRMQMF_1_1 标记=TAG20101029T222103 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:25
完成 backup 于 29-10月-10
启动 Control File Autobackup 于 29-10月-10
段 handle=E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\2010_10_29\O1_MF_N_733702888_6DOP39N0_.BKP comment=NONE
完成 Control File Autobackup 于 29-10月-10
RMAN>
6、
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
7、
C:\>rman target /
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 10月 29 22:28:41 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 实例已启动
数据库已装载
系统全局区域总计 599785472 字节
Fixed Size 1288820 字节
Variable Size 176162188 字节
Database Buffers 419430400 字节
Redo Buffers 2904064 字节
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
2 E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
3 E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
4 E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
5 E:\ORA-PRODUCT\ORADATA\XE\EXAMPLE01.DBF
RMAN> run {
2> set newname for datafile 5 to 'd:\backup-lab\test\example01.dbf';
3> restore database;
4> switch datafile all;
5> recover database;
6> alter database open;
7> }
正在执行命令: SET NEWNAME
使用目标数据库控制文件替代恢复目录
启动 restore 于 29-10月-10
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=35 devtype=DISK
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
正将数据文件00002恢复到E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
正将数据文件00003恢复到E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
正将数据文件00004恢复到E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
正将数据文件00005恢复到D:\BACKUP-LAB\TEST\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\BACKUP-LAB\NING0_0GLRMQFN_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\BACKUP-LAB\NING0_0GLRMQFN_1_1 标记 = TAG20101029T221727
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:56
完成 restore 于 29-10月-10
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=6 stamp=733703857 文件名=D:\BACKUP-LAB\TEST\EXAMPLE01.DBF
启动 recover 于 29-10月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在开始恢复增量数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
数据文件 00001 的恢复目标: E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
数据文件 00002 的恢复目标: E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
数据文件 00003 的恢复目标: E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
数据文件 00004 的恢复目标: E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
数据文件 00005 的恢复目标: D:\BACKUP-LAB\TEST\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在读取备份段 D:\BACKUP-LAB\NING1_0ILRMQMF_1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = D:\BACKUP-LAB\NING1_0ILRMQMF_1_1 标记 = TAG20101029T222103
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:01
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
完成 recover 于 29-10月-10
数据库已打开
RMAN>
8、
SQL> conn ning/ning
已连接。
SQL> select * from animal;
NAME
---------------------------------------
cat
dog
SQL> select name from v$datafile;
NAME
-----------------------------------------------
E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
D:\BACKUP-LAB\TEST\EXAMPLE01.DBF
9、
SQL> conn ning/ning
已连接。
SQL> insert into animal values('pig');
已创建 1 行。
SQL> select * from animal;
NAME
-------------------------------------------------------
cat
dog
pig
10、
RMAN> backup incremental level 1 database format 'd:\backup-lab\ning11_%U';
启动 backup 于 29-10月-10
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动增量级别 1 数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=E:\ORA-PRODUCT\ORADATA\XE\SYSAUX.DBF
输入数据文件 fno=00001 name=E:\ORA-PRODUCT\ORADATA\XE\SYSTEM.DBF
输入数据文件 fno=00002 name=E:\ORA-PRODUCT\ORADATA\XE\UNDO.DBF
输入数据文件 fno=00004 name=E:\ORA-PRODUCT\ORADATA\XE\USERS.DBF
输入数据文件 fno=00005 name=D:\BACKUP-LAB\TEST\EXAMPLE01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 29-10月-10
通道 ORA_DISK_1: 已完成段 1 于 29-10月-10
段句柄=D:\BACKUP-LAB\NING11_0LLRMS58_1_1 标记=TAG20101029T224600 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:25
完成 backup 于 29-10月-10
启动 Control File Autobackup 于 29-10月-10
段 handle=E:\ORA-PRODUCT\APP\ORACLE\FLASH_RECOVERY_AREA\XE\AUTOBACKUP\2010_10_29\O1_MF_N_733704385_6DOQL2K2_.BKP comment=NONE
完成 Control File Autobackup 于 29-10月-10
RMAN>
备份完检查坏块的统计 为0
SQL> select count(*) from v$backup_corruption;
COUNT(*)
----------
0
SQL> select count(*) from v$database_block_corruption;
COUNT(*)
----------
0
SQL> select count(*) from v$backup_set;
COUNT(*)
----------
19
SQL> select count(*) from v$backup_piece;
COUNT(*)
----------
19
SQL> select count(*) from v$backup_redolog;
COUNT(*)
----------
10
SQL> select count(*) from v$backup_datafile;
COUNT(*)
----------
42
SQL> select count(*) from v$archived_log;
COUNT(*)
----------
8
11、
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24799772/viewspace-677678/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24799772/viewspace-677678/