اوراکل 21c – قابلیت PDB Recovery Isolation

در اوراکل نسخه 19c، دیتاگارد نمی تواند عملیاتی نظیر hot cloning و point-in-time recovery را در سطح PDB مدیریت کند و در صورت انجام این قبیل عملیات در primary، دیتاگارد بدون آنکه از حالت recover خارج شود، از آن PDB صرف نظر کرده و با نادیده گرفتن PDB، به کارش ادامه خواهد داد.

–Data Guard 19c

SQL> select OPEN_MODE from v$database;

OPEN_MODE

——————–

READ ONLY WITH APPLY

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         2 PDB$SEED                       READ ONLY  NO

         3 PDB1                           READ ONLY  NO

–Primary 19c

SQL> create pluggable database pdb2  from pdb1;

Pluggable database created.

SQL> alter pluggable database pdb2 open;

Pluggable database altered.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         2 PDB$SEED                       READ ONLY  NO

         3 PDB1                           READ WRITE NO

         5 PDB2                           READ WRITE NO

–Data Guard 19c

SQL> select OPEN_MODE from v$database;

OPEN_MODE

——————–

READ ONLY WITH APPLY

SQL> alter pluggable database pdb2 open;

ORA-01111: name for data file 13 is unknown – rename to correct file

SQL> select name,status from v$datafile;

NAME                                STATUS

———————————– ——-

/oracle19c/home/dbs/UNNAMED00013    SYSOFF

/oracle19c/home/dbs/UNNAMED00014    RECOVER

/oracle19c/home/dbs/UNNAMED00015    RECOVER

/oracle19c/home/dbs/UNNAMED00016    RECOVER

(بیشتر…)

اوراکل 21c – اضافه شدن resource برای pdb در Grid Infrastracture

اوراکل 21c در محیط Grid Infrastructure، نوع جدیدی از Resource را تحت عنوان ora.pdb.type اضافه کرده است که از طریق آن می توان pdbها را مدیریت کرد. این نوع از Resourceها، به فرمت زیر نام گذاری می شوند:

ora.<DB Unique Name>.<PDB Name>.pdb

همانند دیگر Resourceهای موجود در محیط کلاستر و GI، می توان Resourceهای مربوط به PDB را از طریق ابزار srvctl کنترل و مدیریت کرد. مثلا می توان از طریق این ابزار، PDB را stop و یا start کرد:

[grid@RAC3 ~]$ srvctl start pdb -db db21c -pdb pdb1

[grid@RAC3 ~]$ srvctl status pdb -db db21c -pdb pdb1

Pluggable database PDB1 is enabled.

Pluggable database PDB1 of database db21c is running on nodes: rac2,rac3

[grid@RAC3 ~]$ srvctl stop pdb -db db21c -pdb pdb1

[grid@RAC3 ~]$ srvctl status pdb -db db21c -pdb pdb1

Pluggable database PDB1 is enabled.

Pluggable database PDB1 of database db21c is not running.

 [oracle@RAC2 ~]$ srvctl stop pdb -db db21c -pdb pdb1 -n rac3 -stopoption IMMEDIATE

(بیشتر…)

خصیصه CONTAINER_DATA در محیط CDB

به صورت پیش فرض common userها در محیط root container مجاز به مشاهده اطلاعات pdb containerها نیستند و حتی با داشتن مجوز select بر روی ویوهای _V$،  GV$، CDB، نمی توانند اطلاعات containerهای دیگر را ببینید(البته common userهای ORACLE_MAINTAINED=N منظور است):

SQL> create user c##usef identified by a;

User created.

SQL> grant create session to c##usef;

Grant succeeded.

SQL> grant select on v_$session to c##usef;

Grant succeeded.

SQL> conn c##usef/a

Connected.

SQL> show con_name

CON_NAME

——————————

CDB$ROOT

SQL> select distinct con_id from v$session;

    CON_ID

———-

         1

         0

(بیشتر…)

اتصال به PDB با مجوز sysdba بدون تعیین پسورد(اوراکل 19.7)

همانطور که می دانید، با اجرای دستور  “sqlplus “/as sysdba در محیط container database، به صورت پیش فرض به root container متصل خواهیم شد:

 [oracle@OL7 ~]$ sqlplus “/as sysdba”

SQL*Plus: Release 18.0.0.0.0 – Production on Sun Sep 13 15:52:16 2020

Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 – Production

Version 18.5.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

———- —————————— ———- ———-

         2 PDB$SEED                       READ ONLY  NO

         3 PDB1                         READ WRITE NO

         4 PDB2                         READ WRITE NO

SQL> show con_id

CON_ID

——————————

1

(بیشتر…)

اجرای PDB relocation و PDB cloning به صورت از راه دور با کمک DBCA

قبلا در مقاله های جداگانه، مطالبی را در مورد قابلیتهای PDB relocation و PDB cloning ارائه کردیم در اوراکل 19c، انجام این عملیات از طریق دستور DBCA آن هم به صورت silent قابل انجام است که در این مقاله، به این قابلیت جدید خواهیم پرداخت.

(بیشتر…)

نکاتی در مورد PDB$SEED

می دانیم که در محیط Multitenant، برای ایجاد یک pdb جدید می توان از pdb فقط خواندنی و از پیش ساخته شده اوراکل که PDB$SEED نام دارد استفاده کرد. بعبارتی با اجرای دستور زیر، mypdb از روی PDB$SEED ایجاد خواهد شد:

(بیشتر…)

CONTAINERS Clause در محیط Multitenant

همانطور که می دانید، در محیط Multitenant ، هpdbها از هم مجزا هستند و به اطلاعات همدیگر دسترسی ندارند با این حال، برای برقراری ارتباط بین pdbها، می توان از dblink استفاده کرد.

روشن است که در محیط Root container هم می توان با کمک dblink از جداول مختلف حاضر در pdbها، گزارش تهیه کرد.

از اوراکل 12.1.0.2، گزارش گیری در محیط Root container، به شیوه دیگری هم قابل انجام است! استفاده از عبارت CONTAINERS(در دستور select) قابلیت تهیه گزارش را بدون استفاده از db-link و بدون اتصال به pdbهای مختلف، فراهم خواهد کرد و با کمک این عبارت می توان محتویات جدول در pdbهای مختلف را به صورت ادغام شده مشاهده کرد.

(بیشتر…)

ویژگی PDB RELOCATE

یکی از قابلیتهای جدید نسخه 12cR2، جابجایی(relocate) انلاین pdb از یک cdb به cdb دیگر می باشد. این کار مشابه ویژگی pdb hot clone می باشد که قبلا در مورد ان مطلبی ارائه شد(ایجاد انلاین pdb به صورت از راه دور)، با این تفاوت که در ویژگی pdb relocate، بعد از انجام عملیات کپی، pdb از بانک مبدا حذف خواهد شد و امکان باز بودن این pdb در هر دو cdb، ان هم در یک زمان وجود نخواهد داشت.

(بیشتر…)

چالشهای دیتاگارد در محیط Multitenant

پرسش: در محیط Multitenant، با ایجاد یک pdb جدید، چه اتفاقی برای دیتاگارد رخ خواهد داد؟ آیا دیتاگارد از حالت ریکاور خارج خواهد شد؟ چگونه میتوان در زمان انجام عملیات pdb cloning  و یا remote hot clone ، دیتاگارد را در حالت همسان با بانک اصلی نگه داشت؟ و …

در این متن قصد داریم تا به این دسته از سوالات پاسخ دهیم و شیوه های مختلف ایجاد یک pdb و همچنین نحوه اثر گذاری ان را بر روی دیتاگارد، مورد بررسی قرار دهیم.

(بیشتر…)

duplicate یک pdb در cdb دیگر – اوراکل 18c

در اوراکل 12c، اجرای دستور duplicate در سطح یک pdb امکان پذیر است منتها با این محدودیت که برای انجام duplicate، لازم است تا cdb جدیدی هم ایجاد شود در غیر این صورت، اجرای دستور با خطا مواجه خواهد شد:

(بیشتر…)