合 在Oracle中,什么是块改变跟踪?
Tags: OracleBlock Change Tracking块改变跟踪
执行增量备份是为了只备份自上一次备份以来更改过的数据块。使用RMAN可创建数据文件、表空间或整体数据库的增量备份。在执行增量备份时,RMAN将扫描数据文件的每个块以确定自上次备份以来哪些块发生过更改。这会减小备份大小,因为只备份更改过的块。此外,由于减少了需要还原的块数,因此还会加快恢复速度。
块改变跟踪(Block Change Tracking)是在使用RMAN执行增量备份的情况下,若启用块改变跟踪,则会把自上次备份以来所有块的改变记录到文件中,这个文件称为跟踪文件,通过后台进程CTWR(Change Tracking Writer Process)对其进行实时地写入。这样在做增量备份时就可以避免扫描所有数据文件中的所有块,而改为参考跟踪文件,直接访问需要备份的块,会大大缩短RMAN备份的时间,从而提高RMAN备份的性能。当然0级备份时还是需要扫描所有的数据文件,毕竟需要创建一个基准,以此来判断哪些块发生了改变。因此,通过启用块更改跟踪,可执行快速增量备份。
跟踪文件的维护是完全自动进行的,不需要用户的干预。块改变跟踪默认是禁用的,如果配置了增量备份,那么建议开启块改变跟踪。数据库在OPEN或者MOUNT状态都可以启用块改变跟踪。可以使用如下命令开启块改变跟踪:
1 | ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/mydir/rman_change_track.f' REUSE; |
如果是RAC环境,那么跟踪文件必须放在共享设备上。如果设置DB_CREATE_FILE_DEST参数值,那么可以直接启用:
1 2 | ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+FRA' SCOPE=BOTH SID='*'; ALTER DATABASE ENABLE BLOCK CHANGE TRACKING; |
若想禁用块改变跟踪,则可以使用如下命令: