اوراکل 23c – امکان ذخیره کردن Flashback Logها خارج از FRA

تا قبل از اوراکل 23c،ء Flashback Logها الزاما باید در FRA ذخیره می شدند و در صورت عدم تنظیم FRA، امکان فعال کردن قابلیت Flashback Database وجود نداشت:

Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
SQL> alter database flashback on;
ORA-38706: Cannot turn on FLASHBACK DATABASE logging.
ORA-38709: Recovery Area is not enabled.

در نسخه 23c دو پارامتر جدید در این زمینه معرفی شدند که می توان از طریق آنها Flashback Logها را در مسیری غیر از FRA ذخیره کرد. این پارامترها، db_flashback_log_dest_size و db_flashback_log_dest هستند. قبل از تنظیم این دو پارامتر، وضعیت پارامترهای مربوط به FRA را بررسی می کنیم:

SQL> show parameter db_recovery_file_dest
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string
db_recovery_file_dest_size           big integer 0

با تنظیم دو پارامتر مذکور، قابلیت Flashback Database را فعال می کنیم:

SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
NO
SQL> alter system set db_flashback_log_dest_size=800m;
System altered.
SQL> alter system set db_flashback_log_dest='/oracle23c/FlashbackLog';
System altered.
SQL> alter database flashback on;
Database altered.
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES

با فعال کردن این قابلیت، Flashback Logها با پسوند flb در مسیر زیر ایجاد خواهند شد:

SQL> select NAME,SPACE_LIMIT/1024/1024 as "SPACE_LIMIT_MB", SPACE_USED/1024/1024 as "SPACE_USED_MB",NUMBER_OF_FILES from V$FLASHBACK_LOG_DEST;
NAME                           SPACE_LIMIT_MB SPACE_USED_MB NUMBER_OF_FILES
------------------------------ -------------- ------------- ---------------
/oracle23c/FlashbackLog                   800           200               1
[oracle@target ~]$ cd /oracle23c/FlashbackLog/FREE/flashback/
[oracle@target flashback]$ ls -l
-rw-r----- 1 oracle oinstall 209723392 Jul 26 11:32 o1_mf_ld1k8lnr_.flb
-rw-r----- 1 oracle oinstall 209723392 Jul 26 11:33 o1_mf_ld1k8p4m_.flb
-rw-r----- 1 oracle oinstall 209723392 Jul 26 11:32 o1_mf_ld1k8xfv_.flb

نکته جالب آنکه بین اندازه Flashback Log و redo logfile ظاهرا ارتباطی وجود دارد برای مثال در تنظیمات فوق، حجم هر flashback Log تقریبا به اندازه redo logfileها برابر با 200 مگابایت می باشد.

برای بررسی بیشتر این موضوع، redo log groupهایی با سایز جدید ایجاد می کنیم:

SQL>  alter database add logfile group 13  size 800m;
Database altered.
SQL> alter database add logfile group 14 size 800m;
Database altered.
SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
Database altered.
SQL> select group#,bytes from v$log;
    GROUP#      BYTES
---------- ----------
        13  838860800
        14  838860800

بعد از ایجاد logfileها با سایز جدید، قابلیت Flashback Database را فعال و غیر فعال می کنیم تا Flashback Log با سایز جدید ایجاد شوند:

SQL> alter database flashback off;
Database altered.
SQL> alter database flashback on;
Database altered.
[root@target flashback]# ls -l
-rw-r----- 1 oracle oinstall 838868992 Jul 26 13:34 o1_mf_ld1lcpjx_.flb

همانطور که می بینید، flbها تقریبا با سایزی نزدیک به سایز logfileها ایجاد شده اند.

با تنظیم پارامترهای مربوط به قابلیت Flashback Database، لاگهای مربوط به restore point هم به این مسیر منتقل خواهند شد:

SQL> alter database flashback off;
Database altered.
SQL> create restore point test guarantee flashback database;
ORA-38784: Cannot create restore point 'TEST'.
ORA-38786: Recovery area is not enabled.
SQL> alter system set db_recovery_file_dest_size=10g;
System altered.
SQL> alter system set db_recovery_file_dest='/oracle23c/fra';
System altered.
SQL> create restore point test guarantee flashback database;
Restore point created.
[oracle@target flashback]$ ls -l
-rw-r----- 1 oracle oinstall 209723392 Jul 26 15:03 o1_mf_ld1x4vfk_.flb

 

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:vahidusefzadeh@gmail.com

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *