FAR SYNC DATA GUARD

یکی از قابلیتهای جدیدی که در اوراکل 12c ارائه شد، FAR SYNC DATA GUARD می باشد که شباهت هایی هم به cascade standby دارد.

با کمک این ویژگی، می توان از ماشین(یا سرور) سومی که نقش واسط را بین سرور primary و data guard ایفا می کند، استفاده کرد بطوری که redoها از سرور primary به این سرور ارسال شده و سپس از آنجا به سمت دیتاگارد هدایت شوند.

استفاده از این قابلیت سبب می شود تا در صورت بالا بودن تعداد data guardها، سربار کمتری بر روی بانک primary ایجاد شود همچنین در صورت وجود مشکلات شبکه ای بین بانک اصلی و دیتاگارد، این ویژگی می تواند مفید واقع شود.


بانک یا instance مربوط به FAR SYNC، شامل کنترل فایل، pfile، پسورد فایل و standby redo log file می باشد و در این بانک، خبری از data file نخواهد بود همچنین آرشیولاگها در این سرور ایجاد خواهند شد و این بانک تنها در حالت mount قرار خواهد گرفت.

در ادامه متن، مراحل پیاده سازی FAR SYNC را شرح داده ایم.

مرحله 1. در اولین مرحله، پارامترهایی که باید بر روی هر سه بانک اعمال شوند، را تنظیم می کنیم:

پارامترهای بانک اصلی:

*.db_unique_name=test

*.log_archive_config=’DG_CONFIG=(test,usef_stb,far)’;

*.log_archive_dest_2=’service=far SYNC AFFIRM alternate=log_archive_dest_3 db_unique_name=far’

*.log_archive_dest_3=’service=usef_stb ASYNC max_failure=1 alternate=log_archive_dest_2 db_unique_name=usef_stb’

*.log_archive_dest_state_3=alternate

پارامترهای بانک FAR SYNC:

*.db_unique_name=far

*.log_archive_config=’DG_CONFIG=(test,usef_stb,far)’;

*.log_archive_dest_2=’service=usef_stb ASYNC db_unique_name=usef_stb’;

*.fal_server=test;

*. control_files=’/u01/far.ctl’

پارامترهای data guard:

*.db_unique_name=usef_stb

*.log_archive_config=’DG_CONFIG=(test,usef_stb,far)’;

*.fal_server=far,test;

مرحله 2. فایل tnsnames.ora را در این مرحله تنظیم می کنیم:

far =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.22.136.4)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (sid = far)))

USEF_STB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.22.136.6)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (sid= usef_stb)))

TEST =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.22.137.82)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (sid = test)))

مرحله 3. کنترل فایلی را در محیط primary ایجاد کرده و آن را به سرور FAR SYNC منتقل می کنیم:

alter database create far sync instance controlfile as ‘/u01/far.ctl’;

بعد از انتقال کنترل فایل به بانک FAR، آن را در حالت mount استارت می کنیم:

SQL> startup mount force;

Total System Global Area 1.2684E+10 bytes

Fixed Size                  3724928 bytes

Variable Size            2013268352 bytes

Database Buffers         1.0637E+10 bytes

Redo Buffers               29827072 bytes

Database mounted.

توجه! در صورتی که این بانک با آپشن open استارت شود، با خطای زیر مواجه خواهیم شد:

ORA-16476: far sync instance does not allow Open operation

مرحله 4: فایلهای standby logfile group را به این بانک اضافه می کنیم:

alter database add standby logfile group 20 size 100m;

alter database add standby logfile group 21 size 100m;

دستور زیر، نقش این بانک را نشان می دهد:

SQL> select database_role  from v$database;

DATABASE_ROLE

—————-

FAR SYNC

توجه! پسورد فایل موجود در بانک اصلی را باید به محیط دیتاگارد و FAR SYNC منتقل کرد و یا پسوردفایلی با همان فرمت را برای این دو بانک ایجاد نمود.

مرحله 5. بعد از راه اندازی بانک FAR SYNC، دیتاگارد را در سرور دیگری راه اندازی می کنیم:

rman target sys/sys@test  auxiliary sys/sys@usef_stb

duplicate target database for standby from active database nofilenamecheck;

به بانک استندبای، standby redo log را اضافه کرده و سپس آن را در وضیعت recover قرار می دهیم:

alter database add standby logfile group 25 size 100m;

alter database add standby logfile group 26 size 100m;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

نقش این بانک، به صورت زیر خواهد بود:

SQL> select database_role  from v$database;

DATABASE_ROLE

—————-

PHYSICAL STANDBY

مرحله 6: مراحل زیر را برای راه اندازی broker انجام می دهیم.

ابتدا پارامتر مربوط به بروکر را در هر سه بانک TRUE می کنیم:

alter system set dg_broker_start=true;

:سپس، پیکربندی زیر را در بانک اصلی انجام می دهیم

dgmgrl /

DGMGRL>  CREATE CONFIGURATION hamsandb AS  PRIMARY DATABASE IS test  CONNECT IDENTIFIER IS test;

Configuration “hamsandb” created with primary database “test”

DGMGRL> ADD DATABASE usef_stb AS CONNECT IDENTIFIER IS usef_stb;

Database “usef_stb” added

DGMGRL>  ADD FAR_SYNC far AS CONNECT IDENTIFIER IS far;

far sync instance “far” added

DGMGRL> enable configuration;

DGMGRL> edit database test set property redoroutes='(local:far sync)’;

Property “redoroutes” updated

DGMGRL> edit far_sync far set property redoroutes='(test:usef_stb)’;

Property “redoroutes” updated

DGMGRL> enable far_sync far;

Enabled.

DGMGRL>  show configuration;

Configuration – hamsandb

  Protection Mode: MaxPerformance

  Members:

  test    – Primary database

    far     – Far sync instance

      usef_stb – Physical standby database

Fast-Start Failover: DISABLED

Configuration Status:

SUCCESS   (status updated 54 seconds ago)

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

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

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