[20150309]熱備份與redo.txt
-- 最近一段時間看關于備份的書籍,提到熱備份期間,如果對某塊做dml操作,redo 日志裡面是包含整個資料庫,防止出現塊分裂。
--實際上僅僅第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) ;
1436 redo size
837 bytes sent via SQL*Net to client
--可以發現産生的redo size=1436.
--再次證明,僅僅第1次産生的redo包含整個資料塊,後續的修改就不需要這樣了。