انتقال خودکار Restore Point از primary به standby

تا قبل از نسخه 19c، ایجاد restore point در محیط primary، منجر به ایجاد آن در محیط standby نمی شد. در سناریوی زیر که در اوراکل نسخه 18cR3 اجرا شده است این مسئله را می بینید:

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.3.0.0.0

–Primary

SQL> select * from v$restore_point;

no rows selected

–Standby

SQL> select * from v$restore_point;

no rows selected

–Primary

SQL> create restore point before_upg;

Restore point created.

SQL>  select NAME,SCN from v$restore_point;

NAME                   SCN

———-                 —————

BEFORE_UPG    870272395791

SQL> alter system switch logfile;

System altered.

–Standby

SQL> select NAME,SCN from v$restore_point;

no rows selected

در ادامه خواهیم دید که این قابلیت در نسخه 19c اضافه شده است:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

–Primary

SQL> select * from v$restore_point;

no rows selected

SQL> create restore point before_upg;

Restore point created.

SQL> select NAME,SCN from v$restore_point;

NAME                    SCN

———-               ———-

BEFORE_UPG    4185734

–Standby

SQL> select NAME,SCN from v$restore_point;

NAME                                        SCN

——————–                      ———-

BEFORE_UPG_PRIMARY      4185734

همانطور که می بینید، restore point ایجاد شده در primary به standby هم منتقل شده است البته با این تغییر جزئی که پسوند PRIMARY_ به restore_point اضافه شده است.

به restore point ایجاد شده در استندبای(BEFORE_UPG_PRIMARY)، اصطلاحا replicated restore point هم گفته می شود و حذف BEFORE_UPG در محیط primary منجر به حذف BEFORE_UPG_PRIMARY در محیط standby خواهد شد:

–Primary

SQL> drop  restore point BEFORE_UPG;

Restore point dropped.

–Standby

SQL> select NAME,SCN from v$restore_point;

no rows selected

 

این قابلیت جدید دو محدودیت زیر را به همراه دارد:

محدودیت اول: اگر primary در وضعیت mount قرار داشته باشد، restore point جدید به standby منتقل نمی شود.

–Primary

SQL> startup mount force

SQL> create restore point bavi;

Restore point created.

SQL> col NAME format a10

SQL> select NAME,SCN from v$restore_point;

NAME              SCN

———-            ———-

BAVI              4292998

–Standby

SQL> select NAME,SCN from v$restore_point;

no rows selected

–Primary

SQL> alter database open;

Database altered.

–Standby

SQL> select NAME,SCN from v$restore_point;

no rows selected

محدودیت دوم: اگر restore pointی را در primary ایجاد کنیم که هم نام با ان restore pointی در standby موجود باشد، در این صورت از restore point جدید صرف نظر خواهد شد:

–Standby

SQL> select NAME,SCN from v$restore_point;

NAME                                    SCN

——————–                   ———-

NAMJOOO_PRIMARY         4297629

–Primary

SQL> select NAME,SCN from v$restore_point;

no rows selected

SQL> create restore point NAMJOOO;

Restore point created.

SQL> select NAME,SCN from v$restore_point;

NAME              SCN

———-            ———-

NAMJOOO       4297776

–Standby

SQL> select NAME,SCN from v$restore_point;

NAME                                         SCN

——————–                        ———-

NAMJOOO_PRIMARY         4297629

پس از ایجاد restore point، پیام زیر در alert log مربوط به standby مشاهده خواهد شد:

2020-10-26T09:27:52.871174-04:00

Restore point NAMJOOO_PRIMARY propagated from primary already exists

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

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

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