先日は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は新機能の使用に制約があるため可能な範囲で新機能を確認していきたいと思います。