Oracle DB12c R2をDBUAを使って18cへバージョンアップする

先日はOracle DB 18c(18.3)の新規インストールを実施してみました。

今回はOracle DB 12c R2のシングル構成のデータベースをDBUAでアップグレードしていきたいと思います。

新規インストールではなくOracle Masterの振り返りも兼ねてDBUAを使用して確認したいと思います。

実際のバージョンアップでは使用しない事もあれば、バージョンアップではなく環境を移行することも多いです。

という前置きはさておき実際に実施していきたいと思います。

スポンサーリンク

Oracle DB 18cへDBUAでアップグレード

DB側の準備

まずはデータベースをマウントモードで起動します。

[oracle@oracle12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on Tue Aug 14 20:15:29 2018

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

Connected to an idle instance.

SQL> 
SQL> 
SQL> startup mount
ORACLE instance started.

Total System Global Area 1258291200 bytes
Fixed Size                  2923920 bytes
Variable Size             452985456 bytes
Database Buffers          788529152 bytes
Redo Buffers               13852672 bytes
Database mounted.
SQL> 

マウントモードで起動後に、一度アーカイブ・ログ・モードを解除します。

SQL> alter database noarchivelog;

Database altered.

SQL> 

次にデータベースをオープンしておきます。

DBUAでのアップグレード自体はオープン状態でも実施できますが、アップグレード中はインスタンスへ接続が出来なくなります。

SQL> alter database open
  2  ;

Database altered.

SQL> 

今回は以下の2つのPDBも一緒にアップグレードします。

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED
         4 TESTPDB                        MOUNTED
SQL> 
SQL> 

次にrecyclebinを空にしておきます。

purgeで解放します。

SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> purge user_recyclebin;

Recyclebin purged.

SQL> 

18cのORACLE_HOMEを作成する

18c用のORACLE_HOMEを作成します。

mkdir -p /u01/app/oracle/product/18.0.0/dbhome_1

OTNから18cオンプレ版をダウンロードして、サーバに配置します。

配置したZIPファイルを18c用のORACLE_HOMEへ解凍します。

[oracle@oracle12c tmp]$ unzip LINUX.X64_180000_db_home.zip -d /u01/app/oracle/product/18.0.0/dbhome_1

解凍が完了したら18c用のORACLE_HOMEディレクトリに移動してrunInstallerを実行しOUIを起動します。

[oracle@oracle12c tmp]$ cd /u01/app/oracle/product/18.0.0/dbhome_1
[oracle@oracle12c dbhome_1]$ ./runInstaller

インストールに関しては前回紹介した記事と内容は一緒になります。

インストールプロセスが開始しました。

rootスクリプトは一つのみ実行を求められるので実行していきます。

実行結果になります。

[root@oracle12c dbhome_1]# ./root.sh
Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/18.0.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) 
[n]: 
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n) 
[n]: 

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now ? yes|[no] : 

Oracle Trace File Analyzer (TFA - Non Daemon Mode) is available at :
    /u01/app/oracle/product/18.0.0/dbhome_1/suptools/tfa/release/tfa_home/bin/tfactl

Note :
1. tfactl will use TFA Daemon Mode if TFA already running in Daemon Mode and user has access to TFA
2. tfactl will configure TFA Non Daemon Mode only if user has no access to TFA Daemon mode or TFA Daemon mode is not installed

OR

Oracle Trace File Analyzer (TFA - Daemon Mode) can be installed by running this script :
    /u01/app/oracle/product/18.0.0/dbhome_1/suptools/tfa/release/tfa_home/install/roottfa.sh

[root@oracle12c dbhome_1]# 

インストールが完了したので、DBUAを実行していきます。

DBUAを実行する

dbuaを実行していきます。

[oracle@oracle12c dbhome_1]$ /u01/app/oracle/product/18.0.0/dbhome_1/bin
[oracle@oracle12c dbhome_1]$ ./dbua

正常に起動すると対象のデータベースが表示されます。

SYSDBAユーザのアカウントとパスワードを入力します。

次に対象となるPDBも表示されます。

パッチやアップグレードはCDB単位での適用になるのですべてのPDBにバージョンアップが適用されます。

事前チェックのプロセスが走ります。

初回のみ少し時間がかかります。

選択行ですが、recyclebinが空ではないので、エラーになっています。

recyclebinはPDBにも存在しており、クローズ状態でも保持されているためPDBをオープンして解放します。

PDBを全てオープンします。

SQL> alter pluggable database all open;

Pluggable database altered.

SQL> 

ORCLPDBへ接続して解放します。

SQL> alter session set container=ORCLPDB;

Session altered.

SQL> 
SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> purge user_recyclebin;

Recyclebin purged.

SQL> 

TESTPDBに接続して解放します。

SQL> alter session set container=TESTPDB;

Session altered.

SQL> 
SQL> purge dba_recyclebin;

DBA Recyclebin purged.

SQL> purge user_recyclebin;

Recyclebin purged.

SQL> 

PDBのrecyclebinを解放してエラーが消えました。

一番上はAPEXは手動更新しか出来ないのでwarninngになっております。

今回は使用していないので無視して続行します。

Yesで先に進みます。

正常に進むと、各種アップグレードにあたり選択があります。

デフォルトのまま進みます。

バックアップの使用について選択します。

上はフラッシュバックと保証付きリストアポイントになるので、初期化パラメータなどで使用できる状態でなければエラーになります。

今回はRMANの最新バックアップで進めていきます。

リスナーの構成になります。

こちらで検出されていればNetcaで再構成しなくてもアップグレード後にリスナー経由で接続が出来ます。

EMの構成について確認します。

12cとは変わらずにExpressはポート5500がデフォルトです。

アップグレード実施前のサマリーです。

問題が無ければ完了をクリックして実行します。

正常にアップグレードが開始されました。

SSD環境ですがそこそこ時間がかかります。

正常にアップグレードが終了しました。

Intel NUCのローカルSSDでも1時間以上要しました。

それではアップデート後の状態を確認していきたいと思います。

アップデート後の処理

oracleユーザのbash_profileを変更します。

ORACLE_HOMEを修正しておきます。
ORACLE_BASEに変更はありません。

#ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome
ORACLE_HOME=/u01/app/oracle/product/18.0.0/dbhome_1

また/etc/oratabファイルを確認しておきます。

アップグレード後は正常にパスが18cのものになっています。

[oracle@oracle12c ~]$ cat /etc/oratab 
#



# This file is used by ORACLE utilities.  It is created by root.sh
# and updated by either Database Configuration Assistant while creating
# a database or ASM Configuration Assistant while creating ASM instance.

# A colon, ':', is used as the field terminator.  A new line terminates
# the entry.  Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
#   $ORACLE_SID:$ORACLE_HOME:<N|Y>:
#
# The first and second fields are the system identifier and home
# directory of the database respectively.  The third field indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/u01/app/oracle/product/18.0.0/dbhome_1:N

接続確認

それでは接続確認をしていきたいと思います。

SIDに変更はないので、先ほど修正した.bash_profileを読み込みなおしてsqlplusで接続していきます。

[oracle@oracle12c ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 - Production on Sat Aug 18 13:38:04 2018
Version 18.3.0.0.0

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


Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.3.0.0.0

SQL> 
SQL> 

正常に接続が出来ました。

リスナーの状態も見ていきます。

[oracle@oracle12c ~]$ lsnrctl status

LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 18-AUG-2018 13:40:18

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle12c)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 18.0.0.0.0 - Production
Start Date                18-AUG-2018 13:39:07
Uptime                    0 days 0 hr. 1 min. 11 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/18.0.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle12c/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle12c)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracle12c)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "67da3353eab1248de053140ba8c03984" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "67db028c119a39cfe053140ba8c08dee" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "6b755eb3c5bb172fe0531403a8c09797" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "testpdb" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle12c ~]$ 

正常にサービスが登録されています。

最後にEM Expressに接続します。

EM Expressも正常にアクセスが出来ました。

これでアップグレード完了としたいと思います。

オンプレ版の18cは新機能の使用に制約があるため可能な範囲で新機能を確認していきたいと思います。

スポンサーリンク

フォローする

合わせて読んでみる

良ければ他の記事もどうぞ!



スポンサーリンク