参考资料:http://www.itpub.net/thread-481466-1-1.html
C:\Documents and Settings\Administrator>set ORACLE_SID=orcl
C:\Documents and Settings\Administrator>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 14:38:19 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
已连接到空闲例程。
SYS@orcl >startup mount
ORACLE 例程已经启动。
Total System Global Area 535662592 bytes
Fixed Size 1375792 bytes
Variable Size 247464400 bytes
Database Buffers 281018368 bytes
Redo Buffers 5804032 bytes
数据库装载完毕。
SYS@orcl >alter database archivelog;
数据库已更改。
SYS@orcl >alter database open;
数据库已更改。
SYS@orcl >archive log list
数据库日志模式 存档模式
自动存档 启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 98
下一个存档日志序列 100
当前日志序列 100
SYS@orcl >select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> conn jason/marcus
Connected.
SQL> create table test_1223(id number) nologging;
Table created.
SQL> insert into test_1223 values(1);
1 row created.
SQL> commit;
Commit complete.
--rman备份
JASON@orcl >exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
C:\Documents and Settings\Administrator>rman nocatalog target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 23 14:43:10 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到目标数据库: ORCL (DBID=1273551941)
使用目标数据库控制文件替代恢复目录
RMAN> backup database;
启动 backup 于 23-12月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=125 设备类型=DISK
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
输入数据文件: 文件号=00001 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件: 文件号=00002 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件: 文件号=00004 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
输入数据文件: 文件号=00007 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\EDUCATION.DBF
输入数据文件: 文件号=00008 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\INDX.DBF
输入数据文件: 文件号=00003 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件: 文件号=00005 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件: 文件号=00006 名称=D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST1.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-12月-11
通道 ORA_DISK_1: 已完成段 1 于 23-12月-11
段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_12_23\O1_MF_
NNNDF_TAG20111223T144356_7H88SFFO_.BKP 标记=TAG20111223T144356 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:45
通道 ORA_DISK_1: 正在启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集内的数据文件
备份集内包括当前控制文件
备份集内包括当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 23-12月-11
通道 ORA_DISK_1: 已完成段 1 于 23-12月-11
段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2011_12_23\O1_MF_
NCSNF_TAG20111223T144356_7H88WQGN_.BKP 标记=TAG20111223T144356 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:01
完成 backup 于 23-12月-11
RMAN> exit
恢复管理器完成。
--再次插入数据
C:\Documents and Settings\Administrator>sqlplus jason/zja
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 15:04:06 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
JASON@orcl >select *from test_1223;
ID
----------
1
JASON@orcl >insert into test_1223 values(2);
已创建 1 行。
JASON@orcl >commit;
提交完成。
JASON@orcl >conn /as sysdba
已连接。
SYS@orcl >shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SYS@orcl >host
Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.
--模拟文件丢失
C:\Documents and Settings\Administrator>del D:\APP\ADMINISTRATOR\ORADATA\ORCL\*d
bf
---恢复数据
C:\Documents and Settings\Administrator>rman nocatalog target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 23 15:11:29 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 实例已启动
数据库已装载
系统全局区域总计 535662592 字节
Fixed Size 1375792 字节
Variable Size 247464400 字节
Database Buffers 281018368 字节
Redo Buffers 5804032 字节
RMAN> restore database;
启动 restore 于 23-12月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=10 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS
01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST1
.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\EDUCA
TION.DBF
通道 ORA_DISK_1: 将数据文件 00008 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\INDX.
DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\
BACKUPSET\2011_12_23\O1_MF_NNNDF_TAG20111223T144356_7H88SFFO_.BKP
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSE
T\2011_12_23\O1_MF_NNNDF_TAG20111223T144356_7H88SFFO_.BKP 标记 = TAG20111223T144
356
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:55
完成 restore 于 23-12月-11
RMAN> recover database;
启动 recover 于 23-12月-11
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:04
完成 recover 于 23-12月-11
RMAN> alter database open;
数据库已打开
RMAN> exit;
恢复管理器完成。
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 15:21:50 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
@ >conn jason/zja
已连接。
JASON@orcl >select * from test_1223;
ID
----------
2
1
--数据完全恢复,并没有因为创建数据库的时候是nologging而不能恢复!
--再做实验测试,备份中没有的用nologging选项创建的新表t2 及 使用append选项插入nologging的表t
JASON@orcl >conn jason/zja
已连接。
JASON@orcl >create table test_1223_1(id number) nologging;
表已创建。
JASON@orcl >insert into test_1223_1 values(20);
已创建 1 行。
JASON@orcl >commit;
提交完成。
JASON@orcl >insert /*+ append*/ into test_1223 select object_id from all_objects
;
已创建66547行。
JASON@orcl >commit;
提交完成。
--模拟数据文件丢失并从rman恢复
JASON@orcl >conn / as sysdba
已连接。
SYS@orcl >shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SYS@orcl >exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
C:\Documents and Settings\Administrator>del D:\APP\ADMINISTRATOR\ORADATA\ORCL\*d
bf
C:\Documents and Settings\Administrator>rman nocatalog target /
恢复管理器: Release 11.2.0.1.0 - Production on 星期五 12月 23 15:31:38 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库 (未启动)
RMAN> startup mount
Oracle 实例已启动
数据库已装载
系统全局区域总计 535662592 字节
Fixed Size 1375792 字节
Variable Size 247464400 字节
Database Buffers 281018368 字节
Redo Buffers 5804032 字节
RMAN> restore database;
启动 restore 于 23-12月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=133 设备类型=DISK
通道 ORA_DISK_1: 正在开始还原数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集还原的数据文件
通道 ORA_DISK_1: 将数据文件 00001 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTE
M01.DBF
通道 ORA_DISK_1: 将数据文件 00002 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAU
X01.DBF
通道 ORA_DISK_1: 将数据文件 00003 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOT
BS01.DBF
通道 ORA_DISK_1: 将数据文件 00004 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS
01.DBF
通道 ORA_DISK_1: 将数据文件 00005 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMP
LE01.DBF
通道 ORA_DISK_1: 将数据文件 00006 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\TEST1
.DBF
通道 ORA_DISK_1: 将数据文件 00007 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\EDUCA
TION.DBF
通道 ORA_DISK_1: 将数据文件 00008 还原到 D:\APP\ADMINISTRATOR\ORADATA\ORCL\INDX.
DBF
通道 ORA_DISK_1: 正在读取备份片段 D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\
BACKUPSET\2011_12_23\O1_MF_NNNDF_TAG20111223T144356_7H88SFFO_.BKP
通道 ORA_DISK_1: 段句柄 = D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSE
T\2011_12_23\O1_MF_NNNDF_TAG20111223T144356_7H88SFFO_.BKP 标记 = TAG20111223T144
356
通道 ORA_DISK_1: 已还原备份片段 1
通道 ORA_DISK_1: 还原完成, 用时: 00:01:55
完成 restore 于 23-12月-11
RMAN> recover database;
启动 recover 于 23-12月-11
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
完成 recover 于 23-12月-11
RMAN> alter database open;
数据库已打开
RMAN> exit
恢复管理器完成。
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 15:37:02 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
@ >conn jason/zja
已连接。
JASON@orcl >select * from test_1223;
ERROR:
ORA-01578: ORACLE 数据块损坏 (文件号 4, 块号 31584)
ORA-01110: 数据文件 4: 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'
ORA-26040: 数据块是使用 NOLOGGING 选项加载的
未选定行
--说明,nologging表用append插入之后,如果从之前的备份恢复会有问题!
JASON@orcl >select * from test_1223_1;
ID
----------
20
--说明, 在备份之后的创建的nologging表,与在备份之前创建的nologging表恢复起来没有差别
--为了搞清楚表T丢失的数据是否就是append插入的数据, 我们通过设置10231事件的方法来导出正确的部分数据,并恢复表T
JASON@orcl >conn / as sysdba
已连接。
SYS@orcl > ALTER SYSTEM SET EVENTS '10231 trace name context forever,level 10' ;
系统已更改。
C:\Documents and Settings\Administrator>exp userid=jason/zja file=t.dmp tables=t
est_1223
Export: Release 11.2.0.1.0 - Production on 星期五 12月 23 15:40:55 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
. . 正在导出表 TEST_1223导出了 2 行
成功终止导出, 没有出现警告。
C:\Documents and Settings\Administrator>exit
SYS@orcl >ALTER SYSTEM SET EVENTS '10231 trace name context off';
系统已更改。
SYS@orcl >exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
C:\Documents and Settings\Administrator>sqlplus jason/zja
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 15:42:19 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
JASON@orcl >drop table test_1223;
表已删除。
JASON@orcl >exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开
C:\Documents and Settings\Administrator>imp userid=jason/zja file=t.dmp
Import: Release 11.2.0.1.0 - Production on 星期五 12月 23 15:43:35 2011
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
经由常规路径由 EXPORT:V11.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 JASON 的对象导入到 JASON
. 正在将 JASON 的对象导入到 JASON
. . 正在导入表 "TEST_1223"导入了 2 行
成功终止导入, 没有出现警告。
C:\Documents and Settings\Administrator>sqlplus jason/zja
SQL*Plus: Release 11.2.0.1.0 Production on 星期五 12月 23 15:44:04 2011
Copyright (c) 1982, 2010, Oracle. All rights reserved.
连接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
JASON@orcl >select *from test_1223;
ID
----------
2
1
--原来的数据还是好的,丢失的确实是用append插入的数据。
结论:对于nologging创建的表,如果用append插入数据后,应该马上备份数据库,否则恢复的时候会丢失数据。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25323853/viewspace-713864/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25323853/viewspace-713864/