*[[Oracle]]/ORACLE 11g RAC環境構築 [#f92fd489] -VMwareWorkstation(VMware Playerでも可能と思う) で CentOS 5.10 x64 + Oracle 11gR2 での RAC環境構築になります。~ -GIRDとDBのインストールユーザーを同じにしたやり方は[[こちら>Oracle/Oracle_RAC11_old]]のページに残してあります。(サービスは全てONLINEになることを確認済み)~ VMwareWorkstation(VMware Playerでも可能と思う) で CentOS 5.10 x64 + Oracle 11gR2 での RAC環境構築になります。~ GIRDとDBのインストールユーザーを同じにしたやり方は[[こちら>Oracle/Oracle_RAC11_old]]のページに残してあります。(サービスは全てONLINEになることを確認済み)~ ※ ons(Oracle Notification Service)リモートノードへのイベント通知を行うサービス~ -当該ページの手順でやるとGRIDインストール後の、ora.ons(※) の 2号機が ONLINE にならなかった。(再度検証が必要)~ 当該ページの手順でやるとGRIDインストール後の、ora.ons(※) の 2号機が ONLINE にならなかった。(再度検証が必要)~ #contents ~ **Oracleの入手 [#ob133b3c] バイナリダウンロード先(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~ ~ #br **CnetOS5.10のHW構成 [#nd350a03] |BGCOLOR(#f0f8ff):''デバイス''|BGCOLOR(#f0f8ff):''概要''| |メモリ|2GB| |プロセッサ|2| |ハードディスク(SCSI)|30GB| |NIC1|ブリッジ(eth0)| |NIC2|ホストオンリー(eth1)| ~ #br **StarWindで、iSCSI用のDISK作成 [#nfa15b46] |BGCOLOR(#f0f8ff):''ターゲット''|BGCOLOR(#f0f8ff):''容量''| |data|10GB| |fra|4GB| ※ 作成方法は[[Storage]]参照~ ~ #br **CentOS 5.10 のインストール [#u7dc3507] 以下の要領で2台インストールする~ VMWare Toolsもインストールしておくこと(GUIでインストールする際、解像度が足りなくて下の方にあるボタンが選択できない為)~ ***選択するインストールパッケージ [#oa11ebdf] -デスクトップ環境~ GNOMEデスクトップ環境~ ~ -開発~ 開発ツール~ 開発ライブラリ~ ~ -ベースシステム~ X Window System~ ベース~ ~ ***IPアドレスの設定 [#sdbec5ab] |BGCOLOR(#f0f8ff):NIC|BGCOLOR(#f0f8ff):ホスト名|BGCOLOR(#f0f8ff):IPアドレス|BGCOLOR(#f0f8ff):ホスト名|BGCOLOR(#f0f8ff):IPアドレス| |eth0(パブリック)|orac1.com|192.168.11.21|orac2.com|192.168.11.22| |eth1(プライベート)|orac1-prv.com|192.168.100.21|orac2-prv.com|192.168.100.22| |VIP(仮想NIC)|orac1-vip.com|192.168.11.31|orac2-vip.com|192.168.11.32| パブリックは実際にOracleに接続する際に使用。プライベートはRAC間での通信のみに使用。~ ***ユーザー作成 [#c05354f9] 行わないこと ~ #br **CentOS設定 [#q8de8f89] ***/etc/hostsの設定 [#y51c992c] # 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 ***追加パッケージのインストール [#g58c0a7b] 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 ***ユーザーとグループ作成 [#jc149c37] 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 ***ディレクトリ作成 [#r3ef606f] 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 ***環境変数を設定 [#qc61b399] /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 [#f27a4f8f] grid hard nofile 65536 grid hard nproc 16384 oracle hard nproc 16384 oracle hard nofile 65536 ***/etc/sysctl.conf [#tb239618] 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 ***セキュリティ関連 [#v559f021] /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設定 [#q5642680] chkconfig ntpd on cat /etc/sysconfig/ntpd | sed -e 's/OPTIONS=\"-u/OPTIONS=\"-x -u/' > /tmp/tmp; cp /tmp/tmp /etc/sysconfig/ntpd ~ #br **iSCSI DISKのマウント [#fca266a7] ***マウント順番を揃える為に既存のiscsiサービスを停止させておく [#w9872c30] chkconfig iscsi off ***iSCSIのマウントスクリプトを作成し設定 [#a0440698] ターゲットの確認 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 ***サービスに登録する [#v65990cd] chmod 755 iscsic chkconfig --add iscsic service iscsic start ***DISKの初期化 [#m08ff252] fdisk /dev/sdb n ⇒ p ⇒ 1 ⇒ Enter x 2回 ⇒ w の順番で/dev/sdb〜sdeまで実行する ※DB1号機のみでOK ***/etc/udev/rules.d/60-raw.rules [#j4f1e497] 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 [#m46e5a21] KERNEL=="raw1", MODE="0660", OWNER="grid", GROUP="asmadmin" KERNEL=="raw2", MODE="0660", OWNER="grid", GROUP="asmadmin" ここで一旦OSをリブートさせる。 ~ ***DISK初期化 [#fb9c09e1] 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 ~ #br **Grid Infrastructureのインストール [#m9d61106] 使用ファイル~ linux.x64_11gR2_grid.zip ***インストールの実行 [#l1878e19] 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 ~ #br **FRAディスク追加 [#icea7c95] ***ASMCAの起動 [#oebe58b1] grid ユーザーでログインし実行 /u01/app/11.2.0/grid/bin/asmca ※ディスクグループタブで、新規作成する ~ #br **データベースソフトウェアインストール [#p6382965] 使用ファイル~ linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip ***インストール実行 [#l62482e4] 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 ~ #br **データベースの作成 [#p62a5e9f] ***DBCA起動 [#xd43e4ed] 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の起動時にエラーが発生した旨のメッセージが表示されても問題ない ~ #br **リスナー [#kc32652f] /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) ) ) **動作確認 [#nf425d85] # 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プロファイルのパスワード期限を無期限にする [#r517fe86] 11gから有効期限が180日で設定されるようになってるため、変更しないと色々面倒。~ ALTER PROFILE "DEFAULT" LIMIT PASSWORD_LIFE_TIME UNLIMITED PASSWORD_GRACE_TIME UNLIMITED;