استفاده از Block Change Tracking
همانطور
که می دانید به هنگام تهیه Incremental backup، کلیه block های یک
دیتافایل خوانده می شود و چنانچه تغییر کرده باشد از آن backup گرفته می
شود. برای بهینه کردن این فرایند، می توان فایلی را در نظر گرفت که آدرس
block هایی که تغییر کرده اند را در خودش نگه می دارد و به هنگام backup
گرفتن فقط به سراغ این block ها می رود، بنابراین سرعت backup گرفتن افزایش
قابل ملاحظه ای خواهد داشت. البته در مواقعی که full backup می گیریم، این
کار کاربردی ندارد و فقط برای مواقعی است که incremental backup می گیریم.
برای بررسی اینکه این مدل backup به درد ما می خورد یا نه می توان از دستور زیر استفاده کرد:
select
d.RECID,d.SET_COUNT,d.FILE#,d.CREATION_TIME,d.INCREMENTAL_LEVEL,d.BLOCKS
as "Backed up Blocks",d.BLOCKS_READ "Blocks That Read for Backup" from
v$backup_datafile d
where trunc(d.COMPLETION_TIME) = trunc (sysdate );
چنانچه
در خروجی دستور بالا، مقدار blocks_read (نشان دهنده تعداد بلاک هایی که
خوانده شده اند) خیلی بیشتر از blocks (تعداد بلاک هایی که از آنها Backup
گرفته شده است) باشد، یعنی راه اندازی block change tracking به عملکرد
سیستم ها کمک بسیاری خواهد کرد.
برای راه اندازی می توانید از دستورات زیر استفاده نمایید:
alter database enable block change tracking using file '/u01/oracle/block_change_tracking_dir/block_change_tracking.bct';
چنانچه
از OMF استفاده می کنید نیازی به ذکر کردن مسیر فایل نیست و خود به خود در
مسیر مشخص شده در پارامتر db_create_file_dest و در پوشه changetracking
ساخته می شود:
alter database enable block change tracking;
برای غیر فعال سازی block change tracking از دستور زیر استفاده می شود:
alter database disable block chnage tracking;
برای مشاهده اطلاعات مربوط به block change tracking می توانید از ویو زیر استفاده نمایید:
select * from V$BLOCK_CHANGE_TRACKING;