ویژگی Multi Instance Redo Apply

در اوراکل 11g با پیاده سازی دیتاگارد به صورت کلاستر، تنها نودی که دستور alter database manage recover بر روی ان اجرا شده(برای اولین بار!)، مسئولیت اعمال کردن redoها را برعهده خواهد داشت و مابقی نودها می توانند برای گزارش گیری، تهیه بکاپ و یا دریافت redo (یا آرشیو) و… مورد استفاده قرار بگیرند.

در اوراکل 12cR2، بهبودی در این زمینه رخ داد که می توان با کمک آن، همه نودها را در recovery سهیم کرد. این قابلیت که (Multi Instance Redo Apply (MIRA نام دارد، امکان اعمال redoها را با کمک چند instance ممکن می سازد.

برای فعال کردن این قابلیت می توان عبارت [INSTANCES [ ALL | integer را به دستور ALTER DATABASE RECOVER MANAGED STANDBY DATABASE اضافه کرد:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE INSTANCES [ ALL | integer]

برای مثال، با دستور زیر، در یک محیط تستی که تنها دو نود حاضر هستند، هر دو این نودها، وظیفه redo apply را بر عهده خواهند گرفت:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE INSTANCES ALL disconnect;

با مشاهده alert log در نودی که دستور در ان اجرا شده، پیامهای زیر قابل مشاهده می باشد:

Started logmerger process on instance id 2

Started logmerger process on instance id 1

Starting Multi Instance Redo Apply (MIRA) on 2 instances

2018-09-02T15:30:27.514112+04:30

Starting Multi Instance Redo Apply (MIRA)

2018-09-02T15:30:27.562984+04:30

…. (PID:15215): Managed Standby Recovery starting Real Time Apply

2018-09-02T15:30:27.861206+04:30

Started 16 apply slaves on instance id 2

2018-09-02T15:30:28.117260+04:30

Started 16 apply slaves on instance id 1

2018-09-02T15:30:28.643222+04:30

همچنین با اجرای این دستور در instance دوم، تنها بر روی آن نود، پروسس MRP اجرا خواهد شد:

–node 1:

[[email protected] ~]#  ps -eaf|grep mrp

–node 2:

[[email protected]~]#  ps -eaf|grep mrp

oracle   17458     1  0 14:40 ?        00:00:00 ora_mrp0_stb2

که در این صورت، پروسس mrp، نقش هماهنگ کننده را بین پروسسهایی که نام انها با پیشوند parallel recovery slave process)pr) شروع می شود، ایفا خواهد کرد که بر اساس پیامهای alert log، در هر نود 16 پروسس pr اجرا خواهد شد:

Started 16 apply slaves on instance id 2

2018-09-02T15:30:28.117260+04:30

Started 16 apply slaves on instance id 1

[[email protected]~]# ps -eaf|grep pr

oracle   16487     1  0 15:30 ?        00:00:00 ora_pr02_stb2

همچنین با cancel کردن حالت recovery در هر کدام از این نودها، media recovery به صورت کلی لغو خواهد شد:

–node 2:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE INSTANCES ALL disconnect;

Database altered.

–node 1:

SQL> alter database recover managed standby database cancel;

Database altered.

–node 2:

ORA-16037: user requested cancel of managed recovery operation

2018-09-02T14:48:52.719683+04:30

Background Media Recovery process shutdown (stb2)

برای استفاده از قابلیت MIRA، باید همه instanceها در یک وضیعت قرار داشته باشند(open و یا mount)! در غیر این صورت، خطای زیر رخ خواهد داد:

Starting Multi Instance Redo Apply (MIRA)

2018-09-02T14:39:31.422046+04:30

…. (PID:15215): Managed Standby Recovery starting Real Time Apply

2018-09-02T14:39:31.426539+04:30

Multi Instance Redo Apply terminaed with error 10459

2018-09-02T14:39:31.432166+04:30

Errors in file /oracle/diag/rdbms/stb/stb2/trace/stb2_pr00_16780.trc:

ORA-10459: cannot start media recovery on standby database; conflicting state detected

MIRA: Mark controlfile recovery error occurred

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

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