Oracle アプリケーションのアップグレード手順(INSERTによるデータ展開)

CDB/PDB(マルチテナント)

~バージョン1.0から1.1への変更とSYNCによる反映~

Oracle Multitenant構成では、アプリケーション・コンテナ(Application Container)に定義されたアプリケーションをバージョン管理付きでアップグレードすることができます。アプリケーションのアップグレードには、テーブル定義の変更だけでなく、データ挿入(INSERT)による初期データの展開も含まれます。

この記事では、sales_app アプリケーションを バージョン1.0 → 1.1 にアップグレードし、APP_ROOTでデータをINSERTしたのち、APP_PDBに同期する手順を紹介します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


✅ 前提条件

  • Oracle Database 12.2以降
  • APP_ROOTに sales_app バージョン1.0 がインストール済み
  • APP_USER スキーマに APP_SALES テーブルが存在する
  • APP_PDB01sales_app を同期済みの状態

1. APP_ROOTでアプリケーションのアップグレードを開始

1.1 APP_ROOTに接続

ALTER SESSION SET CONTAINER = app_root;

SHOW CON_NAME;
-- → APP_ROOT

1.2 アップグレードの開始

ALTER PLUGGABLE DATABASE APPLICATION sales_app BEGIN UPGRADE '1.0' TO '1.1';

✅ バージョン1.0から1.1へのアップグレード処理を開始します。
TO '1.1' によって、アップグレード先バージョンが明示されます。


2. テーブルへの初期データINSERT

ここでは、APP_USER.APP_SALES テーブルに2件のデータを登録します。

INSERT INTO app_user.app_sales (sale_id, product, amount, sale_date)
VALUES (1, 'ノートパソコン', 150000, SYSDATE);

INSERT INTO app_user.app_sales (sale_id, product, amount, sale_date)
VALUES (2, 'プリンター', 35000, SYSDATE);

💡 このINSERTは、APP_PDBにはまだ反映されていません。
END UPGRADE によりバージョン1.1として登録された後、SYNC によって配布されます。


3. アップグレードの完了

ALTER PLUGGABLE DATABASE APPLICATION sales_app END UPGRADE;

✅ これにより、sales_app バージョン1.1がAPP_ROOTに正式登録されます。


4. APP_PDBでの同期実行

4.1 APP_PDBに接続

ALTER SESSION SET CONTAINER = app_pdb01;

SHOW CON_NAME;
-- → APP_PDB01

4.2 SYNCの実行

ALTER PLUGGABLE DATABASE APPLICATION sales_app SYNC;

✅ これにより、APP_PDB内にINSERTされたデータが反映されます。


5. データ反映の確認

SELECT * FROM app_user.app_sales;

出力例:

SALE_ID  PRODUCT         AMOUNT   SALE_DATE
------- -------------- ------- -------------------
1 ノートパソコン 150000 2025-05-18
2 プリンター 35000 2025-05-18
SQL> ALTER SESSION SET CONTAINER = app_root;

セッションが変更されました。

SQL> show con_name

CON_NAME
------------------------------
APP_ROOT
SQL> ALTER PLUGGABLE DATABASE APPLICATION sales_app BEGIN UPGRADE '1.0' to '1.1';

プラガブル・データベースが変更されました。

SQL> INSERT INTO app_user.app_sales (sale_id, product, amount, sale_date)
2 VALUES (1, 'ノートパソコン', 150000, SYSDATE);

1行が作成されました。

SQL> INSERT INTO app_user.app_sales (sale_id, product, amount, sale_date)
2 VALUES (2, 'プリンター', 35000, SYSDATE);

1行が作成されました。

SQL> ALTER PLUGGABLE DATABASE APPLICATION sales_app END UPGRADE;

プラガブル・データベースが変更されました。

SQL> ALTER SESSION SET CONTAINER = app_pdb01;

セッションが変更されました。

SQL> show con_name

CON_NAME
------------------------------
APP_PDB01
SQL> ALTER PLUGGABLE DATABASE APPLICATION sales_app SYNC;

プラガブル・データベースが変更されました。

SQL> set lin 1000 pages 1000
SQL> col product for a30
SQL> SELECT * FROM app_user.app_sales;

SALE_ID PRODUCT AMOUNT SALE_DAT
---------- ------------------------------ ---------- --------
1 ノートパソコン 150000 25-05-18
2 プリンター 35000 25-05-18

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?


📌 テキスト図:今回の処理の流れ

APP_ROOT
├─ sales_app v1.0
├─ BEGIN UPGRADE '1.0' TO '1.1'
│ └─ INSERT INTO app_sales ...
└─ END UPGRADE → v1.1確定

APP_PDB01
└─ SYNC 実行 → INSERTデータ反映

✅ まとめ

操作内容コマンド例
アップグレード開始ALTER PLUGGABLE DATABASE APPLICATION sales_app BEGIN UPGRADE '1.0' TO '1.1';
データINSERTINSERT INTO app_sales ...
アップグレード完了ALTER PLUGGABLE DATABASE APPLICATION sales_app END UPGRADE;
同期(反映)ALTER PLUGGABLE DATABASE APPLICATION sales_app SYNC;


[参考]
Oracle Multitenant 管理者ガイド 19c

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました