دیتابیس اوراکل

دیتابیس اوراکل
طبقه بندی موضوعی

۱ مطلب در خرداد ۱۴۰۱ ثبت شده است

PDB Replication in Data Guard

برای کنترل کردن اینکه یک pdb در دیتابیس استندبای سینک شود یا نه، 2 روش وجود دارد:

1- استفاده از عبارت STANDBYS در دستور CREATE PLUGGABLE DATABASE که از ورژن 12.1.0.2 اضافه شده است.

CREATE PLUGGABLE DATABASE PDBTEST

ADMIN USER pdbadmin IDENTIFIED BY Password1

STANDBYS=NONE ;

 

مقادیری که میتوان برای STANDBYS ست کرد به صورت زیر است:

  • STANDBYS=NONE: این pdb با هیچ کدام از استندبای ها سینک نشود.
  • STANDBYS=ALL: این pdb با همه استندبای های سینک شود.
  • STANDBYS=ALL EXCEPT ('cdb1_stby_1','cdb1_stby_2'): این pdb با همه استندبای ها سینک شود بجز استندبای هایی که DB_UNIQUE_NAME آنها cdb1_stby_1 و cdb1_stby_2 است.
  • STANDBYS=('cdb1_stby_1'): این pdb فقط با استندبای cdb1_stby_1 سینک شود.

 

2- استفاده از پارامتر ENABLED_PDBS_ON_STANDBY که از ورژن 12.2 اضافه شده است.

اگر میخواهید یک pdb توسط استندبای سینک نشود، باید قبل از ایجاد pdb ، این پارامتر را به صورت زیر در دیتابیس اصلی یا استندبای ست کنید، ولی این را مد نظر داشته باشید که این پارامتر فقط توسط استندبای استفاده میشود:

ALTER SYSTEM SET enabled_pdbs_on_standby="*", "-PDBTEST";

 

مقادیری که میتوان به پارامتر enabled_pdbs_on_standby پاس داد به صورت زیر است:

  • "*": همه pdbها با استندبای سینک شوند.
  • ""PDB1", "PDB2: فقط PDB1 و PDB2 با استندبای سینک شوند.
  • ""PDB*: فقط pdbهایی که با کلمه "PDB" شروع میشوند با استندبای سینک شوند.
  • ""*", "-PDB*: همه pdbها بجز pdbهایی که با کلمه "PDB" شروع میشوند با استندبای سینک شوند.
  • ""*", "-PDB1: همه pdbها بجز PDB1 با استندبای سینک شوند.

 

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

CREATE PLUGGABLE DATABASE PDBTEST

ADMIN USER pdbadmin IDENTIFIED BY Password1;

 

در دیتابیس primary:

SQL> SELECT name, open_mode, recovery_status

FROM v$pdbs

WHERE name='PDBTEST';

 

NAME           OPEN_MODE   RECOVERY_STATUS

---------------- ----------------- --------------------------

PDBTEST       READ WRITE   ENABLED

 

در دیتابیس standby:

SQL> SELECT name, open_mode, recovery_status

FROM v$pdbs

WHERE name='PDBTEST';

 

NAME           OPEN_MODE   RECOVERY_STATUS

---------------- ----------------- --------------------------

PDBTEST       READ WRITE   DISABLED

 

 

Document:

https://oracle-base.com/articles/12c/multitenant-controlling-pdb-replication-in-data-guard-environments-12c