سلام
قصد داریم در مقالاتی انواع و روش های Upgrade به نسخه های مختلف oralce را توضیح بدم .در این مقاله هدف ارتقا دیتابیس از 11.2.0.4 به 12.1.0.2 هست
روش های مختلف ارتقا میتونیم به
- Database Upgrade Assistant (DBUA)
- Manual Upgrade
- Transportable Tablespaces
- Datapump export/import
- Oracle Streams
- Oracle GoldenGate
Oracle Database Version: Oracle Database 11gR2 (11.2.0.4) (64-bit)
Operating System: Oracle Enterprise Linux 6.4 (64-bit)
SQL>SELECT COMP_NAME , VERSION, STATUS FROM DBA_REGISTRY;
قبل از ارتقا بهتره لیست object های invalid رو داشته باشیم و هم اینکه اگه ممکنه این invalid object ها رو compile کنیم و رفع خطا برای invalid شدنشون رو انجام بدیم
مرحله 2:
SQL>SELECT DISTINCT OBJECT_NAME,OBJECT_TYPE,OWNER FROM DBA_OBJECTS WHERE STATUS='INVALID'
خب حالا ما دیتابیس 12.1 رو باید نصبل کنیم برای این کار اول مسیری رو برای نصب باید درست بکنیم
[oralce@testupgrade ~]#mkdir -p /u01/app/oracle/product/12.1.0/dbhome1
و شروu به نصب دیتابیس 12.1 میکنیم
[oralce@testupgrade ~]#./runInstaller
مرحله 3:صرف نظر از Email address و بعد گزینه Next را میزنیم
مرحله 4:
انتخاب Install Software Only و زبان English
مرحله5 :
انتخاب enterprise edition
مرحله 6:
انتخاب مسیر نصب
مرحله7 :
انتخاب دسترسی های گروه کاربری
مرحله 8 :
مرحله 9 :
مرحله 10 :
اجرای script زیر با کاربر root
مرحله 11:
خب حالا یه بکاپ از دیتابیس میگیریم
[oralce@testupgrade ~]#rman target /
run
{
backup database plus archivelog;
backup current controlfile;
backup spfile;
}
مرحله 12:
خب حالا بعد از بکاپ ما listener دیتابیس رو stop میکنیم÷
lsnrctl stop LISTENER
مرحله 13:
خب حالا ما میخواهیم فرایند شروع ارتقا رو انجام بدیم .
اوراکل به شدت توصیه می کنه که قبل از شروع ارتقا با DBUA ابزار پیش از ارتقا را اجرا کنید. اگر چه DBUA ابزار پیش از ارتقا را به عنوان بخشی از چک های لازم مورد استفاده قرار می ده ، ولی تمرین خوبیه که قبل از DBUA با این ابزار ما تجزیه و تحلیل کنیم database رو و کارهایی انجام بدیم که میتونه زمان dwontime ما برای Upgrade رو بسیار کاهش بده.
خب حالا ابزار pre-upgrade رو اجرا میکنیم:
برای اینکار از دو اسکریپت preupgrd.sql , utluppkg.sql که در مسیر oracle12c قرار دارند کمک میگیریم به این صورت
ابتدا به مسیر زیر میریم
[oralce@testupgrade ~]# cd $ORACLE_HOME(12C ORACLE HOME)/rdbms/admin
برای این کار ابتدابا کاربر SYS به دیتابیس 10.2.0.4 متصل میشیم(Connect to 11.2.0.4)(ما این دو اسکریپت رو که در مسیر 12 قرار دارند رو با oracle 11 اجرا میکنیم)
[oralce@testupgrade ~]#sqlplus / as sysdba
SQL>@preupgrd.sql
خب بعد از اجرای اسکریپت بالا به مسیر زیر میریم تا اسکریپت fixup ی که به ما میده رو اجرا میکنیم
[oralce@testupgrade ~]# cd $ORACLE_BASE/cftoollogs/$ORACLE_SID/preupgrade
[oralce@testupgrade ~]# sqlplus / as sysdba
SQL> @preupgrade_fixups.sql
خب اوراکل توی فایل preupgrade.log هم کارهای که میکنه برای fixup کردن رو لاگ میکنه و ما میتونیم بررسی کنیم که چه Object هایی اخطار و یا خطا داشتن که بتونیم رفع خطا بکنیم
مرحله 14 :
متغیر های محیطی رو به 12 تغییر میدیم
{
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export ORACLE_HOME
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_SID=prod
export ORACLE_SID
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:.
export LD_LIBRARY_PATH
LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/lib:/usr/lib:/lib
export LIBPATH
TNS_ADMIN=${ORACLE_HOME}/network/admin
export TNS_ADMIN
PATH=$ORACLE_HOME/bin:$PATH:.
export PATH
}
خب حالا وقت اجرای dbua از 11.2.0.4 به 12c هست
مرحله 15 :
[oralce@testupgrade ~]#dbua
انتخاب Upgrade Oracle Database
مرحله 16 :
در لیست نمایش داده شده ما درتابیس مدنظرمون برای Upgrade رو انتخاب میکنیم
مرحله 17 :
اگر در این قسمت prerequisite checks هر مسله ای نشون بده که نیاز به رفع داره بهتره این کارو انجام بدمیم
مرحله 18 :
در صورت لزوم گزینه های ارتقا را اصلاح کنید، سپس Next کلیک کنید تا به مرحله بعد بریم
مرحله 19 :
تنظیمات EM در صورت لزوم میتونیم تنظیمات رو انحام بدیم
مرحله 20:
اگه نیار به انتقال دیتافایل های پایگاه داده هسنیم از فایل سیستم به ASM با بالعکسیا برای تمظیمات FRA میتونیم از این گزینه ها استفاده کنیم
مرحله 21 :
اگر ما از listener پیش فرض استفاده میکنیم اوارکل میتونه این listener رو Upgrade کنه در غیر این صورت ما میتونیم به صورت دستی یک listener جدید ایجاد کنیم
مرحله 22 :
انتخاب مسیری برای recovery در صورت upgrade failure
مرحله 23:
Post checks for upgrade:
و در اخر
خب در اخر باید اسکریپت postupgrade_fixups.sql را اجرا کنیم که در مسیر زیر هست
[oralce@testupgrade ~]# cd $ORACLE_BASE/cftoollogs/$ORACLE_SID/preupgrade
[oralce@testupgrade ~]# sqlplus / as sysdba
SQL> @postupgrade_fixups.sql
خب حالا اگه به دیتابیس متصل بشیم و query زیر رو یزنیم متوجه میشیم که دبیتاس به صورت read write باز شده
SQL>select open_mode,name,status from v$database,instance
SQL>select COMP_NAME,VERSION,STATUS from dba_registry;
خب امیدوارم تا اینجا مفید بوده باشه البته دوستانی که سوال داشتن میتونن یا در قسمت نظرات سوال بپرسن یا در گروه این کار رو بکنن
در مرحله بعد Manual Upgrade to 12.2 را قرار خواهم داد و سعی میکنم upgrade 12.2 به 18cR3 قرار بدیم
امیدوارم دوستان استفاده بکنند.
و