ITPub博客

首页 > Linux操作系统 > Linux操作系统 > rman备份恢复nologging表

rman备份恢复nologging表

原创 Linux操作系统 作者:Nalternative 时间:2011-12-23 15:51:38 0 删除 编辑

参考资料: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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: SQL Tuning Advisor
下一篇: oracle 分页问题
请登录后发表评论 登录
全部评论

注册时间:2011-02-09

  • 博文量
    123
  • 访问量
    170932