oracle

仮想マシンで作ってみた。
cpuは1cpu/1coreでメモリーは8GBとして、HDDはOSに1台(16GB)、
ORACLEのシステムに1台(8GB)、ORACLEのデータに2台(16GB)を用意してみた。
OS部分のHDDは/bootに512MB、スワップに8GB、残り7.6GBを/(root)に割り当てた。
ホスト名は o.chaperone.jp として固定IPを付与している。
OSはCentOS6で「CentOS-6.4-x86_64-minimal.iso」を使用。
2013y08m24d_025852264.png
X環境なしで作ってます。
目的のORACLEのSIDAERSとして、
ORACLE_BASE/opt/oracle
ORACLE_HOME/opt/oracle/product/11.2/dbhome_1とする

下準備

minimalでOS環境を作った後、selinuxは「SELINUX=disabled」として、iptablesは停止。

[root@o ~]# vi /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
[root@o ~]# chkconfig iptables off
[root@o ~]# chkconfig ip6tables off
[root@o ~]# 
[root@o ~]# fdisk /dev/sd[bcd]                      *パーティション作成
[root@o ~]# mkfs  /dev/sd[bcd]1                     *フォーマット
[root@o ~]# vi /etc/fstab
 (中略)
/dev/sdb1   /opt  ext4 defaults 0 0
/dev/sdc1   /o1   ext4 defaults 0 0
/dev/sdd1   /o2   ext4 defaults 0 0
[root@o ~]# mkdir /o1 /o2; mount -a
[root@o ~]# yum update; reboot                      *一旦再起動

ユーザ作成

ORACLEを稼働させるユーザ・グループの作成。groupaddguseraddのオプション-rはsystem accountとして作成させるため。あまり意味はない。

[root@o ~]# groupadd -r oinstall
[root@o ~]# groupadd -r dba
[root@o ~]# groupadd -r oracle
[root@o ~]# groupadd -r oper
[root@o ~]# useradd -r -g oinstall -G dba,oper -d /home/oracle -m oracle
[root@o ~]# vi ~oracle/.bash_profile                                       *環境変数を追加
 (中略)
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_UNQNAME=AERS                                                 *OracleEnterpriseManager向け
[root@o ~]# mkdir /opt/oracle; chown oracle:oinstall /opt/oracle; chmod -R 755 /opt/oracle

*注意:ユーザoracleのホームディレクトリ(/home/oracle)とは違う場所にoracleアプリケーションをインストールします

ORACLE11gのアプリ用意

今回はダウンロードした評価版。zipファイル2枚組。これを/opt/srcに配置させ、解凍

[root@o ~]# mkdir /opt/src
[root@o ~]# (copy linux.x64_11gR2_database_1[2]of2.zip to /opt/src)
[root@o ~]# ls /opt/src
linux.x64_11gR2_database_1of2.zip  linux.x64_11gR2_database_2of2.zip
[root@o ~]# cd /opt/src
[root@o src]# unzip -q linux.x64_11gR2_database_1of2.zip               *yum install unzipが必要だった
[root@o src]# unzip -q linux.x64_11gR2_database_2of2.zip
[root@o src]# rm linux.x64_11gR2_database_*
[root@o src]# ls
database
[root@o src]# chown -R oracle:oinstall ./database

inventoryファイルの作成

[root@o ~]# cat <<__EOF__> /etc/oraInst.loc
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
__EOF__
[root@o ~]#
[root@o ~]# chown oracle:oinstall /etc/oraInst.loc
[root@o ~]# chmod 664 /etc/oraInst.loc

ORACLEデータ配置場所の準備

[root@o ~]# mkdir -p /o1/oradata; chown oracle:oinstall /o1/oradata
[root@o ~]# mkdir -p /o2/oradata; chown oracle:oinstall /o2/oradata

必須ソフトウエアのインストール

[root@o ~]# yum groupinstall "Development tools"
[root@o ~]# yum install compat-libstdc++-33 elfutils-libelf-devel elfutils-libelf-devel-static libaio-devel \
 sysstat unixODBC unixODBC-devel \
 libaio.i686 libaio-devel.i686 glibc.i686 compat-libstdc++-33.i686 libgcc.i686 \
 libstdc++.i686 unixODBC.i686 unixODBC-devel.i686 wget
[root@o ~]#

あとkshのpdkshが必要なのだがcentos6では提供されていない。なので、rpm rebuldにて作成

[root@o ~]# wget http://vault.centos.org/5.9/os/SRPMS/pdksh-5.2.14-37.el5_8.1.src.rpm
[root@o ~]# rpmbuild --rebuild pdksh-5.2.14-37.el5_8.1.src.rpm
[root@o ~]# yum localinstall rpmbuild/RPMS/x86_64/pdksh-5.2.14-37.el6.1.x86_64.rpm

OS調整

oracleユーザのリソース制限を調整として、/etc/security/limits.confに下記を追加

[root@o ~]# vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

kernelパラメータの調整として、/etc/sysctl.confに下記を追加

[root@o ~]# vi /etc/sysctl.conf
kernel.sem = 250 32000 100 128                *「semmsl semmns semopm semmni」の順。従来値 kernel.sem = 250 32000 32 128
fs.file-max = 6815744                         *従来値 fs.file-max = 798843  (798,843 から 6,815,744 へ)
net.ipv4.ip_local_port_range = 9000 65500     *使えるport範囲。従来値 net.ipv4.ip_local_port_range = 32768 61000
net.core.rmem_default = 262144                *受信ソケットバッファの既定サイズ 従来値 net.core.rmem_default = 229376
net.core.rmem_max =    4194304                *受信ソケットバッファの最大サイズ 従来値 net.core.rmem_max =     229376
net.core.wmem_default = 262144                *送信ソケットバッファの既定サイズ 従来値 net.core.wmem_default = 229376
net.core.wmem_max =    1048576                *送信ソケットバッファの最大サイズ 従来値 net.core.wmem_max =     229376
fs.aio-max-nr  =       1048576                *非同期IOの最大値                 従来値 fs.aio-max-nr =          65536

インストール用レスポンスファイルを調整

ここはX環境、GUI環境なしでORACLEのインストールを試みている。っで、GUIなしにインストールするには
GUI画面内で問われる値を予め書いたレスポンスファイルを用意して、コマンドラインでインストールする形になる。

[root@o ~]# su - oracle
[oracle@o ~]$ cp /opt/src/database/response/*.rsp /tmp
[oracle@o ~]$ vi /tmp/db_install.rsp

/tmp/db_install.rspファイルの調整箇所
oracle.install.option=INSTALL_DB_SWONLY   *ORACLEアプリケーションのみのインストールします
ORACLE_HOSTNAME=o.chaperone.jp
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/oracle/oraInventory
SELECTED_LANGUAGES=ja,en
ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
ORACLE_BASE=/opt/oracle
oracle.install.db.InstallEdition=SE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=     *不要なコンポーネントは削除
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true

インストール

[root@o ~]# su - oracle
[oracle@o ~]$ /opt/src/database/runInstaller -silent -responseFile /tmp/db_install.rsp

実行後すぐにプロンプトが返ってくるので失敗かな?っと思うのだが、間もなく
/opt/oracle/oraInventory/logs/にあるログを見てねと言われる。それを読むとインストール要件的に不足している箇所を知らせてくれる。これを読んで再調整すればいいのかと。だが、libaioでi386版を入れてねと言われるのだが、i686として32bit版は入れている。実際のファイルを読んで確認しているのではなく、yumのコンテンツカタログを見ているのかも。。。
ともあれ、最終的には下記のような指示がでる。

次の構成スクリプトは、rootユーザーとして実行する必要があります。
 #!/bin/sh
 #実行するrootスクリプト
 
/opt/oracle/product/11.2/dbhome_1/root.sh
構成スクリプトを実行するには、次のようにします:
         1. ターミナル・ウィンドウを開きます
         2. rootとしてログインします
         3. スクリプトを実行します
         4. このウィンドウに戻り、[Enter]キーを押して続行します
 
Successfully Setup Software.

この文書の通り、rootでスクリプトを実行してインストール作業は完了。

[root@o ~]# /opt/oracle/product/11.2/dbhome_1/root.sh
Check /opt/oracle/product/11.2/dbhome_1/install/root_o.chaperone.jp_2013-08-24_11-25-56.log for the output of root script
[root@o ~]#

次に、リスナー設定、およびインスタンスの作成になる。

リスナー設定(listener.ora)

netcaコマンドを使ってGUIから設定した方がいいかも。
一応コマンドラインからも設定ができてレスポンスファイル /tmp/netca.rsp を調整して、、が調整せず、そのままでも行ける。

[oracle@o ~]$ grep -i '=' /tmp/netca.rsp |grep -v '#'
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}
[oracle@o ~]$
[oracle@o ~]$ ls -CF $ORACLE_HOME/network/admin/
samples/ shrept.lst
[oracle@o ~]$

そして、netcaコマンドを使ってリスナー作成と共に実行。

[oracle@o ~]$ netca /silent /responsefile /tmp/netca.rsp      *-silent -responsefileではなく/silent /responsefileであるとに留意
 
コマンドライン引数の解析:
    パラメータ "silent" = true
    パラメータ "responsefile" = /tmp/netca.rsp
コマンドライン引数の解析が終了しました。
Oracle Net Servicesの構成:
プロファイルの構成が完了しました。
Oracle Net Listenerの起動:
    リスナーの制御の実行:
      /opt/oracle/product/11.2/dbhome_1/bin/lsnrctl start LISTENER
    リスナーの制御が完了しました。
    リスナーの起動に成功しました。
リスナーの構成が完了しました。
Oracle Net Servicesの構成に成功しました。終了コードは次のとおりです。0
[oracle@o ~]$
[oracle@o ~]$ ls -CF $ORACLE_HOME/network/admin/
listener.ora  samples/  shrept.lst  sqlnet.ora
[oracle@o ~]$

となる。

一方で、 listener.ora ファイルを直接書いて起動させてもOK

[oracle@o ~]$ cat <<__EOF__> $ORACLE_HOME/network/admin/listener.ora
LISTENER =
 (ADDRESS_LIST=
  (ADDRESS=(PROTOCOL=tcp)(HOST=o)(PORT=1521))
  (ADDRESS=(PROTOCOL=ipc)(KEY=extproc))
 )
__EOF__

注意:listener.oraはインデントに注目。インデントが少ないとリスナーが起動しない
っでリスナーを動かす。

[oracle@o ~]$ lsnrctl start
 
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 24-AUG-2013 17:53:49
 
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
Starting /opt/oracle/product/11.2/dbhome_1/bin/tnslsnr: please wait...
 
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
System parameter file is /opt/oracle/product/11.2/dbhome_1/network/admin/listener.ora
Log messages written to /opt/oracle/diag/tnslsnr/o/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=o.chaperone.jp)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
 
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=o)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                24-AUG-2013 17:53:50
Uptime                    0 days 0 hr. 0 min. 1 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/11.2/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/diag/tnslsnr/o/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=o.chaperone.jp)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
The listener supports no services
The command completed successfully
[oracle@o ~]$

ORACLEインスタンスの構築

最後にデータベースを作る訳であるが、簡単にdbcaでGUI画面からの方が楽。Xサーバが利用できるのなら、X画面を飛ばして実行すべきかも。
でも、やっぱりここではコマンドラインから実施を試みる。
調整するファイルはテンプレートファイルのみ。レスポンスファイル/tmp/dbca.rspも調整すべきかもしれないが、コマンドラインで指定可能なので使わなかった。

そして、データベース作成へ

[oracle@o ~]$ dbca -silent -createDatabase -templateName AERS.dbc \
-gdbname AERS -sid AERS -responseFile NO_VALUE \
-characterSet AL32UTF8 -nationalCharacterSet AL16UTF16  \
-memoryPercentage 30 -emConfiguration LOCAL \
-sysPassword SYS \
-systemPassword SYSTEM \
-dbsnmpPassword DBSNMP \
-sysmanPassword SYSMAN
データベース・ファイルのコピー中
1%完了
3%完了
37%完了
Oracleインスタンスの作成および起動中
40%完了
45%完了
50%完了
55%完了
56%完了
60%完了
62%完了
データベース作成の完了
66%完了
70%完了
73%完了
85%完了
96%完了
100%完了
詳細はログ・ファイル"/opt/oracle/cfgtoollogs/dbca/AERS/AERS.log"を参照してください。
[oracle@o ~]$
[oracle@o ~]$ tail /opt/oracle/cfgtoollogs/dbca/AERS/AERS.log
DBCA_PROGRESS : 85%
DBCA_PROGRESS : 96%
DBCA_PROGRESS : 100%
データベースの作成が完了しました。詳細は、次の場所にあるログ・ファイルを参照してください:
/opt/oracle/cfgtoollogs/dbca/AERS。
データベース情報:
グローバル・データベース名:AERS
システム識別子(SID):AERSDatabase ControlのURLはhttps://o.chaperone.jp:1158/emです
 
管理リポジトリは、Enterprise Managerデータが暗号化されるセキュア・モードで配置されています。
暗号化キーはファイル/opt/oracle/product/11.2/dbhome_1/o.chaperone.jp_AERS/sysman/config/emkey.oraに配置されています。
このファイルが失われると暗号化データを使用できなくなるため 、このファイルは必ずバックアップしてください。
[oracle@o ~]$

自動起動

まず、/etc/oratabを調整

[oracle@o ~]$ vi /etc/oratab
AERS:/opt/oracle/product/11.2/dbhome_1:Y
[oracle@o ~]$

として、、、、あれぇ?起動スクリプトが見当たらない.....
/database/doc/server.112/e10839/strt_stp.htmにそれらしきことはあるのだが、、、基本databaseのみリスナーやOEMについて言及はない。
なので自作

[root@o ~]# vi /etc/init.d/oratab
#!/bin/bash
#
# dbora       Startup script for the ORACLE database
#
# chkconfig: 35 85 15
#
 
export ORACLE_HOME=/opt/oracle/product/11.2/dbhome_1
ORA_OWNER=oracle
 
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
        echo "Oracle startup: cannot start"
        exit
fi
 
case "$1" in
        start)
                # Start the Oracle databases:
                echo "start database"
                su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
                # Start emctl
                echo ""
                echo "start OEM"
                su - $ORA_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
 
                touch /var/lock/subsys/dbora
                ;;
 
        stop)
                # Stop the Oracle databases:
                echo "stop database"
                su - $ORA_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
                # Stop emctl
                echo ""
                echo "stop OEM"
                su - $ORA_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
 
                rm -f /var/lock/subsys/dbora
                ;;
        restart)
                $0 stop
                $0 start
                ;;   
        status)
                if [ -f /var/lock/subsys/dbora ]; then
                echo $0 started.
                else
                echo $0 stopped.
                fi
                ;;
        *)
                echo "usage: dbora {start|stop|restart|status}"
                exit 1
esac
 
exit 0
[root@o ~]#
[root@o ~]# chmod 755 /etc/init.d/dbora
[root@o ~]# chkconfig --add dbora
[root@o ~]# chkconfig --list dbora
dbora           0:off   1:off   2:off   3:on    4:off   5:on    6:off
[root@o ~]#

っでためしに実行

[root@o ~]# /etc/init.d/dbora start
start database
Processing Database instance "AERS": log file /opt/oracle/product/11.2/dbhome_1/startup.log
 
start OEM
Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://o.chaperone.jp:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control .......... started.
------------------------------------------------------------------
Logs are generated in directory /opt/oracle/product/11.2/dbhome_1/o.chaperone.jp_AERS/sysman/log
[root@o ~]#
最新の60件
2026-05-16 2026-05-13 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-04 2026-05-03 2026-05-02 2026-04-30 2026-04-29 2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14 2026-03-13 2026-03-07 2026-03-06 2026-03-04 2026-03-02 2026-02-26 2026-02-24 2026-02-21 2026-02-18 2026-02-17 2026-02-16 2026-02-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-08 (火) 22:38:55