ارتقا نسخه pdb به اوراکل 21c با کمک قابلیت Replay Upgrade

زمانی که یک pdb را با استفاده از روش plug/unplug از نسخه پایین تر به دیتابیسی با نسخه بالاتر منتقل می کنیم، امکان open کردن این pdb به صورت نرمال وجود ندارد مگر آنکه نسخه pdb را ارتقا دهیم(تا قبل از اوراکل 21c!).

برای مثال، در قسمت زیر، pdb18 را از نسخه 18c به نسخه 19c انتقال دادیم و قصد داریم بدون ارتقا این pdb را open کنیم:

SQL*Plus: Release 19.0.0.0.0 – Production on Sat Sep 25 07:26:59 2021

Version 19.3.0.0.0

SQL> create pluggable database PDB18 using ‘/home/oracle/PDB18C.xml’ nocopy;

Pluggable database created.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

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

         2 PDB$SEED                       READ ONLY  NO

         3 PDB                            READ WRITE NO

         4 PDB18                         MOUNTED

SQL> alter pluggable database PDB18 open;

Warning: PDB altered with errors.

SQL> show pdbs;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

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

         2 PDB$SEED                       READ ONLY  NO

         3 PDB                            READ WRITE NO

         4 PDB18C                         MIGRATE    YES

SQL> alter session set container=PDB18;

Session altered.

SQL> select message from PDB_PLUG_IN_VIOLATIONS where name=’PDB18′;

MESSAGE

——————————————————————————–

PDB’s version does not match CDB’s version: PDB’s version 18.0.0.0.0. CDB’s version 19.0.0.0.0.

همانطور که می بینید، pdb18 به دلیل عدم مطابقت نسخه های PDB و CDB، به صورت نرمال open نشده و در حالت MIGRATE قرار گرفته است. بنابرین برای آنکه pdb18 به صورت نرمال باز شود، باید PDB را به نسخه CDB ارتقا داد.

در اوراکل نسخه 21c تغییری در این زمینه ایجاد شد و قابلیت جدیدی به نام Replay Upgrade ارائه شد که بر اساس این فیچر، در صورت تفاوت نسخه PDB و CDB، اوراکل به صورت خودکار PDB را به نسخه CDB ارتقا می دهد و نیازی به ارتقاء دستی PDB نخواهیم داشت. ارتقا خودکار در زمانی که pdb را برای اولین بار open می کنیم، اتفاق می افتد.

SQL*Plus: Release 21.0.0.0.0 – Production on Sat Sep 25 07:30:29 2021

Version 21.3.0.0.0

SQL> create pluggable database PDB18C using ‘/home/oracle/PDB18C.xml’ nocopy;

Pluggable database created.

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

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

         2 PDB$SEED                       READ ONLY  NO

         3 PDB18C                         MOUNTED

SQL> alter pluggable database PDB18C open;

Elapsed: 00:18:31.09

با اجرای این دستور، اوراکل pdb18c را از نسخه 18cR3 به نسخه 21cR3 ارتقا خواهد داد. اجرای دستور فوق در محیط تستی ما، حدودا 18 دقیقه به طول انجامید. در alert log جزییاتی از انچه که در زمان اجرای این دستور اتفاق افتاده را مشاهده می کنید:

alter pluggable database PDB18C open

2021-09-25T07:31:24.372017-04:00

PDB18C(3):Pluggable database PDB18C opening in read write

2021-09-25T07:31:29.318534-04:00

PDB18C(3):Starting Upgrade on PDB Open

….

2021-09-25T07:49:35.164487-04:00

PDB18C(3):alter pluggable database application APP$CDB$CATALOG end upgrade

PDB18C(3):Completed: alter pluggable database application APP$CDB$CATALOG end upgrade

2021-09-25T07:49:35.264903-04:00

Pluggable database PDB18C opened read write

Completed: alter pluggable database PDB18C open

بعد از اجرای دستور alter pluggable database .. open خواهیم دید که pdb18c به صورت نرمال و در حالت READ WRITE باز شده است:

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

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

         2 PDB$SEED                       READ ONLY  NO

         3 PDB18C                         READ WRITE NO

همچنین وضیعت خطای عدم تطابق نسخه pdb و cdb به ‘RESOLVED’ تغییر کرده است:

SQL> select message from PDB_PLUG_IN_VIOLATIONS where name=’PDB18C’ and STATUS=’RESOLVED’;

MESSAGE

——————————————————————————–

PDB’s version does not match CDB’s version: PDB’s version 18.0.0.0.0. CDB’s version 21.0.0.0.0.

اگر در هنگام اجرای دستور alter pluggable database .. open دیتابیس به هر دلیلی crash کند یا کاربر اجرای ان را متوقف کند، با اجرای مجدد این دستور، عملیات ارتقا مجددا انجام خواهد شد:

SQL>  alter  pluggable database PDB18C open;

^C alter        pluggable database PDB18C open

ORA-01013: user requested cancel of current operation

Elapsed: 00:10:42.57

SQL> alter  pluggable database PDB18C close;

Pluggable database altered.

SQL>  alter  pluggable database PDB18C open;

Elapsed: 00:25:31.09

 

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

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

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