Computer >> Máy Tính >  >> Lập trình >> Cơ sở dữ liệu

Nâng cấp Oracle 11 lên 19c cho Windows — Phần thứ hai

Cơ sở dữ liệu Oracle® 19c là phiên bản mới nhất của cơ sở dữ liệu tự động được chấp nhận rộng rãi trên thị trường và doanh nghiệp. Tính ổn định là một yếu tố quan trọng của thành phần Cơ sở dữ liệu thần kỳ 19c của họ sản phẩm Cơ sở dữ liệu Oracle 12c (Bản phát hành 12.2). Trong loạt bài đăng blog gồm hai phần này, tôi đề cập đến việc cài đặt và nâng cấp phiên bản 19c.

Giới thiệu

Phần này của loạt bài gồm hai phần tập trung vào việc nâng cấp Cơ sở dữ liệu Oracle từ 11.2.0.4 lên 19c trong Windows®. Phương pháp thủ công này không sử dụng Hỗ trợ nâng cấp cơ sở dữ liệu (DBUA).

Để biết các bước cài đặt, hãy tham khảo Phần một của loạt bài này. Tôi đã cài đặt các tệp nhị phân trên thư mục chính Oracle 19c của mình, ORACLE_HOME =d:\ app \ product \ 19.0.0 \ dbhome_1 .

Sử dụng các bước sau để nâng cấp Cơ sở dữ liệu Oracle lên 19c:

Lưu ý :Bạn nên có một bản sao lưu hợp lệ trước khi nâng cấp phòng trường hợp có vấn đề gì xảy ra trong quá trình nâng cấp.

Bước 1:Tạo tệp cài đặt

Giai đoạn 19.3 tệp cài đặt Hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS) để bạn có thể tiến hành nâng cấp.

Bước 2:Các bước nâng cấp trước

Chạy các bước sau để hoàn tất quá trình nâng cấp trước:

Bước 2.0:Chuẩn bị
  1. Tải xuống Tiện ích nâng cấp trước cơ sở dữ liệu Oracle bằng cách sử dụngmetalink note 884522.1. Để chạy công cụ nâng cấp trước, hãy chạy đoạn mã sau:

    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 VĂN BẢN HẠN CHẾ -u sys -p

  2. Kiểm tra kết quả đầu ra trong d:\ app \ cfgtoollogs \ ABC \ preupgrade \ preupgrade.txt , xem lại tệp nhật ký trước khi nâng cấp và sửa bất kỳ lỗi nào.

  3. Bạn có thể chạy tập lệnh sửa lỗi nâng cấp trước cho tất cả các phần bằng AUTOFIXUP trong các bản ghi. Ví dụ:để chạy d:\ app \ cfgtoologs \ ABC \ preupgrade \ preupgrade_fixups.sql , thực thi mã sau:

    cd d:
    cd d:\ app \ cfgtoollogs \ ABC \ preupgradesqlplus sys / as sysdba @ preupgrade_fixups.sql

  4. Xem lại kết quả từ preupgrade_fixups.sql và thực hiện bất kỳ bước thủ công nào còn lại.

Bước 2.1:Sao lưu pfile

Chạy lệnh sau để sao lưu pfile :

SQL> create pfile='d:\app\init_ABC.ora' from spfile;
Bước 2.2:Xóa các đối tượng không hợp lệ

Chạy utlrp.sql tập lệnh từ SQL Plus để biên dịch các đối tượng không hợp lệ. Đảm bảo rằng không có đối tượng không hợp lệ nào vẫn còn trong lược đồ hệ thống / hệ thống . Lưu tất cả các đối tượng không hợp lệ khác trong một bảng riêng để khớp trong các bước sau nâng cấp sau này.

SQL>@?/rdbms/admin/utlrp.sql
SQL> create table system.invalids_before_upgrade as select * From dba_invalid_objects;
Bước 2.3:Xóa kho lưu trữ EM

Xóa kho lưu trữ EM bằng cách sử dụng các bước sau:

Sao chép emremove.sql script từ 19c home đến 11 g 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  
Bước 2.4:Xóa danh mục OLAP

Xóa danh mục OLAP bằng cách sử dụng các bước sau:

cd d:\app\product\11.2.0.4\dbhome_1\olap\admin\
sqlplus sys/<password> as sysdba @catnoamd.sql
Bước 2.5:Xóa APEX

Nếu bạn không sử dụng Application Express (APEX), bạn có thể xóa nó bằng cách chạy các lệnh sau:

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;
Bước 2.6:Xóa RECYCLEBIN

Xóa DBA RECYCLEBIN bằng cách sử dụng lệnh sau:

PURGE DBA_RECYCLEBIN;
Bước 2.7:Thu thập thống kê Từ điển

Thu thập số liệu thống kê từ điển bằng cách sử dụng lệnh sau:

EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;

Chạy lại công cụ nâng cấp trước để xác nhận rằng mọi thứ đã sẵn sàng.

Bước 3.0:Các bước nâng cấp

Chạy các bước nâng cấp sau để thực hiện nâng cấp:

Bước 3.1:Tiến hành nâng cấp

Chạy các bước sau để nâng cấp:

  1. Tắt Cơ sở dữ liệu Oracle 11g.

  2. Sau khi tắt Cơ sở dữ liệu Oracle, hãy mở CMD với tùy chọn quản trị và xóa tất cả các dịch vụ Oracle 11g Windows bằng cách chạy các bước sau từ dấu nhắc lệnh:

    set ORACLE_HOME =d:\ app \ product \ 19.0.0 \ dbhome_1set PATH =% ORACLE_HOME% \ bin;% PATH% set ORACLE_SID =ABCsc xóa OracleJobSchedulerABCsc xóa OracleMTSRecoveryServicesc xóa OracleServiceABCsc xóa OracleVssWriterABC

  3. Tạo dịch vụ Windows 19c Oracle bằng cách chạy các lệnh sau:

    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 \ cơ sở dữ liệu \ INITABC.ORA

  4. Sau khi quá trình tạo các dịch vụ Windows 19c của Oracle, hãy khởi động các dịch vụ.

Bước 3.2:Khởi động cơ sở dữ liệu Oracles

Khởi động Cơ sở dữ liệu Oracle từ môi trường 19C ở chế độ nâng cấp.

Sau khi Cơ sở dữ liệu Oracle khởi động ở chế độ nâng cấp, hãy thực hiện các bước sau:

  1. Chạy lệnh sau:

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

  2. Thực thi dbupgrade tiện ích từ dấu nhắc lệnh của Windows.

  3. Sau khi nâng cấp hoàn tất, hãy khởi động cơ sở dữ liệu và chạy lệnh sau:

    SQL> @? \ Rdbms \ admin \ utlrp.sql

Bước 4.0:Các bước sau nâng cấp

Nếu nâng cấp thành công, hãy chạy tập lệnh sửa lỗi sau nâng cấp:

d:\ cd d:\app\cfgtoollogs\ABC\preupgrade
sqlplus sys/<password> as sysdba @postupgrade_fixups.sql
Bước 4.1:Nâng cấp múi giờ

Sau khi bạn chạy tập lệnh sửa lỗi sau nâng cấp, hãy chạy các lệnh sau để nâng cấp múi giờ:

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; 

Nếu TZ_VERSION hiển thị phiên bản cũ, chạy các lệnh sau:

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
Bước 4.2:Thu thập thống kê đối tượng

Thu thập thống kê đối tượng cố định bằng cách chạy các lệnh sau:

sqlplus / as sysdba <<EOF
EXECUTE DBMS_STATS.GATHER_FIXED_OBJECTS_STATS;
exit;
Bước 4.3:Thu thập số liệu thống kê từ điển

Thu thập thống kê từ điển sau khi nâng cấp bằng cách chạy câu lệnh sau:

EXECUTE DBMS_STATS.GATHER_DICTIONARY_STATS;
Bước 4.4:Xác thực các vấn đề đã khắc phục

Chạy utlusts.sql để xác minh rằng không còn vấn đề nào:

d:\app\product\19.0.0\dbhome_1\rdbms\admin\utlusts.sql TEXT  
Bước 4.5:So sánh các đối tượng không hợp lệ

Khớp tất cả các đối tượng không hợp lệ với danh sách bạn đã lưu ở Bước 2.2.

Bước 4.6:Dọn dẹp

Để hoàn tất nâng cấp, hãy thực hiện các bước sau:

  1. Sao chép listener.ora , tnsnames.ora sqlnet.ora từ thư mục chính Oracle11g Oracle đến thư mục chính Oracle 19c Oracle và thay đổi oracle_home các tham số tương ứng.

  2. Đặt tất cả các tệp này vào d:\ app \ product \ 19.0.0 \ dbhome_1 \ network \ admin .

Lưu ý :Giữ cho compatible=11.2.0.4 trong trường hợp bạn cần hạ cấp OracleDatabase xuống 11g.

Kết luận

Các bước trước đó giúp bạn dễ dàng nâng cấp Cơ sở dữ liệu Oracle trong Windowsversion 11.2.0.4 lên 19c.

Tìm hiểu thêm về các dịch vụ Cơ sở dữ liệu của chúng tôi.

Sử dụng tab Phản hồi để đưa ra bất kỳ nhận xét hoặc đặt câu hỏi nào. Bạn cũng có thể bắt đầu cuộc trò chuyện với chúng tôi.