پشتیانی 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’

(بیشتر…)

استفاده از قابلیت flashback query برای برگرداندن تغییرات متن پکیج، پروسیجر و فانکشن

همانطور که می دانید، با شروع یک تراکنش، undo segmentای هم به آن اختصاص داده می شود تا اطلاعاتی  که تراکنش در حال کار با ان است را در خود جای دهد به طور مثال، قبل از حذف یک رکورد در یک تراکنش، اطلاعات آن رکورد در undo segment نوشته خواهد شد.

هدف از این مسئله به پشتیبانی اوراکل از قابلیتهایی چون read consistency،  rollback operation و انواع مختلف flashbackها در دیتابیس بر می گردد که البته در مورد هر کدام از این قابلیتها، قبلا مطالبی را ارائه کردیم و در این مطلب صرفا به بررسی نکته ای در مورد flashback query خواهیم پرداخت.

(بیشتر…)

ویژگی Automatic Flashback(or PITR) Standby در اوراکل 19c

از اوراکل 19c با اجرای دستور flashback database و یا انجام عملیات point in time recovery در محیط دیتابیس اصلی(primary)؛ دیتاگارد هم به صورت خودکار flashback خواهد شد و از حالت sync با primary خارج نمی شود(البته در صورت فعال بودن قابلیت flashback). این قابلیت با کمک پارامتر مخفی standby_auto_flashback_ قابل مدیریت است.

در ادامه متن زیر، با اجرای دستور flashback database و همچنین انجام PITR در محیط primary، رفتار دیتاگارد را در دو نسخه 18c و 19c مقایسه می کنیم.

(بیشتر…)

بازیابی جداول از recycle bin و قابلیت Flashback Drop

زمانی که جدولی را با دستور drop حذف می کنیم، جدول مورد نظر، به recycle bin منتقل خواهد شد(البته منظور از انتقال، انتقال فیزیکی نیست و صرفا امری منطقی اتفاق خواهد افتاد) و تا زمانی که tablespaceای که جدول در آن قرار دارد، از فضای خالی فعلی اش استفاده کامل نکند، این جدول هم حذف نخواهد شد و امکان برگشت دارد.

برای برگرداندن جداول موجود در recycle bin ، می توان از قابلیت Flashback Drop استفاده کرد.

(بیشتر…)