ITPub博客

首页 > 数据库 > Oracle > [20150309]热备份与redo.txt

[20150309]热备份与redo.txt

原创 Oracle 作者:lfree 时间:2015-03-09 09:07:17 0 删除 编辑

[20150309]热备份与redo.txt

-- 最近一段时间看关于备份的书籍,提到热备份期间,如果对某块做dml操作,redo 日志里面是包含整个数据库,防止出现块分裂。
-- http://blog.itpub.net/267265/viewspace-1441552/

--实际上仅仅第1次会做,后续的dml就不会做这样的操作,做一个测试例子:

1.测试环境:
SCOTT@test> @ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.3.0     Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

SCOTT@test> alter tablespace users begin backup ;
Tablespace altered.

2.开始测试:
SCOTT@test> set autot traceonly
SCOTT@test> update dept set loc=upper(loc) ;

4 rows updated.


Execution Plan
----------------------------------------------------------
Plan hash value: 921533340

---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | UPDATE STATEMENT   |      |     4 |    32 |     3   (0)| 00:00:01 |
|   1 |  UPDATE            | DEPT |       |       |            |          |
|   2 |   TABLE ACCESS FULL| DEPT |     4 |    32 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------


Statistics
----------------------------------------------------------
          0  recursive calls
          5  db block gets
          8  consistent gets
          0  physical reads
       9664  redo size
        834  bytes sent via SQL*Net to client
        784  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          4  rows processed

SCOTT@test> commit ;
Commit complete.

--可以发现产生的redo size=9664.


3.如果我后续依旧做这样的操作:
SCOTT@test> update dept set loc=lower(loc) ;
4 rows updated.

Execution Plan
----------------------------------------------------------
Plan hash value: 921533340
---------------------------------------------------------------------------
| Id  | Operation          | Name | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------
|   0 | UPDATE STATEMENT   |      |     4 |    32 |     3   (0)| 00:00:01 |
|   1 |  UPDATE            | DEPT |       |       |            |          |
|   2 |   TABLE ACCESS FULL| DEPT |     4 |    32 |     3   (0)| 00:00:01 |
---------------------------------------------------------------------------
Statistics
----------------------------------------------------------
          0  recursive calls
          5  db block gets
          8  consistent gets
          0  physical reads
       1436  redo size
        837  bytes sent via SQL*Net to client
        784  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          4  rows processed

SCOTT@test> commit ;
Commit complete.

--可以发现产生的redo size=1436.

--再次证明,仅仅第1次产生的redo包含整个数据块,后续的修改就不需要这样了。

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

请登录后发表评论 登录
全部评论
熟悉oracle相关技术,擅长sql优化,rman备份与恢复,熟悉linux shell编程。

注册时间:2008-01-03

  • 博文量
    4006
  • 访问量
    7971601