oracle實驗記錄 (恢復-rman增量備份)

fufuh2o發表於2009-09-17

INCREMENTAL BACKUP
分2種第一種是差異增量備份和累積增量備份


? 差異備份:這是增量備份的預設型別,它備份自最近n 級或更低階別備份以來更改
過的所有塊
? 累積備份:備份自最近n-1 級或更低階別備份以來更改過的所有塊

0級是基礎,如果執行1-4級別時候沒0級備份,那麼oracle自動0級備份

簡單的說:
incremental:備份當天,及小於當前level之間變化的block

例:
週日 0 ,週一2,週二2 ,週三一,週四0
分析 週日0級備份:相當與FULL備份
     週一2級備份:備份週日到週一變化的BLOCK
     週二2級備份:備份周1到周2變化的BLOCK
     週三1級備份:備份周1到週三變化的block
     週四0級備份:備份週日到週四的所有內容(FULL BACKUP)

級別0最大,4最小 可以看出 周1級別小於週日級別 所以只備份當天的變化,週二級別等於週一級別所以也只備份 當天的變化,週三級別大於周2級別大於周1級別小於週日級別 所以

備份周1-周3的變化
週四0級 FULLBACKUP
    


culumative備份:備份當天及小於等於當前級別之間的變化block

例:
週日 0 ,週一2,週二2 ,週三一,週四0
分析 週日0級備份:相當與FULL備份
     週一2級備份:備份週日到週一變化的BLOCK
     週二2級備份:備份周1到周2變化的BLOCK
     週三1級備份:備份周1到週三變化的block
     週四0級備份:備份週日到週四的所有內容(FULL BACKUP)

級別0最大,4最小 可以看出 周1級別小於週日級別 所以只備份當天的變化,週二級別等於週一級別所以備份周1到周2的變化的block(注意等於也備份),週三級別大於周2級別大

於周1級別小於週日級別 所以備份周1-周3的變化
週四0級 FULLBACKUP

 

SQL> create table t1(a char(2000),b char(2000),c char(2000)) tablespace test;

表已建立。

RMAN> backup incremental level 0 datafile 6; backup culumative(累積備份) level
RMAN> backup incremental level 2 datafile 6;~~~~~~~insert 產生要備份的塊
RMAN> backup incremental level 2 datafile 6;~~~~~~~insert 產生要備份的塊
RMAN> backup incremental level 1 datafile 6;~~~~~~~insert 產生要備份的塊
RMAN> list backup of datafile 6;


SQL> create table t1(a char(2000),b char(2000),c char(2000)) tablespace test;

表已建立。

SQL> insert into t1 values('a','a','a');
每次INSERT 都會產生一個新BLOCK 8192=8K

備份集列表
===================

RMAN> list backup of datafile 6;


備份集列表
===================

BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
25      Incr 0  216.00K    DISK        00:00:00     18-9月 -09
        BP 關鍵字: 25   狀態: AVAILABLE  已壓縮: NO  標記: TAG20090918T145032
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND0_TAG20090918T145032_5C6CFS5C_.BKP
  備份集 25 中的資料檔案列表
  檔案 LV 型別 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  6    0  Incr 1799000    18-9月 -09 D:\TEST.DBF

BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
26      Incr 2  48.00K     DISK        00:00:01     18-9月 -09~~~2級時候~~~~~變化塊為8K(另外40是固定的不知道包含什麼)只備份當前
        BP 關鍵字: 26   狀態: AVAILABLE  已壓縮: NO  標記: TAG20090918T145101
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND2_TAG20090918T145101_5C6CGOGN_.BKP
  備份集 26 中的資料檔案列表
  檔案 LV 型別 Ckp SCN    Ckp 時間   名稱~~~~~~~~~~~~~~~~CKP SCN(CHECKPOINT SCN)
  ---- -- ---- ---------- ---------- ----
  6    2  Incr 1799025    18-9月 -09 D:\TEST.DBF

BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
27      Incr 2  48.00K     DISK        00:00:01     18-9月 -09~~~~~2級時候~~~~~~~變化塊為8K(另外40是固定的不知道包含什麼)只備份當前
        BP 關鍵字: 27   狀態: AVAILABLE  已壓縮: NO  標記: TAG20090918T145132
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND2_TAG20090918T145132_5C6CHNQG_.BKP
  備份集 27 中的資料檔案列表
  檔案 LV 型別 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  6    2  Incr 1799050    18-9月 -09 D:\TEST.DBF

BS 關鍵字  型別 LV 大小       裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
28      Incr 1  72.00K     DISK        00:00:01     18-9月 -09~~~~1級別時~~~變化塊為8K~加上2次2級別時候變化塊16 一共32+固定40=72K~~
        BP 關鍵字: 28   狀態: AVAILABLE  已壓縮: NO  標記: TAG20090918T145336
段名:E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_09_18\O1_MF_N
NND1_TAG20090918T145336_5C6CMJTC_.BKP
  備份集 28 中的資料檔案列表
  檔案 LV 型別 Ckp SCN    Ckp 時間   名稱
  ---- -- ---- ---------- ---------- ----
  6    1  Incr 1799107    18-9月 -09 D:\TEST.DBF

 

 

 


開啟塊跟蹤
增強incremental backup效能(10G才有 塊跟蹤)10G前 RMAN要掃描所有datafile中所有塊利用checkpoint SCN確定父備份中那些塊修改過

2段doc中描述
Oracle Database 10g includes a change tracking feature for incremental backups, which improves incremental backup performance by recording changed blocks in

each datafile in a change tracking file. If change tracking is enabled, then RMAN uses the change tracking file to identify changed blocks for incremental

backup. This avoids the need to scan every block in the datafile, reducing the number of disk reads during backup

 

RMAN's change tracking feature for incremental backups improves incremental backup performance by recording changed blocks in each datafile in a change

tracking file. If change tracking is enabled, RMAN uses the change tracking file to identify changed blocks for incremental backup, thus avoiding the need to

scan every block in the datafile.

After enabling change tracking, the first level 0 incremental backup still has to scan the entire datafile, as the change tracking file does not yet reflect

the status of the blocks. Subsequent incremental backup that use this level 0 as parent will take advantage of the change tracking file.

Using change tracking in no way changes the commands used to perform. incremental backups, and the change tracking files themselves generally require little

maintenance after initial configuration.

Change tracking is disabled by default, because it does introduce some minimal performance overhead on your database during normal operations. However, the

benefits of avoiding full datafile scans during backup are considerable, especially if only a small percentage of data blocks are changed between backups. If

your backup strategy involves incremental backups, then you should enable change tracking.

One change tracking file is created for the whole database. By default, the change tracking file is created as an Oracle managed file in DB_CREATE_FILE_DEST.

You can also specify the name of the block change tracking file, placing it in any location you choose.


開塊跟蹤後(預設是關閉的),用一個檔案(LOG)來跟蹤自上次備份起更改過的塊,rman讀取這個LOG 來確定 要備份的塊 提高了incremental checkpoint效能,避免掃描所有塊,level

0還是會掃描所有block的,如果跟蹤檔案丟失則還會scan the entire datafile,所以開啟塊跟蹤10G才是真正意義上的 INCREMENTAL BACKUP(不用再掃描所有DATAFILE )


15:00:35 SQL> desc v$block_change_tracking;
 名稱                                      是否為空? 型別
 ----------------------------------------- -------- ------------------------
 STATUS                                             VARCHAR2(10)
 FILENAME                                           VARCHAR2(513)
 BYTES                                              NUMBER

SQL> col filename format a30
SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
DISABLED

 


SQL> alter database enable block change tracking  using file 'rman_test.trk';~只指定了名字 未指定位置

資料庫已更改。

SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
ENABLED    E:\ORACLE\PRODUCT\10.2.0\DB_1\   11599872~~~~~~~~~~DEFAULT 存在這個位置
           DATABASE\RMAN_TEST.TRK

如果使用OMF 管理oracle檔案 會建立在
db_create_file_dest位置


SQL> alter database disable block change tracking (關閉)
  2  ;

資料庫已更改。


SQL> alter database enable block change tracking  using file 'd:\backup\rman_test.t
rk';
指定名字和位置
資料庫已更改。

SQL> select * from v$block_change_tracking;

STATUS     FILENAME                            BYTES
---------- ------------------------------ ----------
ENABLED    D:\BACKUP\RMAN_TEST.TRK          11599872

 

 


可以移動 trace file
To relocate the change tracking file:

If necessary, determine the current name of the change tracking file:

SELECT filename
FROM V$BLOCK_CHANGE_TRACKING;

Shut down the database. For example:

SHUTDOWN IMMEDIATE

Using host operating system commands, move the change tracking file to its new location.

Mount the database and move the change tracking file to a location that has more space. For example:

ALTER DATABASE RENAME FILE     'ora_home/dbs/change_trk.f' TO '/new_disk/change_trk.f';

Open the database:

ALTER DATABASE OPEN;

SQL> shutdown immediate;
資料庫已經關閉。
Fri Sep 18 16:12:13 2009
Block change tracking service stopping.(ALERT.LOG中 )

SQL> host move d:\backup\rman_test.trk e:\rman_test.trk


SQL> startup  mount
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE 例程已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             205523844 bytes
Database Buffers          398458880 bytes
Redo Buffers                7135232 bytes
資料庫裝載完畢。
SQL> alter database rename file 'd:\backup\rman_test.trk' to 'e:\rman_test.trk';

資料庫已更改。
SQL> alter database open;

資料庫已更改。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-614912/,如需轉載,請註明出處,否則將追究法律責任。

相關文章