ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 备份测试发现的一个现象。请留意!

备份测试发现的一个现象。请留意!

原创 Linux操作系统 作者:nccd614 时间:2011-07-13 10:55:57 0 删除 编辑

SQL> truncate table t1;

 

Table truncated.

 

SQL> alter tablespace undotbs1 begin backup;

 

Tablespace altered.

 

-- cp undotbs01.dbf….

 

SQL> insert into t1 values(1);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

SQL> insert into t1 values(2);

 

1 row created.

 

SQL> select * from t1;

 

         X

----------

         1

         2

 

--注意这里只提交了前面1这条数据

 

SQL> alter tablespace undotbs1 end backup;

 

Tablespace altered.

 

SQL> shutdown abort

ORACLE instance shut down.

SQL> startup nomount

ORACLE instance started.

 

--还原备份的undo表空间文件

 

Total System Global Area  125829120 bytes

Fixed Size                  1266176 bytes

Variable Size              71306752 bytes

Database Buffers           50331648 bytes

Redo Buffers                2924544 bytes

SQL> CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG

  2      MAXLOGFILES 16

  3      MAXLOGMEMBERS 3

  4      MAXDATAFILES 100

  5      MAXINSTANCES 8

  6      MAXLOGHISTORY 292

  7  LOGFILE

  8    GROUP 1 (

  9      '/oracle/app/oradata/orcl/redo01.log',

 10      '/oracle/app/oradata/orcl/redo01_02.log'

 11    ) SIZE 10M,

 12    GROUP 2 (

 13      '/oracle/app/oradata/orcl/redo02.log',

 14      '/oracle/app/oradata/orcl/redo02_02.log'

 15    ) SIZE 10M,

 16    GROUP 3 (

 17      '/oracle/app/oradata/orcl/redo03.log',

 18      '/oracle/app/oradata/orcl/redo03_02.log'

 19    ) SIZE 10M

 20  -- STANDBY LOGFILE

 21  DATAFILE

 22    '/oracle/app/oradata/orcl/system01.dbf',

 23    '/oracle/app/oradata/orcl/undotbs01.dbf',

 24    '/oracle/app/oradata/orcl/sysaux01.dbf',

 25    '/oracle/app/oradata/orcl/users01.dbf',

 26    '/oracle/app/oradata/orcl/example01.dbf',

 27    '/oracle/app/oradata/orcl/tbs01.dbf'

 28  CHARACTER SET ZHS16GBK

 29  ;

 

Control file created.

 

SQL> recover database

Media recovery complete.

SQL> alter database open;

 

Database altered.

 

SQL> select * from t1;

 

         X

----------

         1

         2

 

大家这个地方是不是觉得奇怪,insert 2的时候没有提交commit也恢复回来了。

 

 

现象:

Insert into t1 values(2)没有显示commit

但是恢复后t1中却有2这条数据

原因为后边的alter tablespace undotbs1 end backup隐示提交了

因此:DDLDCL会提交前面的事务,大家一定要小心这一点。

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

下一篇: 利用RMAN修复坏块
请登录后发表评论 登录
全部评论

注册时间:2011-07-09

  • 博文量
    5
  • 访问量
    5441