Oracle/ORACLE 11g RAC環境構築

VMwareWorkstation(VMware Playerでも可能と思う) で CentOS 5.10 x64 + Oracle 11gR2 での RAC環境構築になります。
GIRDとDBのインストールユーザーを同じにしたやり方はこちらのページに残してあります。(サービスは全てONLINEになることを確認済み)
※ ons(Oracle Notification Service)リモートノードへのイベント通知を行うサービス
当該ページの手順でやるとGRIDインストール後の、ora.ons(※) の 2号機が ONLINE にならなかった。(再度検証が必要)


Oracleの入手

バイナリダウンロード先(2014/09/06時点)
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

以下の3ファイルをDL
・linux.x64_11gR2_database_1of2.zip
・linux.x64_11gR2_database_2of2.zip
・linux.x64_11gR2_grid.zip

 

CnetOS5.10のHW構成

デバイス概要
メモリ2GB
プロセッサ2
ハードディスク(SCSI)30GB
NIC1ブリッジ(eth0)
NIC2ホストオンリー(eth1)


 

StarWindで、iSCSI用のDISK作成

ターゲット容量
data10GB
fra4GB

※ 作成方法はStorage参照

 

CentOS 5.10 のインストール

以下の要領で2台インストールする
VMWare Toolsもインストールしておくこと(GUIでインストールする際、解像度が足りなくて下の方にあるボタンが選択できない為)

選択するインストールパッケージ

  • デスクトップ環境
    GNOMEデスクトップ環境

  • 開発
    開発ツール
    開発ライブラリ

  • ベースシステム
    X Window System
    ベース

IPアドレスの設定

NICホスト名IPアドレスホスト名IPアドレス
eth0(パブリック)orac1.com192.168.11.21orac2.com192.168.11.22
eth1(プライベート)orac1-prv.com192.168.100.21orac2-prv.com192.168.100.22
VIP(仮想NIC)orac1-vip.com192.168.11.31orac2-vip.com192.168.11.32

パブリックは実際にOracleに接続する際に使用。プライベートはRAC間での通信のみに使用。

ユーザー作成

行わないこと

 

CentOS設定

/etc/hostsの設定

# Physical IP
192.168.11.21	orac1.com	orac1
192.168.11.22	orac2.com	orac2
# RAC-SCAN
192.168.11.23	orac-cluster-scan.com orac-cluster-scan

# Private IP
192.168.100.21	orac1-prv.com	orac1-prv
192.168.100.22	orac2-prv.com	orac2-prv

# Virtual IP
192.168.11.31	orac1-vip.com	orac1-vip
192.168.11.32	orac2-vip.com	orac2-vip

追加パッケージのインストール

mount -t iso9660 -r /dev/cdrom /mnt
cd /mnt/CentOS
rpm -ihv compat-libstdc++-33-3.2.3-61.x86_64.rpm
rpm -ihv compat-libstdc++-33-3.2.3-61.i386.rpm
rpm -ihv libaio-devel-0.3.106-5.x86_64.rpm
rpm -ihv libaio-devel-0.3.106-5.i386.rpm
rpm -ihv sysstat-7.0.2-12.el5.x86_64.rpm
rpm -ihv unixODBC-libs-2.2.11-10.el5.i386.rpm
rpm -ihv unixODBC-libs-2.2.11-10.el5.x86_64.rpm
rpm -ihv unixODBC-2.2.11-10.el5.x86_64.rpm
rpm -ihv unixODBC-2.2.11-10.el5.i386.rpm
rpm -ihv unixODBC-devel-2.2.11-10.el5.i386.rpm
rpm -ihv unixODBC-devel-2.2.11-10.el5.x86_64.rpm
rpm -ihv pdksh-5.2.14-37.el5_8.1.x86_64.rpm

ユーザーとグループ作成

groupadd -g 501 asmdba
groupadd -g 502 asmadmin
groupadd -g 503 oinstall
groupadd -g 504 dba
useradd -g oinstall -G oinstall,asmadmin,asmdba,dba grid
useradd -g oinstall -G dba,asmdba oracle

passwd grid
passwd oracle

ディレクトリ作成

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

環境変数を設定

/home/grid/.bash_profile

ORACLE_BASE=/u01/app/grid
ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_BASE ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin

/home/oracle/.bash_profile

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl1 ※ノードにより可変
export PATH=$PATH:$ORACLE_HOME/bin
export NLS_LANG=JAPANESE_JAPAN.AL32UTF8

/etc/security/limits.conf

grid  hard  nofile  65536
grid  hard  nproc  16384
oracle hard nproc 16384
oracle hard nofile 65536

/etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4294967296
kernel.shmmax = 68719476736
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
カーネルパラメータ反映
sysctl -p

セキュリティ関連

/etc/rc.d/init.d/iptables stop
chkconfig cups off
chkconfig iptables off
chkconfig ip6tables off
cat /etc/selinux/config | sed -e 's/=enforcing$/=disabled/' > /tmp/tmp; cp /tmp/tmp /etc/selinux/config

NTP設定

chkconfig ntpd on
cat /etc/sysconfig/ntpd | sed -e 's/OPTIONS=\"-u/OPTIONS=\"-x -u/' > /tmp/tmp; cp /tmp/tmp /etc/sysconfig/ntpd


 

iSCSI DISKのマウント

マウント順番を揃える為に既存のiscsiサービスを停止させておく

chkconfig iscsi off

iSCSIのマウントスクリプトを作成し設定

ターゲットの確認

iscsiadm -m discovery -t sendtargets -p [StarWindowのIP]

スクリプト作成

cd /etc/init.d
vi iscsic
※以下の内容で保存する(starwindサーバーのIPアドレスが、192.168.11.40 の場合の記述となります。必要に応じてIPアドレスを変更して下さい)
#!/bin/bash
#
# Startup script for the iscsic
# chkconfig: 12345 99 01
# description: iscsi SAN
 
RETVAL=0

start()
{
    echo -n $"target login $prog: "
    iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:win-4cmppg80s3q-data -p 192.168.11.40 --login
    iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:win-4cmppg80s3q-fra -p 192.168.11.40 --login
    echo
}

stop()
{
    echo -n $"logout $prog: "
    iscsiadm -m discovery -t sendtargets -p 192.168.11.40 | awk '{print $2}' > /tmp/iscsi_tmp.cmd

    while read line
    do
        iscsiadm -m node -T $line --logout
    done < /tmp/iscsi_tmp.cmd
    /etc/init.d/rawdevices stop

    echo
}

status()
{
    iscsiadm -m session
    echo
}


case "$1" in
    start)
            start
            ;;
    stop)
            stop
            ;;
    restart)
            stop
            start
            ;;
    status)
            status
            ;;
    *)
            echo $"Usage: $0 {start|stop|restart|status}"
            RETVAL=1
esac
exit $RETVAL

サービスに登録する

chmod 755 iscsic
chkconfig --add iscsic
service iscsic start

DISKの初期化

fdisk /dev/sdb
n ⇒ p ⇒ 1 ⇒ Enter x 2回 ⇒ w の順番で/dev/sdb〜sdeまで実行する
※DB1号機のみでOK

/etc/udev/rules.d/60-raw.rules

ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N"

/etc/udev/rules.d/61-raw-permission.rules

KERNEL=="raw1", MODE="0660", OWNER="grid", GROUP="asmadmin"
KERNEL=="raw2", MODE="0660", OWNER="grid", GROUP="asmadmin"

ここで一旦OSをリブートさせる。

DISK初期化

fdisk -l
dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=10000
dd if=/dev/zero of=/dev/raw/raw2 bs=1024k count=4000


 

Grid Infrastructureのインストール

使用ファイル

linux.x64_11gR2_grid.zip

インストールの実行

gridユーザーでGUIログインし、linux.x64_11gR2_grid.zip 解凍後 ./runInstaller を実行する

  • インストール・オプション
    クラスタ用のGrid Infrastructureのインストールおよび構成
  • インストールタイプ
    拡張インストール
  • Gridプラグ・アンド・プレイ設定
    クラスタ名:orac-cluster
    SCAN名  :orac-cluster-scan
    SCANポート:1521
    ※GNSの構成のチェックを外す
  • クラスタ・ノード編集
    パブリックホスト  仮想ホスト名
    orac1.com      orac1-vip.com
    orac2.com      orac2-vip.com
    「SSH接続」をクリック、Oracleユーザーのパスワードを入力し「設定」
    ※テスト接続に成功したら次へ

  • ネットワーク・インターフェース
    192.168.11.0 パブリック
    192.168.100.0 プライベート
    ※「ASMおよびプライベート」にするとクラスタリソースのora.asmに3つの番号が振られる(11gでは未検証。12cではASMおよびプライベートで作成実績あり)
  • 記憶域オプションの情報
    Oracle自動ストレージ管理(OracleASM)
  • ASMディスク・グループの作成
    ディスク・グループ名:DATA
    冗長性       :外部
    AUサイズ      :1MB
    候補ディスク    :10GBのRAWデバイスを選択
  • ASMパスワードの設定
    パスワード、同じパスワード使用
    ? の moreを開くと、入力可能になる
  • 障害の分散のサポート
    IPMIは使用しない
  • 権限付きオペレーティング・システム・グループ
    システムグループは デフォルトのまま(多分以下になる)
    OSDBA :asmdba
    OSOPER :oinstall
    OSASM :asmadmin
  • インストール場所の指定
    Oracleベース:/u01/app/grid
    ソフトウェア:/u01/app/11.2.0/grid

構成スクリプトの実行

/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
※ 実行ノードで終了後、リモートホストで実行する

※Oracle Cluster Verificationで失敗するが無視する。

/u01/app/11.2.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       orac1
               ONLINE  ONLINE       orac2
ora.FRA.dg
               ONLINE  ONLINE       orac1
               ONLINE  ONLINE       orac2
ora.LISTENER.lsnr
               ONLINE  ONLINE       orac1
               ONLINE  ONLINE       orac2
ora.asm
               ONLINE  ONLINE       orac1                    Started
               ONLINE  ONLINE       orac2                    Started
ora.eons
               ONLINE  ONLINE       orac1
               ONLINE  ONLINE       orac2
ora.gsd
               OFFLINE OFFLINE      orac1
               OFFLINE OFFLINE      orac2
ora.net1.network
               ONLINE  ONLINE       orac1
               ONLINE  ONLINE       orac2
ora.ons
               ONLINE  ONLINE       orac1
               ONLINE  UNKNOWN      orac2                    CHECK TIMED OUT
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       orac1
ora.oc4j
      1        OFFLINE OFFLINE
ora.orac1.vip
      1        ONLINE  ONLINE       orac1
ora.orac2.vip
      1        ONLINE  ONLINE       orac2
ora.scan1.vip
      1        ONLINE  ONLINE       orac1


 

FRAディスク追加

ASMCAの起動

grid ユーザーでログインし実行

/u01/app/11.2.0/grid/bin/asmca
※ディスクグループタブで、新規作成する


 

データベースソフトウェアインストール

使用ファイル

linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

インストール実行

oracleユーザーでGUIログインし、./runInstaller を実行する。

  • セキュリティ・アップデートの作成
    ・電子メールは空
    ・以下のチェックを外す
     セキュリティ・アップデートをMy Oracle Support経由で受け取ります
  • インストール・オプションの選択
    データベースソフトウェアのみインストール
  • Gridインストール・オプション
    Oracle Real Aplication Clustersデータベースのインストール を選択
    ノードは、すべて選択
    「SSH接続」で接続することを確認する
  • データベース・エディション
    Enterprise Edition
  • インストール場所の指定
    Oracleベース    /u01/app/oracle
    ソフトウェアの場所 /u01/app/oracle/product/11.2.0/dbhome_1
  • 権限付きオペレーティング・システム・グループ
    OSDBA :dba
    OSOPER :asmdba

構成スクリプトの実行

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh


 

データベースの作成

DBCA起動

oracleユーザーでGUIログインし実行

/u01/app/oracle/product/11.2.0/dbhome_1/bin/dbca
  • ようこそ
    Oracle Real Application Clustersデーターベース
  • 操作
    データーベースの作成
  • データベース識別子
    構成タイプ:管理者管理型
    GDB    :orcl
    SID    :orcl
    クラスタ :すべて選択
  • データベースファイルの位置
    Oracle Managed Filesの使用
    └ データベース領域 +DATA
  • 管理オプション
    EnterPriseの構成 にチェック
  • データベース・ファイルの位置
    Oracle Managed Filesの使用
    +DATA を選択
    ※パスワードは、GRIDインストール時に設定したものを入力
  • リカバリ構成
    アーカイブ化有効
    領域 +FRA
  • 初期化パラメータ
    データベース・キャラクタ・セット Unicodeを選択
    ※Enterprise Managerの起動時にエラーが発生した旨のメッセージが表示されても問題ない
     

リスナー

/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora

LISTENERS_ORCL =
  (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.21)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.22)(PORT = 1521))
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.21)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.22)(PORT = 1521))
    (LOAD_BALANCE = yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

ORCL1 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.21)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (INSTANCE_NAME = orcl1)
    )
  )

ORCL2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.11.22)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      (INSTANCE_NAME = orcl2)
    )
  )

動作確認

# crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    orac1
ora.FRA.dg     ora....up.type ONLINE    ONLINE    orac1
ora....ER.lsnr ora....er.type ONLINE    ONLINE    orac1
ora....N1.lsnr ora....er.type ONLINE    ONLINE    orac1
ora.asm        ora.asm.type   ONLINE    ONLINE    orac1
ora.eons       ora.eons.type  ONLINE    ONLINE    orac1
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE
ora....network ora....rk.type ONLINE    ONLINE    orac1
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE
ora.ons        ora.ons.type   ONLINE    ONLINE    orac1
ora....SM1.asm application    ONLINE    ONLINE    orac1
ora....C1.lsnr application    ONLINE    ONLINE    orac1
ora.orac1.gsd  application    OFFLINE   OFFLINE
ora.orac1.ons  application    ONLINE    ONLINE    orac1
ora.orac1.vip  ora....t1.type ONLINE    ONLINE    orac1
ora....SM2.asm application    ONLINE    ONLINE    orac2
ora....C2.lsnr application    ONLINE    ONLINE    orac2
ora.orac2.gsd  application    OFFLINE   OFFLINE
ora.orac2.ons  application    ONLINE    ONLINE    orac2
ora.orac2.vip  ora....t1.type ONLINE    ONLINE    orac2
ora.orcl.db    ora....se.type ONLINE    ONLINE    orac1
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    orac1

※ ora.orac2.ons が UNKNOWN になってるかも

$ sqlplus sys/<DB設定時のパス>@orcl as sysdb
SQL> select instance_name,status from v$instance;
$ emctl start dbconsole
EMへのログインは、 sys / <DB設定時のパス> SYSDBA権限
ASMへのログインは、sys / <ASM設定時のパス> ASMDBA権限

DEFAULTプロファイルのパスワード期限を無期限にする

11gから有効期限が180日で設定されるようになってるため、変更しないと色々面倒。

ALTER PROFILE "DEFAULT" LIMIT PASSWORD_LIFE_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED;

トップ   編集 凍結解除 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-09-08 (火) 17:11:13 (714d)