podmanを使ってOracle Database FreeとOracle REST Data Servicesをコンテナとして実行する
- データベース・オブジェクトとデータ
- APEXのワークスペースとアプリケーション
- ORDSのサービスやOAuth2クライアント
- 既存のデータベースから必要なデータをすべてエクスポートする。
- コンテナを削除する。
- アップグレードされたOracle Database Freeを含むコンテナを新規作成する。
- 新規作成したデータベースに1でエクスポートしたデータをインポートする。
Upgrading from Oracle 23c FREE to 23ai
apex-podman-setup % podman stop apex-ords
apex-ords
apex-podman-setup %
volumeMounts:
- name: oradata-pvc
mountPath: /opt/oracle/oradata
- name: apex-volume
mountPath: /opt/oracle/apex
volumes:
- name: oradata-pvc
persistentVolumeClaim:
claimName: oradata
- name: ords_config-pvc
persistentVolumeClaim:
claimName: ords_config
- name: apex-volume
hostPath:
path: /Users/***********/Documents/apex-podman-setup/apex
type: Directory
apex-podman-setup % mkdir apex/MIGRATE
apex-podman-setup %
sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba
apex-podman-setup % sql sys/*******@localhost/freepdb1 as sysdba
SQLcl: 木 6月 19 14:08:51 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SQL>
SQL> create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';
Directory DP_DIRは作成されました。
SQL>
datapump export -schemas WKSP_APEXDEV -directory DP_DIR -version latest
SQL> datapump export -schemas WKSP_APEXDEV -directory DP_DIR -version latest
DATA PUMPの開始
データベースのタイム・ゾーン: VERSION:43 CON_ID:0
ログの場所: DP_DIR:ESQL_122.LOG
"SYS"."ESQL_122"を起動しています:
オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です
オブジェクト型SCHEMA_EXPORT/USERの処理中です
オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です
オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREPの処理中です
オブジェクト型SCHEMA_EXPORT/SEQUENCE/SEQUENCEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/IDENTITY_COLUMNの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TRIGGERの処理中です
. . "WKSP_APEXDEV"."CAR_SPEED" 34.3 KB 610行がエクスポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_BACK" 34.3 KB 610行がエクスポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_JA" 34.3 KB 610行がエクスポートされました
. . "WKSP_APEXDEV"."EBA_TASKS_SS" 20.4 KB 73行がエクスポートされました
. . "WKSP_APEXDEV"."SAMPLE_TASKS" 0 KB 0行がエクスポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_A" 7.8 KB 1行がエクスポートされました
. . "WKSP_APEXDEV"."DEPT" 6.1 KB 4行がエクスポートされました
. . "WKSP_APEXDEV"."EMP" 9 KB 14行がエクスポートされました
マスター表"SYS"."ESQL_122"は正常にロード/アンロードされました
******************************************************************************
SYS.ESQL_122に設定されたダンプ・ファイルは次のとおりです:
/opt/oracle/apex/MIGRATE/ESQL_122.DMP
ジョブ"SYS"."ESQL_122"が木 6月 19 05:14:39 2025 elapsed 0 00:00:15で正常に完了しました
データポンプ操作ステータス COMPLETED'
Jobname = ESQL_122
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
apex-podman-setup %
apex-podman-setup % cd apex/MIGRATE
MIGRATE %
sql wksp_apexdev/[パスワード]@localhost/freepdb1
MIGRATE % sql wksp_apexdev/oracle@localhost/freepdb1
SQLcl: 木 6月 19 14:22:24 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SQL>
APEXワークスペースをエクスポートします。
apex export-all-workspaces
SQL> apex export-all-workspaces
Exporting Workspace 7236383262984313:'APEXDEV'
File w7236383262984313.sql created
SQL>
エクスポートされたワークスペースに含まれる、すべてのAPEXアプリケーションをエクスポートします。
apex export-all-applications -woi [ワークスペースID]
SQL> apex export-all-applications -woi 7236383262984313
Exporting Workspace APEXDEV - application 100:Open Page
File f100.sql created
Exporting Workspace APEXDEV - application 101:master detail
File f101.sql created
Exporting Workspace APEXDEV - application 102:RoboBrain2.0 Simple Inference
File f102.sql created
Exporting Workspace APEXDEV - application 105:Open Form
File f105.sql created
Exporting Workspace APEXDEV - application 107:Car Speed
File f107.sql created
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
MIGRATE %
set serveroutput on | |
set feedback off | |
set echo off | |
set verify off | |
spool &2 | |
declare | |
l_exported_script clob; | |
begin | |
l_exported_script := ords_export_admin.export_schema('&1'); | |
dbms_output.put_line(l_exported_script); | |
end; | |
/ | |
exit; |
MIGRATE % sql sys/*********@localhost/freepdb1 as sysdba @export_rest WKSP_APEXDEV ords.sql
SQLcl: 木 6月 19 14:44:57 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
-- Generated by ORDS REST Data Services 25.1.1.r1411642
-- Schema: WKSP_APEXDEV Date: 木 6月 19 05:44:58 2025
--
DECLARE
l_roles OWA.VC_ARR;
l_modules OWA.VC_ARR;
l_patterns OWA.VC_ARR;
BEGIN
ORDS_ADMIN.ENABLE_SCHEMA(
p_schema => 'WKSP_APEXDEV',
p_enabled => TRUE,
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'apexdev',
p_auto_rest_auth => FALSE);
ORDS_ADMIN.DEFINE_MODULE(
p_schema => 'WKSP_APEXDEV',
p_module_name => 'oracle.example.hr',
p_base_path => '/hr/',
p_items_per_page => 25,
p_status => 'PUBLISHED',
p_comments => NULL);
[中略]
ORDS_ADMIN.DEFINE_PRIVILEGE(
p_schema => 'WKSP_APEXDEV',
p_privilege_name => 'oracle.soda.privilege.developer',
p_roles => l_roles,
p_patterns => l_patterns,
p_modules => l_modules,
p_label => NULL,
p_description => NULL,
p_comments => NULL);
l_roles.DELETE;
l_modules.DELETE;
l_patterns.DELETE;
COMMIT;
END;
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
MIGRATE %
以上でエクスポート作業は完了です。
apex-podman-setup % podman pod stop apex
apex
apex-podman-setup % podman pod rm apex
939d5f927aa74e97b872ce11cb10349e64a6c4c090ab611d6dcb07dd936ad68d
apex-podman-setup % podman volume rm oradata
oradata
apex-podman-setup % podman volume rm ords_config
ords_config
apex-podman-setup % sh config_apex.sh ******** ********
APEX VERSION detected: 24.2.0 APEX_240200
oradata
ords_config
May take some time if Oracle Database Free or ORDS container image is not latest.
Pod:
45119930b0efc2c351e98ca6a64e848d859cca13149dacc9e98a11abcd1204ce
Containers:
0fb66c4a307836fe2ab422673a1bb2e4c12c993efd6d896f3e1711fed810ec6b
e4352714adf57e6e3f32fa1b0c88dc5345112b59a0e0ec3b3a0bc25db01f525f
[中略]
ORDS: Release 25.1 Production on Thu Jun 19 05:58:32 2025
Copyright (c) 2010, 2025, Oracle.
Configuration:
/etc/ords/config
The global setting named: standalone.static.path was set to: /opt/oracle/apex/images
apex
apex
apex-podman-setup %
sql sys/[SYSのパスワード]@localhost/freepdb1 as sysdba
apex-podman-setup % sql sys/********@localhost/freepdb1 as sysdba
SQLcl: 木 6月 19 15:02:11 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SQL>
ダンプ・ファイルのアクセスに使用するディレクトリDP_DIRを作成します。
SQL> create or replace directory dp_dir as '/opt/oracle/apex/MIGRATE';
Directory DP_DIRは作成されました。
SQL>
先ほどエクスポートを実行して作成されたダンプファイル(今回の例ではESQL_122.DMP)をインポートします。
datapump import -schemas WKSP_APEXDEV -directory DP_DIR -dumpfile ESQL_122.DMP -version latest
SQL> datapump import -schemas WKSP_APEXDEV -directory DP_DIR -dumpfile ESQL_122.DMP -version latest
DATA PUMPの開始
データベースのタイム・ゾーン: VERSION:43 CON_ID:0
ログの場所: DP_DIR:ISQL_2.LOG
マスター表"SYS"."ISQL_2"は正常にロード/アンロードされました
"SYS"."ISQL_2"を起動しています:
オブジェクト型SCHEMA_EXPORT/USERの処理中です
オブジェクト型SCHEMA_EXPORT/SYSTEM_GRANTの処理中です
オブジェクト型SCHEMA_EXPORT/DEFAULT_ROLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLESPACE_QUOTAの処理中です
オブジェクト型SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA/LOGREPの処理中です
オブジェクト型SCHEMA_EXPORT/SEQUENCE/SEQUENCEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLEの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TABLE_DATAの処理中です
. . "WKSP_APEXDEV"."CAR_SPEED" 34.3 KB 610行がインポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_BACK" 34.3 KB 610行がインポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_JA" 34.3 KB 610行がインポートされました
. . "WKSP_APEXDEV"."EBA_TASKS_SS" 20.4 KB 73行がインポートされました
. . "WKSP_APEXDEV"."SAMPLE_TASKS" 0 KB 0行がインポートされました
. . "WKSP_APEXDEV"."CAR_SPEED_A" 7.8 KB 1行がインポートされました
. . "WKSP_APEXDEV"."DEPT" 6.1 KB 4行がインポートされました
. . "WKSP_APEXDEV"."EMP" 9 KB 14行がインポートされました
オブジェクト型SCHEMA_EXPORT/TABLE/IDENTITY_COLUMNの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/TRIGGERの処理中です
オブジェクト型SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICSの処理中です
ジョブ"SYS"."ISQL_2"が木 6月 19 06:06:23 2025 elapsed 0 00:00:09で正常に完了しました
データポンプ操作ステータス COMPLETED'
Jobname = ISQL_2
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
apex-podman-setup %
% cd apex/MIGRATE
MIGRATE %
for f in w*.sql f*.sql
do
echo @$f
done > install-all.sql
@w7236383262984313.sql
@f100.sql
@f101.sql
@f102.sql
@f105.sql
@f107.sql
MIGRATE % sql sys/*******@localhost/freepdb1 as sysdba
SQLcl: 木 6月 19 15:15:40 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SQL> grant apex_administrator_role to wksp_apexdev;
Grantが正常に実行されました。
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
MIGRATE %
sql wksp_apexdev/*******@localhost/freepdb1 @install-all.sql
whenever sqlerror exit sql.sqlcode rollback
SQLファイルの実行中にエラーが発生するとその時点で処理が中断し、SQLclが終了します。そのため、後続のスクリプトは実行されません。エラーの発生がなければ最後にSQL入力のプロンプトに戻るので、exitを入力してSQLclを終了します。
MIGRATE % sql wksp_apexdev/*******@localhost/freepdb1 @install-all.sql
SQLcl: 木 6月 19 15:19:21 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
--application/set_environment
WORKSPACE 7236383262984313
Creating workspace APEXDEV...
Creating Groups...
Creating group grants...
Creating Users...
...RESTful Services
SCHEMA WKSP_APEXDEV - User Interface Defaults, Table Defaults
User Interface Defaults, Attribute Dictionary
...done
--application/set_environment
APPLICATION 100 - Open Page
--application/delete_application
--application/create_application
--application/user_interfaces
[中略]
--application/user_interfaces/combined_files
--application/pages/page_00000
--application/pages/page_00001
--application/pages/page_00002
--application/pages/page_00003
--application/pages/page_00004
--application/pages/page_00005
--application/pages/page_00006
--application/pages/page_09999
--application/deployment/definition
--application/deployment/checks
--application/deployment/buildoptions
--application/end_environment
...done
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
MIGRATE %
ORDSの設定を復元します。ユーザーSYSで接続して実行します。
MIGRATE % sql sys/oracle@localhost/freepdb1 as sysdba
SQLcl: 木 6月 19 15:24:45 2025のリリース25.1 Production
Copyright (c) 1982, 2025, Oracle. All rights reserved.
接続先:
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04
SQL> @ords.sql
>.... 383 p_bind_variable_name => 'deptno',
384 p_source_type => 'HEADER',
385 p_param_type => 'INT',
386 p_access_method => 'IN',
387 p_comments => NULL);
388
389 ORDS_ADMIN.CREATE_ROLE(
390 p_schema => 'WKSP_APEXDEV',
391 p_role_name=> 'oracle.dbtools.role.autorest.WKSP_APEXDEV');
[中略]
428
429
430 COMMIT;
431
432 END;
433* /
PL/SQLプロシージャが正常に完了しました。
SQL> exit
Oracle Database 23ai Free Release 23.0.0.0.0 - Develop, Learn, and Run for Free
Version 23.8.0.25.04から切断されました
MIGRATE %