WinにVirtualBoxでOracle DB 環境構築! Solaris に Oracle Database を インストールする


Oracle Universal Installer の起動

Oracle Universal Installer を使って oracleユーザ でインストールします。

root@Solaris:~# su - oracle
Oracle Corporation    SunOS 5.11    11.3    September 2015

oracle に シェルのユーザを切り替えます。

oracle@Solaris:/mnt/sf_oracle/database$ pwd
/mnt/sf_oracle/database
oracle@Solaris:/mnt/sf_oracle/database$ ls
install       rpm           sshsetup      welcome.html
response      runInstaller  stage
oracle@Solaris:/mnt/sf_oracle/database$ 

Oracle Universal Installer の runInstaller の場所を確認します。これがインストーラーです。

oracle@Solaris:/mnt/sf_oracle/database$ ./runInstaller 
Oracle Universal Installerを起動中です...

一時領域の確認中: 180MBを超えている必要があります.   実際 7252MB    問題なし
スワップ領域の確認中: 150MBを超えている必要があります.   実際 7822MB    問題なし
モニターの確認中: 少なくとも256色表示するよう設定されている必要があります.    実際 16777216    問題なし
Oracle Universal Installerの起動を準備中 /tmp/OraInstall2017-09-16_10-51-52AM. お待ちください...

「./runInstaller 」コマンドを叩きます。インストールのためのチェックが始まり、Oracle Universal Installer が立ち上がります。

solalisoracle_032

Oracle Universal Installer が無事立ち上がりました。

oracle@Solaris:/oracle$ find /oracle
/oracle
/oracle/app
/oracle/app/oraInventory
/oracle/app/oracle
/oracle/oradata
oracle@Solaris:/oracle$

このとき、作成したOracleベース・ディレクトリ内をみてみます。環境変数「ORACLE_BASE」を設定しておくと(※指定しなければデフォルト /export/home/oracle/app/oracle)、Oracleインベントリ・ディレクトリ(※今回は、/oracle/app/oraInventory
)とOracleソフトウェアディレクトリ(※今回は、/oracle/app/oracle)が自動生成されてます。

Oracle Databaseのインストール

ウィザードに従って進めます。

solalisoracle_033
まずは、セキュリティアップデートの設定。今回はVM上で勉強用なので、メールアドレス未入力、通知受け取らないで次へ。

solalisoracle_034
インストールオプションの設定です。データベース・ソフトウェアさえ一応していれば、データベースの追加や削除ができるのですが、今回はデータベースも一緒に作成します。
ということで「データベースの作成および構成」を選択して次へ
solalisoracle_035
システム・クラスの設定です。勉強用なのでまずは最小限の構成で。「デスクトップ・クラス」を選択して次へ

solalisoracle_036
標準インストール構成です。環境変数「ORACLE_BASE」を設定しておくと Oracleベースとソフトウェアのパスはベースを基準に初期値として設定されています。
データベース・ファイルの位置は、Oracleデータファイル・ディレクトリを作成したパスを指定します。自分は以下のようにしました。

■ Oracleベース
/oracle/app/oracle
■ ソフトウェアの場所
/oracle/app/oracle/product/12.1.0/dbhome_1
■ データベース・ファイルの位置
/oracle/oradata
■ データエースのエディション
Enterprise Edition (6.3GB)
■ キャラセット
Unicode(AL32UTF8)
■ OSDBグループ
dba
■ グローバル・データベース名
orcl
■ 管理パスワード・パスワードの確認
pass1234
■ コンテナ・データベースとして作成
チェックしない

「コンテナ・データベース」は Oracle12c からの機能らしいです。コンテナするとスキーマ作成したときに作業が増えました。SQLやPLを勉強したいだけなら別にコンテナにする必要はないと思います。今回はチェックを外しました。

※グローバル・データベース名が作成するデータベースの識別子になります。

solalisoracle_037
イベントり・ディレクトリの作成です。環境変数「ORACLE_BASE」を設定しておくと パスはベースを基準に初期値として設定されています。設定して次へ

solalisoracle_038
サマリー画面です。この画面が表示される前に、前提条件のチェックがあるのですが、問題なければサマリーが表示されます。問題があれば、チェック画面で満たしてない条件の一覧が表示されるので、条件に合うように修正します。
サマリー画面で設定を確認し、OKならば「インストール」ボタンをクリックして開始!
solalisoracle_039
インストールが開始しました。しらばく待ちます。

solalisoracle_040
インストールの途中に、「構成スクリプトの実行」ダイアログが表示されます。二つのスクリプトを rootで実行してくださいとのこと。
※指示されたとおりにターミナルでスクリプトを実行しますが、この間にOracle Universal Installer (OUI) を閉じないでください。

root@Solaris:~# /oracle/app/oraInventory/orainstRoot.sh
権限を変更中 /oracle/app/oraInventory.
グループの読取り/書込み権限を追加中。
全ユーザーの読取り/書込み/実行権限を削除中。

グループ名の変更 /oracle/app/oraInventory 宛先 oinstall.
スクリプトの実行が完了しました。
root@Solaris:~# 

1つ目のスクリプトを実行しました。

root@Solaris:~# /oracle/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation.

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

Enter the full pathname of the local bin directory: [/usr/local/bin]: 
Creating /usr/local/bin directory...
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /var/opt/oracle/oratab file...
Entries will be added to the /var/opt/oracle/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.
root@Solaris:~# 

2つ目のスクリプトを実行しました。
Oracle Universal Installer (OUI)に戻って、「構成スクリプトの実行」ダイアログの OKボタンをクリックします。インストールが再開されます。

※ここで環境変数に登録されるのは一時的設定のようです。サーバを再起動したら環境変数の登録が消えていました。この後に永続的に環境変数登録する処理を行います。「ORACLE_OWNER」と「ORACLE_HOME」の情報をメモっておきます。

solalisoracle_041
今回はインストールオプションで「データベースの作成および構成」を選択したので、データベースのソフトウェアのインストールが終わったらデータベース作成が始まります。

solalisoracle_042
無事、データベースの作成が完了できました。OKボタンでダイアログを閉じます。

※データベース設定情報は、この後データベースに接続するときに必要なのでメモしておきます。

■グローバルデータベース名
orcl
■システム識別子
orcl
■サーバパラメータのファイル名
/oracle/app/oracle/product/12.1.0/dbhome_1/dbs/spfileorcl.ora

solalisoracle_043
終了画面です。これでOracle Database のインストールが完了できました。閉じるボタンをクリックするとターミナルに戻ります。

環境変数 ORACLE_OWNER と ORACLE_HOME

この作用は既に環境変数 ORACLE_OWNER と ORACLE_HOMEが設定されている場合は省略できます。

root@Solaris:/# env | grep -i ORACLE
ORACLE_BASE=/oracle/app/oracle
root@Solaris:/# 

環境変数に ORACLE_OWNER や ORACLE_HOME がない・・・ Oracle Universal Installer (OUI) でインストールを指示どおりしていれば設定されているはずなのだが。
とりあえず ORACLE_OWNER や ORACLE_HOME の環境変数を設定します。
※ORACLE_OWNER や ORACLE_HOMEの値は、上記「構成スクリプトの実行」結果参照

root@Solaris:/# echo "export ORACLE_OWNER=oracle" >> /etc/profile
root@Solaris:/# echo "export ORACLE_HOME=/oracle/app/oracle/product/12.1.0/dbhome_1" >> /etc/profile
root@Solaris:/# 

/etc/profile に環境変数を追加しました。

root@Solaris:/# source /etc/profile
access control disabled, clients can connect from any host
root@Solaris:/#

環境変数を反映します。

root@Solaris:/# env | grep -i ORACLE
ORACLE_OWNER=oracle
ORACLE_BASE=/oracle/app/oracle
ORACLE_HOME=/oracle/app/oracle/product/12.1.0/dbhome_1
root@Solaris:/#

環境変数のリストに追加分が反映されていることが確認できました。

環境変数 ORACLE_SID

Oracle DB を起動するために 作成したデータベースの識別子(SID)を環境変数に設定します。
Oracle Universal Installer (OUI) でグローバル・データベース名として登録した値が 基本 SID になっています。OUI 登録完了時にも システム識別子(SID) が確認できました。

root@Solaris:~# echo "export ORACLE_SID=orcl" >> /etc/profile
root@Solaris:~#

/etc/profile に環境変数を追加しました。

root@Solaris:/# source /etc/profile
access control disabled, clients can connect from any host
root@Solaris:/#

環境変数を反映します。

root@Solaris:/# env | grep -i ORACLE_SID
ORACLE_SID=orcl
root@Solaris:/#

環境変数のリストに追加分が反映されていることが確認できました。

※Oracle DB 起動時に Oracle初期化パラメータファイルを読みにいきます。今回の設定では「/oracle/app/oracle/product/12.1.0/dbhome_1/dbs/」にファイルがあります。Oracle Universal Installer (OUI) でSIDに「orcl」と入力したので、spfileorcl.ora とファイルが生成されています。読み込むファイルの優先順位は以下のとおりです。
ファイルが存在しなかったり、ファイルの内容が不正ならばOracle DB起動時にエラーになります。

  • 1.spfile<<環境変数SID>>.ora
  • 2.spfile.ora
  • 3.init<<環境変数SID>>.ora
  • 4.init.ora

※ 大文字・小文字は区分されるため、ORACLE_SIDに「ORCL」と設定するとエラーになります。
※ tnsnames.ora の ネット・サービス名 ではありません。

SQL*Plus のパスを通す

パス付で実行ファイルを指定してもいいのですが、SQL*Plusはよく使うため毎回パス指定は面倒なのでパスを通します。
通すパスは以下の通りで、ユーザ oracle で指定します。

PATH=$PATH:$ORACLE_HOME/bin"

root@Solaris:~# su - oracle
Oracle Corporation    SunOS 5.11    11.3    September 2015

oracle に シェルのユーザを切り替えます。

oracle@Solaris:~$ echo 'export PATH=$PATH:$ORACLE_HOME/bin' >> ~/.profile
oracle@Solaris:~$

環境変数を追加しました。

oracle@Solaris:~$ source ~/.profile 
oracle@Solaris:~$

環境変数を反映します。

oracle@Solaris:~$ sqlplus -v
SQL*Plus: Release 12.1.0.2.0 Production
oracle@Solaris:~$

SQL*Plus コマンドもパスなしで使えるようになりました。

Oracle DB 接続

oracle@Solaris:/$ sqlplus /nolog
SQL*Plus: Release 12.1.0.2.0 Production on Sat Oct 28 15:11:59 2017
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
SQL>

SQLに接続しました。

SQL> conn / as sysdba
Connected.
SQL> 

シェルユーザが oracle なので OS の oracleユーザでOS認証接続をします。oracleユーザが Oracle DBへの接続許可があれば Oracle DB に接続できます。

SQL> startup
ORACLE instance started.

Total System Global Area 1577058304 bytes
Fixed Size		    3004088 bytes
Variable Size		  503318856 bytes
Database Buffers	 1056964608 bytes
Redo Buffers		   13770752 bytes
Database mounted.
Database opened.
SQL>

環境変数 ORACLE_SID と それに対応する初期化パラメータファイルから インスタンスが起動します。これでOracle DB の操作ができるようになりました。

Oracle DB 切断

SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 

DBが切断できました。

Solaris シャットダウン

solaris-oracle-20171028-01
ターミナルを閉じます。
GUI画面の システム>シャットダウン をクリックします。これをせずにホストOS をシャットダウンするといきなり主電源を落とした状態と同じになるので、一応ゲストOSも正規の方法でシャットダウンしておきます。

これで Oracle DB 環境の基本部分はできたのですが、このままでは Solaris のターミナルからしか操作できず Oracle DB の操作が非常に面倒です。この後、ホストOS の Win のクライアントツールから Oracle DB 接続する設定をしていきます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です