บทนำ
Oracle® 19c Database เป็นรุ่นล่าสุดของฐานข้อมูลอัตโนมัติที่แพร่หลายในตลาดและองค์กร ความเสถียรเป็นองค์ประกอบสำคัญของ Oracle Database 19c ซึ่งเป็นส่วนหนึ่งของครอบครัวผลิตภัณฑ์ Oracle Database 12c (Release 12.2) ในชุดบทความ 2 ส่วนนี้ จะครอบคลุมการติดตั้งและอัปเกรดรุ่น 19c
บทนำ
ส่วนนี้ของชุดบทความ 2 ส่วน เน้นการอัปเกรด Oracle Database จาก 11.2.0.4 เป็น 19c ใน Windows® วิธีการด้วยตนเองนี้ไม่ใช้ Database Upgrade Assistant (DBUA)
สำหรับขั้นตอนการติดตั้ง โปรดดูจาก ส่วนที่หนึ่ง ของชุดบทความนี้ ผมได้ติดตั้งไบนารีไว้ที่ Oracle home directory คือ ORACLE_HOME=d:\app\product\19.0.0\dbhome_1
ใช้ขั้นตอนต่อไปนี้เพื่ออัปเกรด Oracle Database เป็น 19c:
หมายเหตุ: ควรมีการสำรองข้อมูลที่ถูกต้องก่อนอัปเกรด เพื่อป้องกันกรณีที่เกิดปัญหาในระหว่างกระบวนการอัปเกรด
ขั้นตอนที่ 1: จัดเตรียมไฟล์ติดตั้ง
จัดเตรียมไฟล์ติดตั้ง Relational Database Management System (RDBMS) รุ่น 19.3 เพื่อให้สามารถดำเนินการอัปเกรดต่อได้
ขั้นตอนที่ 2: ขั้นตอนก่อนอัปเกรด
รันขั้นตอนต่อไปนี้เพื่อดำเนินการก่อนอัปเกรดให้เสร็จสมบูรณ์:
ขั้นตอนที่ 2.0: การเตรียมการ
-
ดาวน์โหลด Oracle Database Pre-Upgrade Utility โดยใช้ Metalink Note 884522.1 เพื่อรันเครื่องมือ pre-upgrade ใช้คำสั่งต่อไปนี้:
set ORACLE_HOME=d:\app\product\11.2.0.4\dbhome_1 set ORACLE_BASE=d:\app set ORACLE_SID=ABC set PATH=%ORACLE_HOME%\bin;%PATH% %ORACLE_HOME%\jdk\bin\java -jar <top_dir>\preupgrade.jar TERMINAL TEXT -u sys -p <sys_password> -
ตรวจสอบผลลัพธ์ใน d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txt ทบทวนไฟล์ log pre-upgrade และแก้ไขข้อผิดพลาดใดๆ
-
สามารถรันสคริปト pre-upgrade fixups สำหรับทุกส่วนที่มี AUTOFIXUP ใน log ตัวอย่างเช่น เพื่อรัน d:\app\cfgtoollogs\ABC\preupgrade\preupgrade_fixups.sql ให้รันคำสั่ง:
cd d: cd d:\app\cfgtoollogs\ABC\preupgrade sqlplus sys/as sysdba @preupgrade_fixups.sql -
ทบทวนผลลัพธ์จาก preupgrade_fixups.sql และดำเนินขั้นตอนด้วยตนเองที่เหลืออยู่
ขั้นตอนที่ 2.1: สำรอง pfile
รันคำสั่งต่อไปนี้เพื่อสำรอง pfile:
SQL> create pfile='d:\app\init_ABC.ora' from spfile;
ขั้นตอนที่ 2.2: ลบออบเจ็กต์ที่ไม่ถูกต้อง
รันสคริปต์ utlrp.sql จาก SQL Plus เพื่อคอมไพล์ออบเจ็กต์ที่ไม่ถูกต้อง ตรวจสอบให้แน่ใจว่าไม่มีออบเจ็กต์ที่ไม่ถูกต้องเหลืออยู่ใน sys/system schema บันทึกออบเจ็กต์ที่ไม่ถูกต้องอื่นๆ ไว้ในตารางแยก เพื่อเปรียบเทียบในขั้นตอนหลังอัปเกรดภายหลัง
SQL>@?/rdbms/admin/utlrp.sql
SQL> create table system.invalids_before_upgrade as select * From dba_invalid_objects;
ขั้นตอนที่ 2.3: ลบ EM repository
ลบ EM repository โดยใช้ขั้นตอนต่อไปนี้:
คัดลอกสคริปต์ emremove.sql จาก 19c home ไปยัง 11g home:
copy d:\app\product\19.0.0\dbhome_1\rdbms\admin\emremove.sql d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
cd d:\app\product\11.2.0.4\dbhome_1\rdbms\admin
sqlplus sys/<password> as sysdba
SET ECHO ON;
SET SERVEROUTPUT ON;
@emremove.sql
ขั้นตอนที่ 2.4: ลบ OLAP catalog
ลบ OLAP catalog โดยใช้ขั้นตอนต่อไปนี้:
cd d:\app\product\11.2.0.4\dbhome_1\olap\admin\
sqlplus sys/<password> as sysdba
@catnoamd.sql
ขั้นตอนที่ 2.5: ลบ APEX
หากไม่ได้ใช้ Application Express (APEX) สามารถลบได้โดยรันคำสั่งต่อไปนี้:
cd d:\app\product\11.2.0.4\dbhome_1\apex
sqlplus sys/<password> as sysdba
@apxremov.sql
drop package htmldb_system;
drop public synonym htmldb_system;
ขั้นตอนที่ 2.6: ล้าง RECYCLEBIN
ล้าง DBA RECYCLEBIN โดยใช้คำสั่งต่อไปนี้:
PURGE DBA_RECYCLEBIN;
ขั้นตอนที่ 2.7: รวบรวมสถิติ Dictionary
รวบรวมสถิติ Dictionary โดยใช้คำสั่งต่อไปนี้:
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
รันเครื่องมือ pre-upgrade อีกครั้งเพื่อยืนยันว่าทุกอย่างพร้อมแล้ว
ขั้นตอนที่ 3.0: ขั้นตอนอัปเกรด
รันขั้นตอนอัปเกรดต่อไปนี้เพื่อดำเนินการอัปเกรด:
ขั้นตอนที่ 3.1: ดำเนินการอัปเกรด
รันขั้นตอนต่อไปนี้เพื่ออัปเกรด:
ปิด Oracle 11g Database
-
หลังจากปิด Oracle Database แล้ว เปิด CMD ด้วยสิทธิ์แอดมิน และลบ Windows services ทั้งหมดของ Oracle 11g โดยรันขั้นตอนต่อไปนี้จาก command prompt:
set ORACLE_HOME=d:\app\product\19.0.0\dbhome_1 set PATH=%ORACLE_HOME%\bin;%PATH% set ORACLE_SID=ABC sc delete OracleJobSchedulerABC sc delete OracleMTSRecoveryService sc delete OracleServiceABC sc delete OracleVssWriterABC -
สร้าง Oracle 19c Windows service โดยรันคำสั่งต่อไปนี้:
d:\app\product\19.0.0\dbhome_1\bin\ORADIM -NEW -SID ABC -SYSPWD ********* -STARTMODE AUTO -PFILE D:\app\product\19.0.0\dbhome_1\database\INITABC.ORA หลังจากสร้าง Oracle 19c windows services แล้ว ให้เริ่มต้น services
ขั้นตอนที่ 3.2: เริ่มต้น Oracle Database
เริ่มต้น Oracle Database จากสภาพแวดล้อม 19C ในโหมดอัปเกรด
หลังจาก Oracle Database เริ่มต้นในโหมดอัปเกรดแล้ว ให้ดำเนินขั้นตอนต่อไปนี้:
รันคำสั่งต่อไปนี้:
cd d:\app\product\19.0.0\dbhome_1\binรันยูทิลิตี้ dbupgrade จาก Windows command prompt
-
หลังจากอัปเกรดเสร็จสิ้น ให้เริ่มต้นฐานข้อมูลและรันคำสั่งต่อไปนี้:
SQL> @?\rdbms\admin\utlrp.sql
ขั้นตอนที่ 4.0: ขั้นตอนหลังอัปเกรด
หากอัปเกรดสำเร็จ ให้รันสคริปต์ post-upgrade fixup:
d:
cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @postupgrade_fixups.sql
ขั้นตอนที่ 4.1: อัปเกรด Time Zone
หลังจากรันสคริปต์ post-upgrade fixup แล้ว ให้รันคำสั่งต่อไปนี้เพื่ออัปเกรด time zone:
sqlplus / as sysdba <<EOF
-- Check current settings.
SELECT * FROM v$timezone_file;
SHUTDOWN IMMEDIATE;
STARTUP UPGRADE;
-- Begin upgrade to the latest version.
SET SERVEROUTPUT ON
DECLARE l_tz_version PLS_INTEGER;
BEGIN
l_tz_version := DBMS_DST.get_latest_timezone_version;
DBMS_OUTPUT.put_line('l_tz_version=' || l_tz_version);
DBMS_DST.begin_upgrade(l_tz_version);
END;
/
SHUTDOWN IMMEDIATE;
STARTUP;
-- Do the upgrade.
SET SERVEROUTPUT ON
DECLARE l_failures PLS_INTEGER;
BEGIN
DBMS_DST.upgrade_database(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.upgrade_database : l_failures=' || l_failures);
DBMS_DST.end_upgrade(l_failures);
DBMS_OUTPUT.put_line('DBMS_DST.end_upgrade : l_failures=' || l_failures);
END;
/
-- Validate time zone.
SELECT * FROM v$timezone_file;
COLUMN property_name FORMAT A30
COLUMN property_value FORMAT A20
SELECT property_name, property_value FROM database_properties WHERE property_name LIKE 'DST_%' ORDER BY property_name;
exit;
SQL> select TZ_VERSION from registry$database;
หาก TZ_VERSION แสดงรุ่นเก่า ให้รันคำสั่งต่อไปนี้:
SQL>update registry$database set TZ_VERSION = (select version FROM v$timezone_file);
SQL>commit;
SQL>select TZ_VERSION from registry$database;
TZ_VERSION
----------
32
ขั้นตอนที่ 4.2: รวบรวมสถิติออบเจ็กต์
รวบรวมสถิติ fixed object โดยรันคำสั่งต่อไปนี้:
sqlplus / as sysdba <<EOF
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
exit;
ขั้นตอนที่ 4.3: รวบรวมสถิติ Dictionary
รวบรวมสถิติ dictionary หลังอัปเกรดโดยรันคำสั่งต่อไปนี้:
EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
ขั้นตอนที่ 4.4: ตรวจสอบปัญหาที่แก้ไขแล้ว
รัน utlusts.sql เพื่อตรวจสอบว่าไม่มีปัญหาเหลืออยู่:
d:\app\product\19.0.0\dbhome_1\rdbms\admin\utlusts.sql TEXT
ขั้นตอนที่ 4.5: เปรียบเทียบออบเจ็กต์ที่ไม่ถูกต้อง
จับคู่ออบเจ็กต์ที่ไม่ถูกต้องทั้งหมดกับรายการที่บันทึกไว้ในขั้นตอนที่ 2.2
ขั้นตอนที่ 4.6: ทำความสะอาด
เพื่อให้การอัปเกรดสมบูรณ์ ให้ดำเนินขั้นตอนต่อไปนี้:
-
คัดลอก listener.ora, tnsnames.ora, และ sqlnet.ora จาก Oracle 11g Oracle home directory ไปยัง Oracle 19c Oracle home directory และเปลี่ยนพารามิเตอร์ oracle_home ให้เหมาะสม
วางไฟล์ทั้งหมดไว้ที่ d:\app\product\19.0.0\dbhome_1\network\admin
หมายเหตุ: รักษา compatible=11.2.0.4 ไว้ เพื่อกรณีที่ต้องดาวน์เกรด Oracle Database กลับเป็น 11g
สรุป
ขั้นตอนที่กล่าวมาข้างต้นจะช่วยให้คุณอัปเกรด Oracle Database ใน Windows รุ่น 11.2.0.4 เป็น 19c ได้อย่างง่ายดาย
เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา
ใช้แท็บ Feedback เพื่อแสดงความคิดเห็นหรือถามคำถาม คุณยังสามารถเริ่มสนทนากับเราได้