ارتقا non-CDB به اوراکل 21c از طریق ابزار AutoUpgrade

همانطور که می دانید، اوراکل در نسخه 21c، معماری non-CDB را ساپورت نمی کند بنابرین برای ارتقا نسخه non-CDB به 21c، باید قبل از ارتقا، دیتابیس non-CDB را به یک PDB تبدیل کنیم. قبلا نحوه انتقال و ارتقا دیتابیسی با معماری non-CDB به نسخه 21c را با استفاده از قابلیت Replay Upgrade توضیح دادیم در این متن از ابزار Autoupgrade برای این کار استفاده خواهیم کرد.

تفاوت عمده Autoupgrade و Replay Upgrade، به تبدیل non-cdb به pdb برمیگردد چرا که در زمان استفاده از Replay Upgrade، عملیات plug/unplug باید توسط DBA انجام شود اما در زمان استفاده از ابزار Autoupgradeء، DBA صرفا باید یک فایل پیکربندی را ایجاد کند و مابقی عملیات توسط این ابزار انجام می شود.

در ادامه  متن، مراحل ارتقا non-cdb از نسخه 19c به نسخه 21c را توضیح خواهیم داد.

مرحله اول: فایل پیکربندی autoupgrade را متناسب با محیطی که در آن هستیم، ایجاد می کنیم. قرار است صرفا دیتابیس noncdb19 را ارتقا دهیم بنابرین مشخصات این دیتابیس را در قسمت زیر و در فایل کانفیگ AutoConfig.sh ثبت می کنیم:

[oracle@oLinux7 ~]$ cat AutoConfig.sh

UP_TO_21c.autoupg_log_dir=/home/oracle/AutoUP_TO_21c

UP_TO_21c.sid=noncdb19

UP_TO_21c.source_home=/oracle19c/home

UP_TO_21c.log_dir=/home/oracle/AutoUP_TO_21c

UP_TO_21c.target_home=/oracle21c/home

UP_TO_21c.target_base=/oracle21c/base

UP_TO_21c.target_version=21.0.0

UP_TO_21c.target_cdb=db21c

ایجاد دایرکتوری تعیین شده برای پارامتر log_dir:

[oracle@oLinux7 ~]$ mkdir -p /home/oracle/AutoUP_TO_21c

مرحله 2: پس از تنظیم متغیر محیطی مربوط به اوراکل 21c، دستور AutoUpgrade را در فاز ANALYZE اجرا می کنیم:

* انجام این مرحله نیازی به downtime ندارد.

[oracle@oLinux7 ~]$ java -jar /oracle21c/home/rdbms/admin/autoupgrade.jar -config /home/oracle/AutoConfig.sh -mode ANALYZE

No parameter ‘global.autoupg_log_dir’ found in config file, using /oracle19c/base/cfgtoollogs/autoupgrade

AutoUpgrade tool launched with default options

Processing config file …

+——————————–+

| Starting AutoUpgrade execution |

+——————————–+

1 databases will be analyzed

Type ‘help’ to list console commands

upg>

با اجرای دستور status در خط فرمان upg>، میزان پیشرفت مرحله ANALYZE را مشاهده می کنید:

upg> status

با پایان یافتن پروسه ANALYZE، پیام زیر در خط فرمان نمایش داده خواهد شد:

upg> Job 100 completed

——————- Final Summary ——————–

Number of databases            [ 1 ]

Jobs finished                  [1]

Jobs failed                    [0]

Jobs pending                   [0]

————- JOBS FINISHED WITH ERROR ————-

Job 100 for noncdb19

Please check the summary report at:

/oracle19c/base/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html

/oracle19c/base/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log

همانطور که می بینید، در بین فایلهای log، یکی از فایلهای ایجاد شده به فرمت html است که قسمت اصلی این فایل را در قسمت زیر می بینید:

این خروجی نشان می دهد که بعضی از پیش نیازها باید به صورت دستی و با مداخله DBA برطرف شوند:

+قرار دادن دیتابیس در مود archive log:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

Version 19.3.0.0.0

SQL> shut immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup mount

ORACLE instance started.

Total System Global Area 1644163728 bytes

Fixed Size                  8897168 bytes

Variable Size             587202560 bytes

Database Buffers         1040187392 bytes

Redo Buffers                7876608 bytes

Database mounted.

SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

+تنظیم FRA:

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE =100g;

System altered.

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST =’ /oracle19c/fra’;

System altered.

بعد از اجرای دستور فوق، مجددا دستور ANALYZE را اجرا می کنیم. گزارش html ایجاد شده نشان می دهد که ANALYZE بدون خطا اجرا شده است:

مرحله سوم: برای انجام گام نهایی، دستور Autoupgrade را در مود deploy اجرا می کنیم:

[oracle@oLinux7 ~]$ java -jar /oracle21c/home/rdbms/admin/autoupgrade.jar -config /home/oracle/AutoConfig.sh -mode deploy

No parameter ‘global.autoupg_log_dir’ found in config file, using /oracle19c/base/cfgtoollogs/autoupgrade

AutoUpgrade tool launched with default options

Processing config file …

+——————————–+

| Starting AutoUpgrade execution |

+——————————–+

1 databases will be processed

Type ‘help’ to list console commands

بعد از انجام فاز Deploy،  پیام زیر در خط فرمان نمایش داده خواهد شد:

upg> Job 102 completed

——————- Final Summary ——————–

Number of databases            [ 1 ]

Jobs finished                  [1]

Jobs failed                    [0]

Jobs pending                   [0]

Please check the summary report at:

/oracle19c/base/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.html

/oracle19c/base/cfgtoollogs/autoupgrade/cfgtoollogs/upgrade/auto/status/status.log

خروجی فایل html تایید می کند که عملیات ارتقا به درستی انجام شده است:

NONCDB19 در دیتابیس 21c به صورت نرمال open شده بنابرین ارتقا به درستی انجام شده است:

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

SQL*Plus: Release 21.0.0.0.0 – Production on Thu Sep 30 07:35:52 2021

Version 21.3.0.0.0

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED

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

         2 PDB$SEED                       READ ONLY  NO

         3 PDB18C                         MOUNTED

         4 NONCDB19                       READ WRITE NO

 

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

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

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