Artarad_pdb_refreshable_18c

تعویض PDBهای Refreshable در پایگاه‌داده اوراکل ۱۸c

مقدمه
در پایگاه‌داده اوراکل ۱۲٫۲ مفهومی از کلون pdb تجدیدپذیر (refreshable clone pdb) معرفی شد. اما در اوراکل ۱۸c امکان دیگری هم فراهم شده تا شما بتوانید نقش بین pdb منبع و یک pdb تجدیدپذیر را تغییر دهید.

پیشنیاز
این ویژگی درحال حاضر به نسخه سازمانی (Enterprise Edition) روی سیستم های مهندسی شده مثل Exadata محدود شده است، اما در تمام نسخه های موجود در Oracle Database Cloud Services قابل استفاده می‌باشد. در اینجا یک راه حل برای تست آن، با فعال کردن پارامتر “exadata_feature_on_” وجود دارد.

export ORACLE_SID=cdb1

export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES

sqlplus / as sysdba <<EOF

alter system set “_exadata_feature_on”=true scope=spfile;

shutdown immediate;

startup;

exit;

EOF

همانطور که می دانید Pdbهای تجدیدپذیر، یک pdb درحالت open read-only می باشند که مرتباً بروزرسانی شده و معمولاً برای منبع pdbهای دیگر و یا برای گزارش¬گیری استفاده می¬شوند.
از آنجایی که ما می خواهیم نقش ها را تغییر دهیم، نیاز به تکمیل کردن چند مرحله اضافی نسبت به pdbهای تجدیدپذیر معمولی داریم.
-هردو اینستنس (Instances) باید در حالت archivelog باشند، زیرا ما سوییچینگ (switchovers) را در هر دو جهت انجام می دهیم.
-در هر دو طرف نیاز به dblink داریم، که از امتیازات یکسان برخوردار باشند.
در مثال های زیر دو پایگاه‌داده در یک ماشین مجازی اجرا می شوند اما می توان آن ها را در سرورهای فیزیکی و مجازی جداگانه نیز اجرا کرد.

Cdb1: cdb محلی (Local)، که درنهایت کلون تجدیدپذیر را می سازد (pdb5_ro)
Cdb2: cdb ریموت، که برای pdb منبع استفاده شده است (pdb5)

ایجاد pdb تجدیدپذیر
به پایگاه‌داده محلی متصل می‌شویم، یک pdb در پایگاه‌داده محلی توسط کلون کردن از pdb ریموت ایجاد می‌کنیم.

sqlplus / as sysdba

CREATE PLUGGABLE DATABASE pdb5_ro FROM pdb5@clone_link

REFRESH MODE MANUAL;

ALTER PLUGGABLE DATABASE pdb5_ro OPEN READ ONLY;

تغییر نقش
بررسی کنید pdb تجدید پذیر Open و در حالت Read-Only باشد.

export ORACLE_SID=cdb1

export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES

sqlplus / as sysdba

SELECT open_mode

FROM v$pdbs

WHERE name = ‘PDB5_RO’;

OPEN_MODE

———-

READ ONLY

SQL>

به پایگاه‌داده منبع متصل شده و نقش آن را تغییر داده و pdb را Open و در حالت Read-Only قرار می‌دهیم.
ما باید یک حالت بروز شدن (refresh mode) معتبر (جزء None) مشخص کنیم، که در این مثال از حالت دستی (MANUAL) استفاده می کنیم.

export ORACLE_SID=cdb3

export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES

sqlplus / as sysdba

ALTER SESSION SET CONTAINER = pdb5;

ALTER PLUGGABLE DATABASE

REFRESH MODE MANUAL

FROM pdb5_ro@clone_link

SWITCHOVER;

ALTER PLUGGABLE DATABASE OPEN READ ONLY;

ما می توانیم pdb منبع اصلی را به عنوان pdb تجدیدپذیر ببینیم.

SELECT status, refresh_mode

FROM dba_pdbs

WHERE pdb_name = ‘PDB5’;

STATUS REFRES

———- ——

REFRESHING MANUAL

SQL>

همچنین می توانیم این pdb را به طور معمول بروز کنیم.

ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;

ALTER PLUGGABLE DATABASE REFRESH;

ALTER PLUGGABLE DATABASE OPEN READ ONLY;

تغییر نقش (سوییچ به عقب)
ضمناً می توانیم با تغییر نقش، pdbها را به نقش اصلی خود بازگردانیم.
به پایگاه‌داده اصلی جدید متصل شوید، تغییر نقش دهید و pdb را به حالت Read-Only، Open تغییر می‌دهیم.

export ORACLE_SID=cdb1

export ORAENV_ASK=NO

. oraenv

export ORAENV_ASK=YES

sqlplus / as sysdba

ALTER SESSION SET CONTAINER = pdb5_ro;

ALTER PLUGGABLE DATABASE

REFRESH MODE MANUAL

FROM pdb5@clone_link

SWITCHOVER;

ALTER PLUGGABLE DATABASE OPEN READ ONLY;

مجدد pdb را در حالت تجدیدپذیر مشاهده خواهیم کرد.

SELECT status, refresh_mode

FROM dba_pdbs

WHERE pdb_name = ‘PDB5_RO’;

STATUS REFRES

———- ——

REFRESHING MANUAL

SQL>

ملاحظات
به یاد داشته باشید که این Data Guard نیست. بین شروع و تکمیل تغییر نقش (switchover) لگ (lag) وجود دارد، که تراکنش ها دوباره می توانند در پایگاه‌داده اصلی اعمال (Apply) شوند و نمی توان با پایگاه‌داده Read-Only، قبل از تغییر نقش، سینک شود. در نتیجه ممکن است شما تراکنش هایی را از دست دهید که برای این منظور شما باید از دیتاگارد استفاده کنید.

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگوها شرکت کنید؟
در گفتگو ها شرکت کنید.

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

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