پشتیانی Flashback Database از Shrink Datafile در اوراکل 21c

تا قبل از اوراکل 21c، امکان flashback کردن دیتابیس به نقطه ای قبل از عملیات shrink datafile وجود نداشت:

SQL*Plus: Release 19.0.0.0.0 – Production on Wed Sep 15 17:25:54 2021

Version 19.9.0.0.0

SQL> select current_scn,flashback_on from v$database;

CURRENT_SCN FLASHBACK_ON

———– ——————

    2557655 YES

SQL> select bytes from v$datafile where file#=1;

     BYTES

———-

 999153664

SQL> alter database datafile 1 resize 996147200;

Database altered.

SQL> startup mount force;

ORACLE instance started.

Total System Global Area 2.0200E+10 bytes

Fixed Size                 19766544 bytes

Variable Size            2617245696 bytes

Database Buffers         1.7515E+10 bytes

Redo Buffers               47341568 bytes

Database mounted.

SQL>  flashback database to scn 2557655;

ORA-38766: cannot flashback data file 1; file resized smaller

ORA-01110: data file 1:

‘/oracle19cR9/base/oradata/DB19R9/datafile/o1_mf_system_jn3s5rmk_.dbf’

 

در اوراکل نسخه 21c بهبودی در این زمینه ایجاد شده و بعد از انجام عملیات shrink هم می توان دیتابیس را به نقطه قبل برگرداند:

SQL*Plus: Release 21.0.0.0.0 – Production on Wed Sep 15 04:47:02 2021

Version 21.3.0.0.0

SQL> select current_scn,flashback_on from v$database;

CURRENT_SCN FLASHBACK_ON

———– ——————

   27241819 YES

SQL> select bytes from v$datafile where file#=1;

     BYTES

———-

1547042816

SQL> alter database datafile 1 resize 1447034880;

Database altered.

SQL> startup mount force;

ORACLE instance started.

Total System Global Area 2634021776 bytes

Fixed Size                  9690000 bytes

Variable Size            1442840576 bytes

Database Buffers          889192448 bytes

Redo Buffers              292298752 bytes

Database mounted.

SQL> flashback database to scn 27241819;

Flashback complete.

SQL> alter database open resetlogs;

Database altered.

ارتباط با نویسنده مطلب:vahidusefzadeh@ کانال تخصصی اوراکل و لینوکس: OracleDB@

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

نشانی ایمیل شما منتشر نخواهد شد.