ฐานข้อมูล Oracle® 19c เป็นรุ่นล่าสุดของฐานข้อมูลระบบอัตโนมัติที่นำมาใช้กันอย่างแพร่หลายในตลาดและองค์กรต่างๆ ความเสถียรเป็นองค์ประกอบสำคัญขององค์ประกอบ Oracle Database 19c ของตระกูลผลิตภัณฑ์ Oracle Database 12c (รุ่น 12.2) ในชุดโพสต์บล็อกสองตอนนี้ ฉันจะพูดถึงการติดตั้งและอัปเกรดเวอร์ชัน 19c
แนะนำตัว
ส่วนนี้ของชุดข้อมูลสองส่วนนี้เน้นที่การอัพเกรด Oracle Database จาก 11.2.0.4 เป็น 19c ใน Windows® วิธีการด้วยตนเองนี้ไม่ได้ใช้ตัวช่วยอัปเกรดฐานข้อมูล (DBUA)
สำหรับขั้นตอนการติดตั้ง โปรดดูที่ส่วนที่หนึ่งของชุดนี้ ฉันติดตั้งไบนารีในโฮมไดเร็กทอรี 19c Oracle ของฉันORACLE_HOME=d:\app\product\19.0.0\dbhome_1 .
ใช้ขั้นตอนต่อไปนี้เพื่ออัปเกรด Oracle Database เป็น 19c:
หมายเหตุ :คุณควรมีข้อมูลสำรองที่ถูกต้องก่อนที่จะอัปเกรดในกรณีที่มีสิ่งผิดปกติเกิดขึ้นระหว่างกระบวนการอัปเกรด
ขั้นตอนที่ 1:ตั้งค่าไฟล์การติดตั้ง
ขั้นที่ 19.3 ไฟล์การติดตั้งระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) เพื่อให้คุณดำเนินการอัปเกรดต่อได้
ขั้นตอนที่ 2:ขั้นตอนการอัปเกรดล่วงหน้า
ทำตามขั้นตอนต่อไปนี้เพื่อสิ้นสุดกระบวนการอัปเกรดล่วงหน้า:
ขั้นตอน 2.0:การจัดเตรียม
-
ดาวน์โหลด Oracle Database Pre-Upgrade Utility โดยใช้metalink note 884522.1 ในการเรียกใช้เครื่องมือก่อนอัปเกรด ให้เรียกใช้โค้ดต่อไปนี้:
set ORACLE_HOME=d:\app\product\11.2.0.4\dbhome_1set ORACLE_BASE=d:\appset ORACLE_SID=ABCset PATH=%ORACLE_HOME%\bin;%PATH%%ORACLE_HOME%\jdk\bin\java -jar
\ preupgrade.jar TERMINAL TEXT -u sys -p -
ตรวจสอบผลลัพธ์ใน d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txt ,ตรวจทานล็อกไฟล์ก่อนการอัปเกรดและแก้ไขข้อผิดพลาด
-
คุณสามารถเรียกใช้สคริปต์แก้ไขล่วงหน้าสำหรับส่วนทั้งหมดด้วย AUTOFIXUP ในบันทึก ตัวอย่างเช่น เมื่อต้องการเรียกใช้d:\app\cfgtoologs\ABC\preupgrade\preupgrade_fixups.sql , รันโค้ดต่อไปนี้:
ซีดี ดี:
cd d:\app\cfgtoollogs\ABC\preupgradesqlplus sys/<รหัสผ่าน> เป็น sysdba @preupgrade_fixups.sql -
ตรวจสอบผลลัพธ์จาก preupgrade_fixups.sql และทำตามขั้นตอนที่เหลือด้วยตนเอง
ขั้นตอนที่ 2.1:สำรองข้อมูลไฟล์
เรียกใช้คำสั่งต่อไปนี้เพื่อสำรองข้อมูลของ 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
ลบที่เก็บ EM โดยใช้ขั้นตอนต่อไปนี้:
คัดลอก emremove.sql สคริปต์จากบ้าน 19c ถึงบ้าน 11g:
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 ออก
เอาแค็ตตาล็อก OLAP โดยใช้ขั้นตอนต่อไปนี้:
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:รวบรวมสถิติพจนานุกรม
รวบรวมสถิติพจนานุกรมโดยใช้คำสั่งต่อไปนี้:
EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;
เรียกใช้เครื่องมือก่อนอัปเกรดอีกครั้งเพื่อยืนยันว่าทุกอย่างพร้อม
ขั้นตอน 3.0:ขั้นตอนการอัปเกรด
เรียกใช้ขั้นตอนการอัพเกรดต่อไปนี้เพื่อทำการอัปเกรด:
ขั้นตอนที่ 3.1:ทำการอัปเกรด
ทำตามขั้นตอนต่อไปนี้เพื่ออัปเกรด:
-
ปิดฐานข้อมูล Oracle 11g
-
หลังจากปิดฐานข้อมูล Oracle แล้ว ให้เปิด CMD ด้วยตัวเลือกผู้ดูแลระบบ และลบบริการ Oracle 11g Windows ทั้งหมดโดยเรียกใช้ขั้นตอนต่อไปนี้จากพรอมต์คำสั่ง:
set ORACLE_HOME=d:\app\product\19.0.0\dbhome_1set PATH=%ORACLE_HOME%\bin;%PATH%set ORACLE_SID=ABCsc ลบ OracleJobSchedulerABCsc ลบ OracleMTSRecoveryServicesc ลบ OracleServiceABCsc ลบ OracleVssWriterABC
-
สร้างบริการ Oracle 19c Windows โดยเรียกใช้คำสั่งต่อไปนี้:
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\ ฐานข้อมูล\INITABC.ORA
-
หลังจากที่กระบวนการสร้างบริการ Windows ของ Oracle 19c แล้ว ให้เริ่มบริการ
ขั้นตอนที่ 3.2:เริ่มฐานข้อมูล Oracles
เริ่ม Oracle Database จากสภาพแวดล้อม 19C ในโหมดอัปเกรด
หลังจากที่ Oracle Database เริ่มทำงานในโหมดอัปเกรดแล้ว ให้ทำตามขั้นตอนต่อไปนี้:
-
เรียกใช้คำสั่งต่อไปนี้:
cd d:\app\product\19.0.0\dbhome_1\bin
-
ดำเนินการ dupgrade ยูทิลิตีจากพรอมต์คำสั่งของ Windows
-
หลังจากการอัพเกรดเสร็จสิ้น ให้เริ่มฐานข้อมูลและรันคำสั่งต่อไปนี้:
SQL> @?\rdbms\admin\utlrp.sql
ขั้นตอน 4.0:ขั้นตอนหลังอัปเกรด
หากการอัพเกรดสำเร็จ ให้รันสคริปต์แก้ไขหลังการอัพเกรด:
d:\ cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @postupgrade_fixups.sql
ขั้นตอนที่ 4.1:อัปเกรดเขตเวลา
หลังจากที่คุณเรียกใช้สคริปต์แก้ไขหลังการอัพเกรด ให้รันคำสั่งต่อไปนี้เพื่ออัพเกรดเขตเวลา:
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:รวบรวมสถิติวัตถุ
รวบรวมสถิติวัตถุคงที่โดยเรียกใช้คำสั่งต่อไปนี้:
sqlplus / as sysdba <<EOF
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
exit;
ขั้นตอนที่ 4.3 :รวบรวมสถิติพจนานุกรม
รวบรวมสถิติพจนานุกรมหลังจากการอัปเกรดโดยเรียกใช้คำสั่งต่อไปนี้:
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 จากโฮมไดเร็กทอรี Oracle11g Oracle เป็นโฮมไดเร็กทอรี Oracle 19c Oracle และเปลี่ยน oracle_home พารามิเตอร์ตามนั้น
-
วางไฟล์ทั้งหมดเหล่านี้ใน d:\app\product\19.0.0\dbhome_1\network\admin .
หมายเหตุ :เก็บ compatible=11.2.0.4
ในกรณีที่คุณจำเป็นต้องดาวน์เกรด OracleDatabase เป็น 11g
บทสรุป
ขั้นตอนก่อนหน้านี้ช่วยให้คุณอัปเกรด Oracle Database ใน Windows เวอร์ชัน 11.2.0.4 เป็น 19c ได้อย่างง่ายดาย
เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา
ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน