Est-ce qu'un backup incremental utilise le BCTF ?

Passé le coté évident de la question : Si vous avez créé un Block Change Tracking File (BCTF), c’est pour que les backups incrémentaux l’utilisent! Vous pouvez vous demander si c’est bien le cas et quel est le gain associé; le requête ci-dessous donne une indication :

select set_count,
used_change_tracking bct,
sum(datafile_blocks) "Blocks",
sum(blocks_read) "Blocks Reads",
trunc(sum(blocks_read)/sum(datafile_blocks) * 10000)/100 as "% read"
from v$backup_datafile
group by set_count, used_change_tracking
order by set_count;

SET_COUNT BCT Blocks Blocks Reads % read
---------- --- ---------- ------------ ----------
114 YES 209760 4330 2.06
115 NO 596 596 100
116 YES 209760 4330 2.06
117 NO 596 596 100

Toutefois si c’est évident pour les backups « level 1 » à condition d’avoir préalablement exécuté un backup incremental « level 0 », est-ce qu’une syntaxe comme celle ci-dessous bénéficie de l’existence du BCTF ?

rman target /

backup incremental from scn 49040565435 database;

Bien sur, ça dépend… mais si c’est possible… oui:

select set_count,
used_change_tracking bct,
sum(datafile_blocks) "Blocks",
sum(blocks_read) "Blocks Reads",
trunc(sum(blocks_read)/sum(datafile_blocks) * 10000)/100 as "% read"
from v$backup_datafile
group by set_count, used_change_tracking
order by set_count;

SET_COUNT BCT Blocks Blocks Reads % read
---------- --- ---------- ------------ ----------
114 YES 209760 4330 2.06
115 NO 596 596 100
116 YES 209760 4330 2.06
117 NO 596 596 100
118 YES 209760 4334 2.06
119 NO 596 596 100