//今天到客户现场,客户说就像测试下oracle数据库是否能够恢复到一次非法操作数据等操作前的全部数据。于是,就考虑到了使用RMAN的非完全恢复。于是做了如下操作:
//查看tt1表下数据
21:57:23 SQL> conn / as sysdba
已连接。
22:07:51 SQL> set time off
SQL> select * from tt1;
A
----------
3
4
5
6
1
2
已选择6行。
--------------------------------------------------------------------------------------------------------
//使用rman对数据库做一次全备,为了方便,省去了不少的脚本内容
RMAN> run{backup full database tag='db_full';}
启动 backup 于 30-7月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00003 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSAUX_3ML9SJQX_.DBF
输入数据文件 fno=00006 name=C:\ORCL\N.DBF
输入数据文件 fno=00005 name=C:\ORCL\RMAN_TS.DBF
通道 ORA_DISK_1: 正在启动段 1 于 30-7月 -08
通道 ORA_DISK_2: 启动全部数据文件备份集
通道 ORA_DISK_2: 正在指定备份集中的数据文件
输入数据文件 fno=00004 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_USERS_3ML9SWGC_.DBF
输入数据文件 fno=00002 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_UNDOTBS1_3ML9S9JQ_.DBF
输入数据文件 fno=00009 name=C:\ORCL\SCOTT\SCOTT_DATA.DBF
通道 ORA_DISK_2: 正在启动段 1 于 30-7月 -08
通道 ORA_DISK_3: 启动全部数据文件备份集
通道 ORA_DISK_3: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_3ML9RMHJ_.DBF
输入数据文件 fno=00007 name=C:\ORCL\UNDO1.DBF
输入数据文件 fno=00013 name=C:\ORCL\EXEC01.DBF
通道 ORA_DISK_3: 正在启动段 1 于 30-7月 -08
通道 ORA_DISK_2: 已完成段 1 于 30-7月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y79DF_.BKP 标记=DB_FULL 注释=NONE
通道 ORA_DISK_2: 备份集已完成, 经过时间:00:03:02
通道 ORA_DISK_1: 已完成段 1 于 30-7月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y775C_.BKP 标记=DB_FULL 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:05
通道 ORA_DISK_3: 已完成段 1 于 30-7月 -08
段句柄=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y7J3K_.BKP 标记=DB_FULL 注释=NONE
通道 ORA_DISK_3: 备份集已完成, 经过时间:00:03:02
完成 backup 于 30-7月 -08
启动 Control File and SPFILE Autobackup 于 30-7月 -08
段 handle=C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2008_07_30\O1_MF_S_661472670_490YF0T3_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 30-7月 -08
RMAN> quit
RMAN-06900: 警告: 无法生成 V$RMAN_STATUS 或 V$RMAN_OUTPUT 行
RMAN-06901: 警告: 禁止更新 V$RMAN_STATUS 和 V$RMAN_OUTPUT 行
来自目标数据库的 ORACLE 错误:
恢复管理器完成。
//这时候再为tt1表插入一条数据7;
SQL> set time on
22:20:50 SQL> insert into tt1 values(7);
已创建 1 行。
22:29:03 SQL> commit;
提交完成。
22:29:05 SQL> select tablespace_name from dba_tables where table_name='TT1';
TABLESPACE_NAME
------------------------------
EXEC
-----------------------------------------------------------------------------------------------------
//shutdown数据库,然后startup mount状态下
22:31:32 SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
22:40:38 SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已经启动。
Total System Global Area 327155712 bytes
Fixed Size 1290400 bytes
Variable Size 167776096 bytes
Database Buffers 150994944 bytes
Redo Buffers 7094272 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 13 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 13: 'C:\ORCL\EXEC01.DBF'
----------------------------------------------------------------------------------------------------------
//开始对数据库做一次不完全恢复,目标是:能出现tt1表中不存在数据7的情况。
C:\Users\niwei>rman target /
恢复管理器: Release 10.2.0.3.0 - Production on 星期三 7月 30 22:44:29 2008
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库: ORCL (DBID=1166321412, 未打开)
RMAN> restore database;
启动 restore 于 30-7月 -08
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
分配的通道: ORA_DISK_2
通道 ORA_DISK_2: sid=156 devtype=DISK
分配的通道: ORA_DISK_3
通道 ORA_DISK_3: sid=155 devtype=DISK
通道 ORA_DISK_2: 正在开始恢复数据文件备份集
通道 ORA_DISK_2: 正在指定从备份集恢复的数据文件
正将数据文件00003恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSAUX_3ML9SJQX_.DBF
正将数据文件00005恢复到C:\ORCL\RMAN_TS.DBF
正将数据文件00006恢复到C:\ORCL\N.DBF
通道 ORA_DISK_2: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y775C_.BKP
通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_UNDOTBS1_3ML9S9JQ_.DBF
正将数据文件00004恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_USERS_3ML9SWGC_.DBF
正将数据文件00009恢复到C:\ORCL\SCOTT\SCOTT_DATA.DBF
通道 ORA_DISK_1: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y79DF_.BKP
通道 ORA_DISK_3: 正在开始恢复数据文件备份集
通道 ORA_DISK_3: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\DATAFILE\O1_MF_SYSTEM_3ML9RMHJ_.DBF
正将数据文件00007恢复到C:\ORCL\UNDO1.DBF
正将数据文件00013恢复到C:\ORCL\EXEC01.DBF
通道 ORA_DISK_3: 正在读取备份段 C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y7J3K_.BKP
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y79DF_.BKP 标记 = DB_FULL
通道 ORA_DISK_1: 恢复完成, 用时: 00:02:42
通道 ORA_DISK_2: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y775C_.BKP 标记 = DB_FULL
通道 ORA_DISK_2: 恢复完成, 用时: 00:02:47
通道 ORA_DISK_3: 已恢复备份段 1
段句柄 = C:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2008_07_30\O1_MF_NNNDF_DB_FULL_490Y7J3K_.BKP 标记 = DB_FULL
通道 ORA_DISK_3: 恢复完成, 用时: 00:03:15
完成 restore 于 30-7月 -08
RMAN> sql 'alter session set nls_date_format="yyyy-mm-dd:hh24:mi:ss"';
sql 语句: alter session set nls_date_format="yyyy-mm-dd:hh24:mi:ss"
RMAN> recover database until time '2008-07-30:22:28:00';
启动 recover 于 30-7月 -08
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 30-7月 -08
22:44:15 SQL> alter database open resetlogs;
数据库已更改。
22:52:16 SQL> select * from tt1;
A
----------
3
4
5
6
1
2
已选择6行。
22:56:00 SQL>
最后发现确实没有了数据为7的记录,所以此次不完全恢复算成功了。
总结:这次是我第一次去给客户现场做服务,问题很简单,但我还是记录下来了,因为在这个过程中,还是有一些收获的:
1.感觉自己的基础理论还可以,但有时候一到实际动手时,感觉有点慌乱。证明自己学习得还是不够。平时还应该多做练习,多动手。
2.对于oracle体系结构通过今天给客户讲解,发现还是凑合的。但是,对于一些结合问题出现的状况,自己还是有些力不从心。证明自己对与oracle的RMAN备份还是有一些理解上不够深刻,还需要多看文档,多做练习。
3.心态上,自己在遇到问题时,容易第一时间去找相关的书籍与资料,感觉自己还是应该多根据出现的问题,通过各个不同的角度去理解,分析。虽然现在达不到高手的水平,但至少要应该培养这样的习惯,这样有利于自己以后的处理问题与解决问题的能力。而且,自己在很多人在场的观看自己处理问题过程时,容易紧张,犯一些比较低级的错误,说明自己还是不够成熟,而且交流上还需要多锻炼。
总之,这次外出服务是我向oracle专业dba的目标迈出的第一步,虽然有很多做的不好的地方,不但给自己敲响了警钟,也给自己添加了信心,与好好往oracleDBA方向前进的动力。这次技术上没有什么,但自己还是感慨颇多的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10710960/viewspace-414958/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/10710960/viewspace-414958/