前回までのあらすじ

みなさん、こんにちは。新人若井さんが出来先輩の助けを借りながら、アマゾン ウェブ サービス(以下AWS)上でOracle DBを作成しようと言うこの企画。前回は追加したディスクのフォーマットを行いました。

フォーマットは少し時間がかかるので一旦休憩に行った二人が帰ってきました。

  • 若井 あらた (わかいあらた)
    新人エンジニアで、今回データベース課に配属となった。本物語の主人公。



  • 出来 益代 (でき ますよ)
    中堅エンジニアで、データベース課に所属する。年齢は不詳。仕事熱心で、比較的後輩の面倒見もよいお姉さまタイプ。



※ この物語はフィクションであり、登場する団体・人物などの名称はすべて架空のものです

Oracleインストールの要件確認

出来「若井君、コーヒーはブラックなんだね。」
若井「はい。あまり甘いのは苦手でして。」
出来「ふーん。私は甘いの好きよ。今度ケーキおごってね。今日のコーヒーのお礼に。」
若井「え、あ、はい。。。(コーヒーより高いと思う。。。)」
出来「ところで、フォーマットの状況はどう?」
若井「あ、もう、終わってるみたいですね。」
出来「そう。じゃあ、作業を続けましょうか。追加したディスクにパーティションを作成して、『ext4』の形式でフォーマットする。ここまで完了ね。これで、マウントが出来る状態になっているから、早速マウントしてみましょう。」
若井「はい。分かりました。」
出来「まずは『/u01』と言うディレクトリを作って、ここにマウントしましょう。」

[root@ip-172-31-24-192 /]# mkdir /u01
 [root@ip-172-31-24-192 /]# mount /dev/xvdk1 /u01
[root@ip-172-31-24-192 /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvde1            6.0G  2.8G  3.2G  47% /
none                  1.9G     0  1.9G   0% /dev/shm
/dev/xvdk1             20G  172M   19G   1% /u01
[root@ip-172-31-24-192 /]#

若井「出来ました。『/etc/fstab』に追記して、再起動した後も自動でマウントするように設定しておきますね。」
出来「よろしく。」

[root@ip-172-31-24-192 /]# cat /etc/fstab
LABEL=_/   /         ext4    defaults        1 1
/dev/xvdb  /mnt      ext3    defaults,context=system_u:object_r:usr_t:s0      0 0
none       /proc     proc    defaults        0 0
none       /sys      sysfs   defaults        0 0
none       /dev/pts  devpts  gid=5,mode=620  0 0
none       /dev/shm  tmpfs   defaults        0 0
/dev/xvdj1 swap      swap    defaults        0 0
/dev/xvdk1 /u01      ext4    defaults        0 0   ←←←この行を追記
[root@ip-172-31-24-192 /]#

若井「これでOKですね。」
出来「そうね、これで、ディスク周りのOracleのインストール要件はクリアね。」
若井「次の要件は、、、(第4回参照)ディスプレイの要件ですね。」
出来「そうね。一旦VNCで接続してみて。」
若井「そう言えば、何回か再起動しているから、VNCは停止してしまっているな。まず、VNCの自動起動を有効化してもいいですか?」
出来「もちろん。あと、iptablesも再起動で有効化されてしまっていると思うの。これも、自動機動は無効化してしまいましょうか。」
若井「了解しました。」

[root@ip-172-31-24-192 .vnc]# chkconfig vncserver on
[root@ip-172-31-24-192 .vnc]# chkconfig iptables off
[root@ip-172-31-24-192 .vnc]# service vncserver start
Starting VNC server: 1:root
New 'ip-172-31-24-192:1 (root)' desktop is ip-172-31-24-192:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ip-172-31-24-192:1.log

                                                           [  OK  ]
[root@ip-172-31-24-192 .vnc]# service iptables stop
iptables: Flushing firewall rules:                         [  OK  ]
iptables: Setting chains to policy ACCEPT: filter          [  OK  ]
iptables: Unloading modules:                               [  OK  ]
[root@ip-172-31-24-192 .vnc]#

出来「じゃあ、VNCにログインしてみて。ログインが完了したら、『System』→『Preferences』→『Display』の順番にクリックして。」

出来「解像度を『1024×768』に設定して、『Apply』をクリックすればOKよ。念の為にVNC側の設定も変更しておきましょう。」

[root@ip-172-31-24-192 .vnc]# vi /etc/sysconfig/vncservers
[root@ip-172-31-24-192 .vnc]# cat /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own).  You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted!  For a secure way of using VNC, see this URL:
# http://kbase.redhat.com/faq/docs/DOC-7028

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel.  See the "-via" option in the
# `man vncviewer' manual page.

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"       ←←←「1024x768」に変更
[root@ip-172-31-24-192 .vnc]#

若井「出来ました。VNCを再起動します。」

root@ip-172-31-24-192 .vnc]# service vncserver restart
Shutting down VNC server: 1:root                           [  OK  ]
Starting VNC server: 1:root
New 'ip-172-31-24-192:1 (root)' desktop is ip-172-31-24-192:1

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ip-172-31-24-192:1.log

                                                           [  OK  ]
[root@ip-172-31-24-192 .vnc]#

若井「これで、ディスプレイの要件もクリアですね。」
出来「そうね。次はカーネル要件の確認よ。カーネルはLinuxオペレーティングシステムにおいて、ハードウェアやアプリケーションを制御する為に必要な機能が備えられたプログラムよ。もちろんOracleだってカーネルの機能を利用してサーバー上で動作するわけだから対応しているバージョンのカーネルじゃないとOracleは正常に動作しないわ。『uname』と言うコマンドで確認が可能よ。」
若井「『uname』コマンドか。」

[root@ip-172-31-24-192 ~]# uname -r
2.6.32-358.14.1.el6.x86_64

若井「要件よりも最新のバージョンですね。」
出来「はい。じゃあこれでカーネルバージョンの確認も終りね。じゃあ、最後にパッケージ要件の確認に入りましょう。」
若井「パッケージですか。」
出来「そう。パッケージ。Linuxが採用しているアプリケーションの配布形態の事よ。「プログラム本体」とそれが動作する為の「ライブラリ」、「設定ファイル」なんかをひとかたまりにしているの。Oracleでも幾つかのパッケージを利用して動作しているんだけど、この必要なパッケージが、まさしくパッケージ要件といわけ。パッケージの有無はもちろんだけど、バージョンもしっかり確認しないといけないわよ。」
若井「なるほど。パッケージの存在確認とバージョンの確認か。」
出来「確認の方法は幾つかあるけど、今回はyumコマンドで確認しましょう。」
若井「それなら、VNCサーバーを設定する時に利用しましたよ。」
出来「そうね。それを使って、要件から一つずつ確認するわよ。」

※yum list installed | grep <調べたいパッケージ名>
[root@ip-172-31-24-192 ~]# yum list installed | grep binutils
binutils.x86_64             2.20.51.0.2-5.36.el6
[root@ip-172-31-24-192 ~]#

若井「んー。インストールされていないパッケージが結構ありますね。」
出来「入っていないパッケージは入れてあげてね。」
若井「分かりました。」

※[root@ip-172-31-24-192 ~]# yum installe <インストールしたいパッケージ名>
[root@ip-172-31-24-192 ~]# yum installe compat-libcap1.x86_64
Loaded plugins: amazon-id, refresh-packagekit, rhui-lb, security
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package compat-libcap1.x86_64 0:1.10-1 will be installed
--> Finished Dependency Resolution

~~~~~~~割愛~~~~~~~
Total download size: 17 k
Installed size: 29 k
Is this ok [y/N]: y
Downloading Packages:
~~~~~~~割愛~~~~~~~
Complete!

若井「すべてパッケージのインストールが完了しました。」
出来「念の為に、もう一回全部のパッケージが入ったか確認しておいてね。」
若井「了解です。」

カタカタカタカタ・・・ターン。

若井「出来ました!」
出来「よし、これで、ソフトウェア要件の確認は終了ね。今はほとんどがOracleをインストールする為に必要な最低条件で作っているけど、本当のプロジェクトでは、ディスクの容量はどれくらい必要か、メモリはどれくらい必要か、CPUはどれくらい処理できなければならないかをきっちりと計算し決めていく必要があるわ。これをサイジングと言うんだけど、このサイジングを元に設定していくものよ。ただし、今回の設定で基本的な設定の方法は網羅出来ているはずだから、今までの所はよーく覚えておくようにね。」
若井「うーん。結構盛り沢山だったからなぁー。」
出来「弱音を吐いてどうするの。まだまだ、作業は続くわよ。次からはOracleデータベースのインストール前の設定よ。このインストール前の設定まで完了すれば、実はOracleデータベースはほぼインストールまでできたようなものだから、気合入れて頑張りなさい。」
若井「は、はい!!」

という事で、今回は終了します。次回からインストール前のOSの設定です。なかなかOracleインストールまで進みませんが、読者の皆様も是非諦めずに実施してみてください。

執筆者紹介

山口 正寛(YAMAGUCHI Masahiro)

株式会社システムサポート 東京支社インフラソリューション事業部所属。

同社が得意とするOracleデータベースのエンジニアで、大規模DWHのDB管理者、DBコンサルタントなどを経験。また、同社の無料セミナーの企画にも携わる。

今回、機器がなくても気軽に環境を構築し検証したいというかた向けに AWS上でOracleデータベースを構築することをストーリー調で記載する。 尚、同社はAWSを用いたクラウド工房 powered by AWSというプロダクトがあり、産学官連携でも活用している。