Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> ฐานข้อมูล

อัปเกรด Oracle 11 เป็น 19c สำหรับ Windows—ส่วนที่สอง

ฐานข้อมูล 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:การจัดเตรียม
  1. ดาวน์โหลด 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

  2. ตรวจสอบผลลัพธ์ใน d:\app\cfgtoollogs\ABC\preupgrade\preupgrade.txt ,ตรวจทานล็อกไฟล์ก่อนการอัปเกรดและแก้ไขข้อผิดพลาด

  3. คุณสามารถเรียกใช้สคริปต์แก้ไขล่วงหน้าสำหรับส่วนทั้งหมดด้วย AUTOFIXUP ในบันทึก ตัวอย่างเช่น เมื่อต้องการเรียกใช้d:\app\cfgtoologs\ABC\preupgrade\preupgrade_fixups.sql , รันโค้ดต่อไปนี้:

    ซีดี ดี:
    cd d:\app\cfgtoollogs\ABC\preupgradesqlplus sys/<รหัสผ่าน> เป็น sysdba @preupgrade_fixups.sql

  4. ตรวจสอบผลลัพธ์จาก 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:ทำการอัปเกรด

ทำตามขั้นตอนต่อไปนี้เพื่ออัปเกรด:

  1. ปิดฐานข้อมูล Oracle 11g

  2. หลังจากปิดฐานข้อมูล 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

  3. สร้างบริการ 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

  4. หลังจากที่กระบวนการสร้างบริการ Windows ของ Oracle 19c แล้ว ให้เริ่มบริการ

ขั้นตอนที่ 3.2:เริ่มฐานข้อมูล Oracles

เริ่ม Oracle Database จากสภาพแวดล้อม 19C ในโหมดอัปเกรด

หลังจากที่ Oracle Database เริ่มทำงานในโหมดอัปเกรดแล้ว ให้ทำตามขั้นตอนต่อไปนี้:

  1. เรียกใช้คำสั่งต่อไปนี้:

    cd d:\app\product\19.0.0\dbhome_1\bin

  2. ดำเนินการ dupgrade ยูทิลิตีจากพรอมต์คำสั่งของ Windows

  3. หลังจากการอัพเกรดเสร็จสิ้น ให้เริ่มฐานข้อมูลและรันคำสั่งต่อไปนี้:

    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:ล้างข้อมูล

หากต้องการอัปเกรดให้เสร็จสิ้น ให้ทำตามขั้นตอนต่อไปนี้:

  1. คัดลอก listener.ora , tnsnames.ora และ sqlnet.ora จากโฮมไดเร็กทอรี Oracle11g Oracle เป็นโฮมไดเร็กทอรี Oracle 19c Oracle และเปลี่ยน oracle_home พารามิเตอร์ตามนั้น

  2. วางไฟล์ทั้งหมดเหล่านี้ใน 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 ได้อย่างง่ายดาย

เรียนรู้เพิ่มเติมเกี่ยวกับบริการฐานข้อมูลของเรา

ใช้แท็บคำติชมเพื่อแสดงความคิดเห็นหรือถามคำถาม คุณสามารถเริ่มการสนทนากับเราได้เช่นกัน