ぱと隊長日誌

ブログ運用もエンジニアとしての生き方も模索中

Oracle Database 12c Release 1 の機能評価用検証環境 構築手順

目的

Oracle Database 12c Release 1 の機能評価用検証環境 構築手順を説明します。
Oracleからガイドが提供されていますので、補足する形で説明します。
利用するガイドはこちら。
Oracle VM VirtualBox を用いた Oracle Database 12c Release 1 環境の構築
以下、文中での「ガイド」はこのガイドを指します。

環境

VM上でOracle Linux 6を稼働させ、Oracle Database 12c Release 1をインストールします。

Oracle Database 12c Release 1が要求する要件は以下を参照ください。
Oracle Databaseのインストールのチェックリスト
1.1 Oracle Databaseインストールのハードウェアのチェックリスト
1.2 LinuxでのOracle Databaseインストールのオペレーティング・システムのチェックリスト

ハードウェア

今回はHyper-V(ガイドに従ってVirtualBoxを利用しても、その他でも構いません)で以下のVMを作成しました。
メモリ:2048MB
ハードディスク:50GB
ネットワークアダプタ:外部ネットワーク接続可能な仮想スイッチ

VirtualBox以外を利用する場合、ガイドのVM作成手順を一部読み替えて実施する必要がありますので、ご注意ください。

ソフトウェア

Oracle Linux 6 Update 5 for x86_64 (64bit)
Oracle Database 12c Release 1 (Linux x86-64) (現時点でダウンロード可能な12.1.0.2.0を利用)

ガイドの補足

基本的にはガイドの通り進めれば問題ありません(環境の違いなどは適宜読み替えてください)。以下、補足の必要な箇所を説明します。

補足する手順を実施することにより、以下の点が改善されます。
Oracle Pre-Install RPMパッケージを11gR2用ではなく12cR1用を適用
・前提条件チェックの失敗回避
・インベントリの作成失敗回避
・ガイドと実際の画面差異の補足

1)
『4.2 Oracle Linux 6 のインストール』の『12. ソフトウェアの設定(P40)』で「後でカスタマイズ」を選択します。これにより、『13. ソフトウェアのカスタマイズ(P40)』をスキップします。
これはOracle Pre-Install RPMパッケージを11gR2用ではなく、12cR1用を適用するためです。

2)
『5.1 oracle-validated-verify の実行(P58)』を実行する前に、ネットワーク接続のセットアップを『5.4 ネットワーク要件の確認(P63)』に従って行います。その後は3)の作業を続けます。

3)
『5.1 oracle-validated-verify の実行(P58)』で以下のコマンドを実行します。

# yum -y install oracle-rdbms-server-12cR1-preinstall.x86_64
# yum update
# export LANG=C
# oracle-rdbms-server-12cR1-preinstall-verify

なお、Oracle Databaseのインストレーション・ガイドでは"oracle-rdbms-server-12cR1-preinstall-verify"の実行について触れられていません。ですが、今回参照しているガイドでは手順に含まれています。そのため、ガイドに従って実行しています。

参考:インストレーション・ガイドの該当箇所
Oracle Preinstallation RPMによるOracle Linuxの自動構成

4)
『5.2 OS グループ、OS ユーザー、およびディレクトリの作成(P59)』のOSユーザーコマンド作成は以下のコマンドで実行してください。

【ガイド】
# usermod -u 54321 -g oinstall -G dba,backupdba,dgdba,kmdba oracle
【修正版】
# usermod -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba oracle

ガイドの通りに実行すると、『前提条件チェックの実行(P77)』で失敗します。その場合は前提条件チェック画面の「修正及び再チェック」を利用し、画面の指示に従って修正可能です。

5)
『5.2 OS グループ、OS ユーザー、およびディレクトリの作成(P59)』にて、『oracleユーザーに対して設定されている初期パスワードは oracle です。』とありますが、実際には異なるようです(何が設定されているかは不明ですが、少なくとも oracle ではなかった)。
ガイドに従ってoracleユーザーのパスワードを変更すれば問題ありません。

6)
『5.2 OS グループ、OS ユーザー、およびディレクトリの作成(P59)』のディレクトリ作成後に、以下のコマンドも実行してください。

# mkdir -p /u01/app/oraInventory
# chown -R oracle:oinstall /u01/app/oraInventory
# chmod -R 775 /u01/app/oraInventory

ガイドの通りに実行すると、『インベントリの作成(P75)』で失敗します。その場合は上記コマンドを実行することでインストールを続行できます。

参考:インベントリ作成の失敗例
以下のエラーメッセージが表示される。
[INS-32031]インベントリの場所が無効です。
[INS-32033]中央インベントリの場所は書込み不可です。
f:id:pato_taityo:20141013124525p:plain

参考:インベントリの作成失敗について
Not just a DBA !!!: INS-32031 INS-32033 while installing 11.2.0.3 on linux

7)
『6.1 Oracle Database のインストール』で『3. Software Update のダウンロード』の記載がありますが、手順通り進める限り、この手順はスキップされました。

8)
『6.2 DBCAを利用したデータベースの作成(P80)』で『8. ネットワーク構成(P84)』のキャプチャと説明が実際と異なるようです。
入力は以下の通り行ってください。
新規リスナーの作成:チェックする
リスナー名:LISTENER
リスナー・ポート:1521

参考:キャプチャと設定例
f:id:pato_taityo:20141013124545p:plain

9)
『7.1. 環境変数の設定』で環境変数の設定後、oracleユーザで以下のコマンドを実行してください。

[oracle@node1 ~]$ mkdir /home/oracle/tmp

これを行わないと、Oracle LinuxGUIのログイン画面でoracleユーザでのログインができなくなります。なお、CUIであればログイン可能です。

参考:エラーダイアログ
以下のエラーメッセージが表示される。
設定サーバに問題があるようです
(/usr/libexec/gconf-sanity-check2 がステータス 256 で終了しました)
f:id:pato_taityo:20141013124558p:plain

10)
『7.2. リスナーとデータベースの稼働確認(P91)』でSHOW PDBSコマンドを使ってPDBのOPEN MODEを確認していますが、SYSDBA権限がないと失敗するのでご注意ください。

SQL> connect system
パスワードを入力してください:
接続されました。
SQL> show pdbs;
SP2-0382: SHOW PDBSコマンドは使用できません。
SQL>
SQL> connect system as sysdba
パスワードを入力してください:
接続されました。
SQL> show pdbs;

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

リスナー

リスナーの起動

原則として、Oracle Database ではリスナーを起動した後、インスタンスを起動します。
参考:Oracle Database インスタンスとリスナーの起動順序 - ぱと隊長日誌

[oracle@node1 ~]$ lsnrctl start

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 08-11月-2014 08:48:39

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

/u01/app/oracle/product/12.1.0/dbhome_1/bin/tnslsnrを起動しています。お待ちくだ さい...

TNSLSNR for Linux: Version 12.1.0.2.0 - Production
システム・パラメータ・ファイルは/u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.oraです。
ログ・メッセージを/u01/app/oracle/diag/tnslsnr/node1/listener/alert/log.xmlに書 き込みました。
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.oracle12c.jp)(PORT=1521)))
リスニングしています: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.oracle12c.jp)(PORT=1521)))に接続中
リスナーのステータス
------------------------
別名                      LISTENER
バージョン                TNSLSNR for Linux: Version 12.1.0.2.0 - Production
開始日                    08-11月-2014 08:48:39
稼働時間                  0 日 0 時間 0 分 0 秒
トレース・レベル          off
セキュリティ              ON: Local OS Authentication
SNMP                      OFF
パラメータ・ファイル      /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
ログ・ファイル            /u01/app/oracle/diag/tnslsnr/node1/listener/alert/log.xml
リスニング・エンドポイントのサマリー...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=node1.oracle12c.jp)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
リスナーはサービスをサポートしていません。
コマンドは正常に終了しました。
[oracle@node1 ~]$

リスナーの停止

[oracle@node1 ~]$ lsnrctl stop

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 08-11月-2014 08:50:27

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

(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.oracle12c.jp)(PORT=1521)))に接続中
コマンドは正常に終了しました。
[oracle@node1 ~]$

プラガブルデータベースの起動・停止

プラガブルデータベース(PDB)はCDBとPDBの起動・停止が分離されています。そのため、CDB→PDBの順で起動することになります(停止時は逆)。

インスタンスを起動し、データベースをマウントしてオープンする

[oracle@node1 ~]$ sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on 月 10月 13 11:05:06 2014

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

SQL> CONNECT / AS SYSDBA;
アイドル・インスタンスに接続しました。
SQL> STARTUP;
ORACLEインスタンスが起動しました。

Total System Global Area  796917760 bytes
Fixed Size                  2929448 bytes
Variable Size             545262808 bytes
Database Buffers          243269632 bytes
Redo Buffers                5455872 bytes
データベースがマウントされました。
データベースがオープンされました。
SQL>

PDBの起動

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           MOUNTED
         4 PDB2                           MOUNTED
SQL>
SQL> ALTER PLUGGABLE DATABASE ALL OPEN;

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

SQL> SHOW PDBS;

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO
         4 PDB2                           READ WRITE NO
SQL>

CDBインスタンスの停止

SQL> SHUTDOWN IMMEDIATE;
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
SQL>

更新情報

2014/11/08

  • リスナーの章を追記しました