BaseDBを19cから23aiにアップグレードしてみましたの画像

はじめに

こんにちは。Oracle Cloud Infrastructure検証チームです。
2025年1月度のサービス・アップデートにより、Oracle Base Database Service (BaseDB) において、Oracle DatabaseおよびGrid Infrastructureのバージョンを23aiにアップグレードできるようになりました。
そこで、今回はBaseDBで、19cから23aiへのアップグレードを検証してみました。

なお、本記事は2部構成となっており、こちらは後編としてOracle Databaseアップグレードについて記載しています。

 

前編は (1/2) アップグレードの概要説明~Grid Infrastructureアップグレードです!

検証

構成確認

現段階での検証用BaseDBの構成は下記の通りです。

DBシステム
  • ストレージ管理ソフトウェア:Oracle Grid Infrastructure
  • Oracle Databaseソフトウェア・バージョン:Enterprise Edition
    アップグレード失敗時に備えて、ロールバック可能なEEを選択しています。
  • DBシステム・バージョン23.7.0.25.01
    Grid Infrastructureバージョンを指します
    前編で19cから23aiにアップグレードしました。
    DBシステムの画像
データベース
  • データベースのバージョン19.26.0.0.0
    データベースの画像
その他
  • OS:Oracle Linux 8.8
    [root@test-basedb ~]# cat /etc/oracle-release 
    Oracle Linux Server release 8.8
  • ユーザー環境変数 (.bashrc)
    • grid
      [grid@test-basedb ~]$ cat .bashrc
      # .bashrc
      
      # Source global definitions
      if [ -f /etc/bashrc ]; then
      . /etc/bashrc
      fi
      
      # User specific environment
      if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
      then
      PATH="$HOME/.local/bin:$HOME/bin:$PATH"
      fi
      export PATH
      
      # Uncomment the following line if you don't like systemctl's auto-paging feature:
      # export SYSTEMD_PAGER=
      
      # User specific aliases and functions
      ORACLE_HOME=/u01/app/19.0.0.0/grid; export ORACLE_HOME
      PATH=$PATH:/u01/app/19.0.0.0/grid/bin; export PATH
      LD_LIBRARY_PATH=/u01/app/19.0.0.0/grid/lib; export LD_LIBRARY_PATH
      ORACLE_SID=+ASM1; export ORACLE_SID
      ## WARNING!! Modifying this file can cause failures in API/CLI provided by Cloud Tooling!!
      ORACLE_HOME=/u01/app/23.0.0.0/grid; export ORACLE_HOME
      PATH=$PATH:/u01/app/23.0.0.0/grid/bin; export PATH
      LD_LIBRARY_PATH=/u01/app/23.0.0.0/grid/lib; export LD_LIBRARY_PATH
    • oracle
      [oracle@test-basedb ~]$ cat .bashrc
      # .bashrc
      
      # Source global definitions
      if [ -f /etc/bashrc ]; then
      . /etc/bashrc
      fi
      
      # User specific environment
      if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
      then
      PATH="$HOME/.local/bin:$HOME/bin:$PATH"
      fi
      export PATH
      
      # Uncomment the following line if you don't like systemctl's auto-paging feature:
      # export SYSTEMD_PAGER=
      
      # User specific aliases and functions
      ORACLE_HOME=/u01/app/oracle/product/19.0.0.0/dbhome_1; export ORACLE_HOME
      PATH=$PATH:/u01/app/oracle/product/19.0.0.0/dbhome_1/bin; export PATH 
      LD_LIBRARY_PATH=/u01/app/oracle/product/19.0.0.0/dbhome_1/lib; export LD_LIBRARY_PATH 
      ORACLE_UNQNAME=CDB_TEST;export ORACLE_UNQNAME
      ORACLE_SID=CDB; export ORACLE_SID 
      ## WARNING!! Modifying this file can cause failures in API/CLI provided by Cloud Tooling!!
  • SQL*Plusバージョン:19.26.0.0.0
    [oracle@test-basedb ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 19.0.0.0.0 - Production on Tue Mar 25 10:44:19 2025
    Version 19.26.0.0.0
    
    Copyright (c) 1982, 2024, Oracle. All rights reserved.
    
    
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.26.0.0.0
    
    SQL>

Oracle Databaseアップグレード

Grid Infrastructureバージョンを23aiにアップグレードし、前提条件が揃いました。
続いて、Oracle Databaseバージョンを19cから23aiにアップグレードします。

事前チェック

GIと同様、まずは事前チェックを実施します。
[データベースの詳細] ページのバージョン情報「データベースのバージョン」の [表示] リンクを押下します。

事前チェックの画像

[更新] ページに遷移しました。
使用可能なOS・Grid Infrastructure・Oracle Databaseのパッチおよびアップグレードが表示されています。

データベース: <CDB名>」のリスト内に、使用可能なバージョン23aiのDBアップグレードがあることを確認し、右部のミートボールメニューを開いて [事前チェック] を押下します。
今回は、検証時点で最新の23.7.0.25.01を選択しています。

データベース更新の画像

[事前チェックの実行] を押下します。

事前チェックの画像

[更新] ページの左部メニューから [更新履歴] を押下すると、事前チェックが進行していることを確認できます。

更新履歴の画像

データベースの状態が「アップグレード中」となっていますが、実際には事前チェック処理を実行しているだけなので問題ありません。
DBシステムおよびノードの状態は「使用可能」のままです。

データベースの画像

15分ほどで事前チェックが完了しました。
事前チェックに成功すると、 [データベースの詳細] ページの上部に正常に完了した旨のメッセージが表示されます。

データベースの詳細画像

先ほどの [更新] ページを確認すると、状態が「使用可能」に戻り、事前チェックの終了時刻が表示されています。

更新ページの画像

[更新履歴] ページでは、事前チェックの結果を確認できます。

更新履歴の画像

DBアップグレード

問題なくアップグレード可能なことが確認できたため、Oracle Databaseのアップグレードを実行します。
[更新] ページから、事前チェックを実施したDBアップグレードのミートボールメニューを開いて [アップグレード] を押下します。

データベースの画像

手動バックアップを取得していなかったため、アップグレード前に一度作成することを薦められました。

データベースアップグレードの画像

自動バックアップ取得後だったのですが、念のため手動バックアップを作成しました。

バックアップの画像

改めて、[更新] ページから [アップグレード] を押下すると、最後に作成された自動バックアップが表示されるようになりました。
[アップグレード] を押下します。

データベースアップグレードの画像

[更新履歴] ページを確認すると、アップグレードが進行していることを確認できます。

更新履歴の画像

再びデータベースの状態が「アップグレード中」となっています。
DBシステムおよびノードの状態は「使用可能」のままです。

データベースの画像

3時間30分ほどでDBアップグレードが完了しました。
[更新] ページを確認すると、「データベース: <CDB名>」のリストから、アップグレード後のバージョン以前のアイテムがなくなっています。

更新の画像

[更新履歴] ページを確認すると、 アップグレードの結果を確認できます。

更新履歴の画像

以上で、Oracle Database 23aiへのアップグレードは完了です。

DBアップグレード後確認
[データベースの詳細] ページの「データベースのバージョン」が23.7.0.25.01に変化しました。

アップグレード後確認の画像

GIアップグレードと同様、oracleユーザーの.bashrcに、23aiの環境変数が追加されています。

[oracle@test-basedb ~]$ cat .bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi

# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH

# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=

# User specific aliases and functions
PATH=$PATH:/u01/app/oracle/product/19.0.0.0/dbhome_1/bin; export PATH
## WARNING!! Modifying this file can cause failures in API/CLI provided by Cloud Tooling!!
ORACLE_HOME=/u01/app/oracle/product/23.0.0.0/dbhome_2; export ORACLE_HOME
PATH=$PATH:/u01/app/oracle/product/23.0.0.0/dbhome_2/bin; export PATH 
LD_LIBRARY_PATH=/u01/app/oracle/product/23.0.0.0/dbhome_2/lib; export LD_LIBRARY_PATH 
ORACLE_UNQNAME=CDB_TEST;export ORACLE_UNQNAME
ORACLE_SID=CDB; export ORACLE_SID

envコマンドで表示される環境変数は23aiのものに置き換わっていました。

[oracle@test-basedb ~]$ env | grep ORA
ORACLE_UNQNAME=CDB_TEST
ORACLE_SID=CDB
ORACLE_HOME=/u01/app/oracle/product/23.0.0.0/dbhome_2

[oracle@test-basedb ~]$ env | grep PATH
LD_LIBRARY_PATH=/u01/app/oracle/product/23.0.0.0/dbhome_2/lib
PATH=/home/oracle/.local/bin:/home/oracle/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/u01/app/oracle/product/19.0.0.0/dbhome_1/bin:/u01/app/oracle/product/23.0.0.0/dbhome_2/bin

また、SQL*Plusバージョン23.0.0.0.0に変化しています。

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

SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Tue Mar 25 18:36:10 2025
Version 23.7.0.25.01

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


Connected to:
Oracle Database 23ai Enterprise Edition Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems
Version 23.7.0.25.01

SQL>

ここからは、アップグレード前に作成した自動バックアップを使用して、データベースを以前の状態に戻せなくなっていることを確認します。
自動バックアップの作成終了時刻を確認し、 [データベースの詳細] ページの上部メニューから [リストア] を押下します。

データベースの詳細画像

[タイムスタンプにリストア] を選択し、自動バックの作成終了時刻より後のタイムスタンプを指定して [データベースのリストア] を押下します。

データベースのリストアの画像

下記のエラーメッセージが表示されました。

データベースのリストアの画像

For an upgraded database, a restore cannot be performed to the timestamp before the upgrade.
アップグレードされたデータベースの場合、アップグレード前のタイムスタンプへのリストアは実行できません。

ちなみに、アップグレード前に作成した手動バックアップを使用してリストアしようとした場合も、同様のエラーメッセージが表示されました。

おわりに

今回はOCIコンソールから、BaseDBのGrid InfrastructureおよびOracle Databaseを、19cから23aiにアップグレードしてみました。

アップグレードは、既存のBaseDB構成を維持したまま非常にシンプルな工程で23aiのBaseDBを作り出せる点が長所だと思いました。
23aiの検証環境を作成方法として検討してみてはいかがでしょうか。

最後までお読みいただき、ありがとうございました。

前編は (1/2) アップグレードの概要説明~Grid Infrastructureアップグレードです!

Oracle 23aiの各種記事はこちら

お問い合わせはこちら

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早8年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!
最新技術情報や資格情報をチェックしたいアナタ!毎日遊びに来てください。きっとお役に立てます。