تعیین جایگزین ها برای هر کدام از مقصدها این امکان را می دهد تا یک مقصد را به عنوان جایگزین مقصد دیگری انتخاب کرد تا پاسخی باشد در مقابل خطاهای رسانه ممکن است رخ دهند. فرایند ARCn همواره باید بتواند روی مقصد هایی که توسط پارامترهای بالا تعیین شده اند، فایل های آرشیو را با موفقیت اجرا کنند، در غیر این صورت به فرایند LGWR اجازه داده نمی شود مجدد روی فایل online redo log بنویسد.

در واقع سناریو استفاده از یک مقصد جایگزین این است که در صورتی که مقصد اصلی از کار بی افتد و از دسترس خارج شود، پایگاه داده را به گونه ای پیکربندی کرده باشیم تا یک مقصد جایگزین وجود داشته باشد تا فرایند LGWR بتواند روی آن بنویسد. بنابراین در صورتی که در اثر خطای رسانه ذخیره سازی و از دست رفتن آن، فرایند LGWR دیگر نمی تواند روی آن دیسک یا رسانه ذخیره سازی بنویسد و چون مقصد جایگزین را انتخاب کرده ایم، پس فرایند LGWR به سراغ آن می رود.

تنظیم مقصد جایگزین و آشنایی با پارامترهای لازم

تنظیم مقصد جایگزین برای یک مقصد دیگر کار بسیار ساده ای است. در ابتدا باید مطمئن باشید که پایگاه داده در حالت ARCHIVELOG قرار دارد. برای بررسی اینکه آیا پایگاه داده در حالت ARCHIVELOG است دستور archive log list را اجرا کنید و اگر Automatic archival برابر با Enabled باشد، پس پایگاه داده در حالت ARCHIVELOG قرار دارد و در غیر این صورت باید مطابق با گام های مطلب قبلی پایگاه داده را در حالت ARCHIVELOG قرار دهید.

همانطور که در مطلب قبلی توضیح دادیم، برای فعال کردن حالت ARCHIVELOG می توانیم یکی از پارامترهای LOG_ARCHIVE_DEST_n مثلا LOG_ARCHIVE_LOG_1 را تنظیم کنیم. همچنین توضیح دادیم مقصد پیشفرض همان مقصد ناحیه FRA (یا Flash Recovery Area) است.

محل ناحیه FRA توسط پارامتر DB_RECOVERY_FILE_DEST است. همچنین فرض می کنیم که پارامتر LOG_ARCHIVE_DEST_1 را به مقدار پارامتر DB_RECOVERY_FILE_DEST تنظیم کرده ایم پس با دستور زیر می توانیم مقدار پارامتر DB_RECOVERY_FILE_DEST را پیدا کنیم.

به طور مثال مقدار پارامتر LOG_ARCHIVE_DEST_1 برابر با مسیر u01/app/oracle/flash_recovery_area/ باشد، پس می خواهیم مسیر دیگری را به عنوان جایگزین آن تنظیم کنیم. برای این کار اولا باید پارامتر دیگری ، مثلا LOG_ARCHIVE_DEST_2 را به عنوان مقصد جایگزین تنظیم کنیم. دوما باید مسیر دیگری و قاعدتا بر روی دیسک دیگری را انتخاب کنیم.

در محیط های بزرگ از رسانه های ذخیره سازی (storage) های تحت شبکه مانند NAS استفاده می شود. بنابراین بهتر است هر مقصد را روی یک کنترلر مجزا تنظیم کنید.

پس مطابق دستورهای زیر در ابتدا باید یکی دیگر از پارامترهای LOG_ARCHIVE_DEST_n مثلا LOG_ARCHIVE_DEST_2 را با یک مسیر دیگر و متفاوت مقدار دهی کنید. سپس و توسط دستور دوم باید صراحتا اعلان کنید که مقدار پارامتر LOG_ARCHIVE_DEST_2 به عنوان مقصد جایگزین است. برای این کار باید عبارت ALTERNATE را در دستور دوم و میان دو Single Quotation قرار دهید.

در نهایت باید پارامتر LOG_ARCHIVE_DEST_1 که از قبل و به عنوان مقصد اصلی ذخیره سازی فایل های آرشیو تنظیم کرده بودیم را مجدد و توسط دستور زیر تنظیم کنیم و باید مشخص کنیم که مسیر جایگزین آن، مقدار پارامتر LOG_ARCHIVE_DEST_2 خواهد بود.

تلاش مجدد برای آرشیوسازی بر روی مقصد ناموفق

بنابراین عبارت ALTERNATE را در پارامتر LOG_ARCHIVE_DEST_1 نیز تعیین کردیم تا مشخص کنیم کدام پارامتر به عنوان مسیر مقصد خواهد بود. پارامتر دیگری که تعیین کردیم NOREOPEN نام دارد. پارامتر دیگری که وجود دارد، REOPRN است.

خصوصیت REOPEN که درون هر یک از پارامترهای LOG_ARCHIVE_DEST_n قابل استفاده شدن هستند، حداقل زمان به ثانیه را تعیین می کنند پیش از آنکه فرایند ARCn مجدد سعی کند تا به مسیر از دست رفته (failed) قبلی دسترسی پیدا کند.اگر هیچ یک از پارامترهای NOREOPEN یا REOPEN را تعیین نکنیم، پس پیش فرض REOPEN خواهد بود. در صورتی که می خواهید

خصیصه REOPEN زمانی بر حسب ثانیه را مشخص می کند پیش از آنکه پایگاه داده سعی کند تا آرشیو سازی مجدد را بر روی یک مقصد از کار افتاده آغاز کند. در واقع این خصیصه زمانی بر حسب ثانیه را مشخص می کند پیش از آنکه پایگاه داده سعی کند یک مقصد از کار افتاده را به منظور آرشیو سازی مجدد، Reopen کند.

مقدار پیش فرض خصیصه REOPEN برابر ۳۰۰ ثانیه است و در صورتی که مقدار آن برابر صفر باشد، مشابه این است که این خصیصه را غیر فعال کرده باشیم و در این صورت فرایند ARCn سعی در باز کردن مجدد مقصد در پی خطای نشان داده شده، نخواهد کرد.

خصیصه REOPEN را نمی توان به منظور مشخص کردن تعداد تلاش ها و اتصال های مجدد به مقصد (محلی و راه دور) استفاده کرد، بلکه تنها برای مشخص کردن موفقیت یا عدم موفقیت Reopen کردن مقصد از کار افتاده است.