Nologging对恢复的影响(一)

Nologging在提高性能的同时,会给恢复带来一定的影响。下面通过两个案例来说明它是怎么影响恢复的。

第一个案例要验证在先发生nologging操作,再备份数据文件的情况下,是否可以完全恢复数据。
[@more@] 1. 建表

CREATE TABLE SUK.PLOGGING
( A NUMBER,
B NUMBER
)
PARTITION BY LIST (A)
(PARTITION P1 VALUES (1) TABLESPACE SUK ,
PARTITION P2 VALUES (2) TABLESPACE SUK ) ;

CREATE TABLE SUK.PNOLOGGING
( C NUMBER,
D NUMBER
)
PARTITION BY LIST (C)
(PARTITION P1 VALUES (1) TABLESPACE SUK ,
PARTITION P2 VALUES (2) TABLESPACE SUK ) ;

2. 用普通的方式写入数据
SQL> insert into plogging select mod(rownum,2)+1,mod(rownum,2)+1 from dba_objects;

10500 rows inserted

SQL> insert into pnologging select mod(rownum,2)+1,mod(rownum,2)+1 from dba_objects;

10500 rows inserted

SQL> commit;

Commit complete

3. 对其中一个表用普通方式写入数据,另一个表用nologging方式写入数据
SQL> insert into plogging select 1,1 from dba_tables;

963 rows inserted

SQL> insert /*+ append */ into pnologging select 1,1 from dba_tables;

963 rows inserted

SQL> commit;

Commit complete


4. 此时备份表所在的表空间

RMAN> backup tablespace suk;

启动 backup 于 21-11月-10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=135 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00007 name=E:ORACLEPRODUCT10.2.0ORADATASUK.DBF
通道 ORA_DISK_1: 正在启动段 1 于 21-11月-10
通道 ORA_DISK_1: 已完成段 1 于 21-11月-10
段句柄=E:ORACLEPRODUCT10.2.0DB_1DATABASECLTJEFM_1_1 标记=TAG20101121T2206
46 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:07
完成 backup 于 21-11月-10

5. 备份完成后继续用普通方式往表写入数据
SQL> insert into plogging select mod(rownum,2)+1,mod(rownum,2)+1 from dba_objects;

10500 rows inserted

SQL> insert into pnologging select mod(rownum,2)+1,mod(rownum,2)+1 from dba_objects;

10500 rows inserted

SQL> commit;

Commit complete

SQL> delete from test where rownum<=1000;

1000 rows deleted

SQL> commit;

Commit complete

SQL> select count(1) from test;

COUNT(1)
----------
9000

SQL> select count(1) from plogging;

COUNT(1)
----------
21963

SQL> select count(1) from pnologging;

COUNT(1)
----------
21963


6. 此时模拟数据库故障,恢复表空间suk

RMAN> restore tablespace suk;

启动 restore 于 21-11月-10
使用目标数据库控制文件替代恢复目录
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK

通道 ORA_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00007恢复到E:ORACLEPRODUCT10.2.0ORADATASUK.DBF
通道 ORA_DISK_1: 正在读取备份段 E:ORACLEPRODUCT10.2.0DB_1DATABASECLTJEFM_
1_1
通道 ORA_DISK_1: 已恢复备份段 1
段句柄 = E:ORACLEPRODUCT10.2.0DB_1DATABASECLTJEFM_1_1 标记 = TAG20101121T
220646
通道 ORA_DISK_1: 恢复完成, 用时: 00:00:07
完成 restore 于 21-11月-10

RMAN> recover tablespace suk;

启动 recover 于 21-11月-10
使用通道 ORA_DISK_1

正在开始介质的恢复
介质恢复完成, 用时: 00:00:04


7. 验证数据

SQL> select count(1) from test;

COUNT(1)
----------
9000


SQL> select count(1) from plogging;

COUNT(1)
----------
21963

SQL> select count(1) from pnologging;

COUNT(1)
----------
21963


数据已经得到完全恢复。


结论:

一个表,发生nologging操作后再备份,且后续无nologging操作,则基于nologging后的备份可以完全恢复该表的数据。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-1041838/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/231499/viewspace-1041838/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值