2023年6月1日木曜日

Oracle APEXのアップグレード(0) - はじめに

Oracle APEXのアップグレードに関連するトピックをまとめてみます。

Oracle APEXのアップグレード(0) - はじめに
全体の目次になります。

Oracle APEXのアップグレード(1) - 単純なクローン
アップグレードのテストを実施するために、PDBにインストールしたAPEXをクローンする方法を確認します。

Oracle APEXのアップグレード(2) -  スクリプトの実行
APEXのアップグレード・スクリプトapexins.sqlの実行、およびマニュアルに記載されている停止時間を最小にしたアップグレード手順を確認します。

Oracle APEXのアップグレード(3) - 色々なクローン手順
リフレッシュ可能PDBやスナップショット・コピーの機能を使ったクローンを作成してみます。

Oracle APEXのアップグレード(4) - ADBのAPEXのクローンとアップグレード
Autonomous DatabaseでのAPEXのアップグレード手順を確認します。

Oracle APEXのアップグレード(5) - アプリケーションのアップグレード
ユーザーが作成したアプリケーションを、アップグレードされたAPEXに対応させるために行う作業を確認します。

以下の記事で紹介している手順に沿って作成した環境を、APEXのアップグレードの確認に使用します。

Oracle APEXの環境作成(0) - はじめに

アップグレードの確認を行うため、APEX 23.1の代わりにAPEX 21.1をインストールした仮想マシンを作成しています。APEX 21.1をインストールするにあたり、apex-latest.zipの代わりにapex_21.1.zipを使用し、追加でapex_rest_config.sqlを実行しています。

Oracle Cloudのコンピュート・インスタンスとして作成した環境で、APEX 21.1からAPEX 23.1へのアップグレードを行います。

Autonomous DatabaseではAPEX 22.2からAPEX 23.1へのアップグレードを行います。


Pluggable Mappingについて


ドキュメントの以下のセクションでPluggable Mappingについて説明されています。ORDSがPluggable Mappingで構成されていると、APEXがインストールされているPDBをクローンするとすぐに、新しく作成されたPDBにアクセス可能になります。この作業は、APEXが稼働中でも実施できます。

7.3 Oracle REST Data Servicesによって、すべてのPDBをアドレス可能にする(プラガブル・マッピング)

例として、FREEPDB1というPDBにAPEXがインストールされているとします。

Pluggable Mappingが構成されていると、以下のURLよりAPEXにアクセスできます。

http://ホスト名/ords/freepdb1/

FREEPDB1のクローンとして、以下のコマンドを実行してFREEPDB2を作成します。

create pluggable database freepdb2 from freepdb1 file_name_convert = ('FREEPDB1','FREEPDB2');
alter pluggable database freepdb2 open read write;

[oracle@apex-test ~]$ sqlplus / as sysdba


SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Wed May 24 14:12:56 2023

Version 23.2.0.0.0


Copyright (c) 1982, 2023, Oracle.  All rights reserved.



Connected to:

Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release

Version 23.2.0.0.0


SQL> create pluggable database freepdb2 from freepdb1 file_name_convert = ('FREEPDB1','FREEPDB2');


Pluggable database created.


SQL> alter pluggable database freepdb2 open read write;


Pluggable database altered.


SQL> exit

Disconnected from Oracle Database 23c Free, Release 23.0.0.0.0 - Developer-Release

Version 23.2.0.0.0

[oracle@apex-test ~]$ 


PDBが作成されて読み書き可能でオープンされます。

SQL> show pdbs


    CON_ID CON_NAME   OPEN MODE  RESTRICTED

---------- ------------------------------ ---------- ----------

 2 PDB$SEED   READ WRITE NO

 3 FREEPDB1   READ WRITE NO

 5 FREEPDB2   READ WRITE NO

SQL> 


以下のURLでクローンした環境にアクセスできます。

http://ホスト名/ords/freepdb2/

PDBをクローンするだけで環境にアクセスできるようになるため、とても便利です。とはいえ、ORDSをインストールする際(ords install実行時)に、以下のメッセージが表示されることから分かるように、ユーザーORDS_PUBLIC_USERがCDBに作成されること、PDB$SEEDにもORDSのスキーマが作成されます

Retrieving information...

Your database connection is to a CDB.  ORDS common user ORDS_PUBLIC_USER will be created in the CDB.  ORDS schema will be installed in the PDBs.

Root CDB$ROOT - create ORDS common user 

PDB PDB$SEED - install ORDS 23.1.3.r1371032 

PDB FREEPDB1 - install ORDS 23.1.3.r1371032 

PDB FREEPDB1 - configure PL/SQL gateway user APEX_PUBLIC_USER in ORDS version 23.1.3.r1371032 


  Install ORDS in the database

    [1] Yes

    [2] No

  Choose [1]: 


Oracle REST Data Servicesもバージョン22より、設定ファイルの構成が大きく変わっています。Pluggable Mappingでなくても、ORDSが扱うデータベースの追加が容易になりました。

異なるCDBにPDBをリモート・クローンしたり、ORDSがインストールされていないPDBを作成する要件がある場合は、Pluggable Mappingの採用はお勧めできません。

続く