fswiki から移行してみた。
前提条件の確認
- 下記のパッケージがインストールされ、下記のバージョン以降であることを確認する。
# rpm -qa --queryformat "%{name}-%{version}-%{release}.%{arch}\n" | grep <パッケージ名> binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 gcc-4.1.1 gcc-c++-4.1.1 glibc-2.5-12 glibc-2.5-12 (32 bit) glibc-common-2.5 glibc-devel-2.5 glibc-devel-2.5-12 (32 bit) libaio-0.3.106 libaio-0.3.106 (32 bit) libaio-devel-0.3.106 libgcc-4.1.1 libgcc-4.1.1 (32 bit) libstdc++-4.1.1 libstdc++-4.1.1 (32 bit) libstdc++-devel 4.1.1 make-3.81 sysstat-7.0.0
- /etc/sysctl.conf に下記の通り設定されていることを確認する。
# less etc/sysctl.conf (現在の設定値は sysctl -A で確認できる) fs.file-max = 153600 kernel.shmall = 2097152 kernel.shmmax = 8589934592 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 262144 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_wmem = 262144 262144 262144 net.ipv4.tcp_rmem = 4194304 4194304 4194304
- /etc/pam.d/login に下記の通り記述されていることを確認する。
# less /etc/pam.d/login
session required pam_limits.so
- IPアドレスが正しく設定されていることを確認する。
# ifconfig -a
- /etc/hosts に Public Network、Private Network、Virtual Network の設定が記述されていることを確認する。
- グループが正しく設定されていることを確認する。
# less /etc/group
- ユーザが正しく設定されていることを確認する。
# less /etc/passwd
OS設定
OSユーザ・グループ作成
- OSグループ作成
# groupadd -g 501 dba # groupadd -g 503 asmadmin # groupadd -g 504 oper # groupadd -g 502 oinstall
- OSユーザ作成
# useradd oracle -d /home/oracle -g oinstall -G dba,asmadmin -u 501 # useradd crs -d /home/crs -g oinstall -G dba -u 502 # useradd asm -d /home/asm -g oinstall -G asmadmin -u 503
# chmod 750 /home/oracle # chmod 750 /home/asm # chmod 750 /home/crs
rawデバイスの設定
- パーティションの作成
# fdisk /dev/emcpoera
- rawdeviceのバインド設定
# vi /etc/udev/rules.d/60-raw.rules ACTION=="add",KERNEL=="sda1",RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add",KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add",KERNEL=="sdc1",RUN+="/bin/raw /dev/raw/raw3 %N" ACTION=="add",KERNEL=="sdd1",RUN+="/bin/raw /dev/raw/raw4 %N" ACTION=="add",KERNEL=="sde1",RUN+="/bin/raw /dev/raw/raw5 %N" ACTION=="add",KERNEL=="sdf1",RUN+="/bin/raw /dev/raw/raw6 %N" ACTION=="add",KERNEL=="sdg1",RUN+="/bin/raw /dev/raw/raw7 %N" ACTION=="add",KERNEL=="raw[1-2]",OWNER="root",GROUP="oinstall",MODE="0640" ACTION=="add",KERNEL=="raw[3-5]",OWNER="crs",GROUP="oinstall",MODE="0640" ACTION=="add",KERNEL=="raw[6-7]",OWNER="asm",GROUP="oinstall",MODE="0660"
- rawデバイスを作成する
# start_udev # raw -qa # ls -l /dev/raw
- ディスクフォーマット(1ノードのみで実行する)
# fdisk -l # dd if=/dev/zero of=/dev/raw/raw1 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw2 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw3 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw4 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw5 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw6 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw7 bs=1024k count=100 # dd if=/dev/zero of=/dev/raw/raw8 bs=1024k count=100
# mkdir -p -m 755 /oracle # mkdir -p -m 775 /oracle/app # mkdir -p -m 755 /oracle/app/crs # mkdir -p /oracle/app/oracle/product/11.1.0 # chmod -R 775 /oracle/app/oracle # chown root:oinstall /oracle /oracle/app # chown crs:oinstall /oracle/app/crs # chown -R oracle:oinstall /oracle/app/oracle # ls -l / # tree -fpug /oracle
Oracle Clusterware のインストール
事前確認
# mount -t iso9660 /dev/cdrom /mnt/cdrom $ su - crs $ /mnt/cdrom/clusterware/cluvfy/runcluvfy.sh stage -pre crsinst -n db001,db002,db003 # umount /mnt/cdrom
インストールする
- ターミナルからインストーラを起動する
# mount -t iso9660 /dev/cdrom /mnt/cdrom # su - crs $ /mnt/cdrom/runInstaller
- インベントリ・ディレクトリと資格証明の指定
インベントリ・ディレクトリ:/oracle/app/oraInventory オペレーティング・システム・グループ名:oinstall
- ホーム詳細の指定
名前: OraCrs11g_crs パス: /oracle/app/crs 製品の言語: 日本語がなければ追加する
- クラスタ構成の指定
クラスタ名:crs クラスタ・ノード: db001 db001-int db001v db002 db002-int db002v db003 db003-int db003v
- ネットワーク・インターフェースの使用方法の指定
eth0 192.168.1.0 パブリック eth1 10.1.125.0 プライベート
- OCRの場所の指定
OCR構成:通常の冗長性 OCRの場所の指定:/dev/raw/raw1 OCRミラーの場所の指定:/dev/raw/raw2
- 投票ディスクの場所の指定
投票ディスクの構成:通常の冗長性 投票ディスクの場所:/dev/raw/raw3 投票ディスク1の場所:/dev/raw/raw4 投票ディスク2の場所:/dev/raw/raw5
- 全ノードで orainstRoot.sh を実行する
# /oracle/app/oraInventory/orainstRoot.sh
- 全ノードで root.sh を実行する
# /oracle/app/crs/root.sh
事後確認
- CRSスタックの確認
$ ps -ef | grep d.bin | grep -v grep crs 11766 11765 0 14:09 ? 00:00:00 /oracle/app/crs/bin/evmd.bin root 11866 10997 1 14:09 ? 00:00:04 /oracle/app/crs/bin/crsd.bin reboot crs 12423 11948 1 14:09 ? 00:00:08 /oracle/app/crs/bin/ocssd.bin
- CRSスタックの自動起動確認
$ tail -3 /etc/inittab h1:35:respawn:/etc/init.d/init.evmd run >/dev/null 2>&1 </dev/null h2:35:respawn:/etc/init.d/init.cssd fatal >/dev/null 2>&1 </dev/null h3:35:respawn:/etc/init.d/init.crsd run >/dev/null 2>&1 </dev/null
- ノード・アプリケーションの確認
$ ./srvctl status nodeapps -n db001 VIPはノードで実行中です: db001 GSDはノードで実行中です: db001 PRKO-2016 : ノードのリスナーの条件チェックでエラーが発生しました: db001 ONSデーモンはノードで実行中です: db001 $ ./srvctl status nodeapps -n db002 VIPはノードで実行中です: db002 GSDはノードで実行中です: db002 PRKO-2016 : ノードのリスナーの条件チェックでエラーが発生しました: db002 ONSデーモンはノードで実行中です: db002 $ ./srvctl status nodeapps -n db003 VIPはノードで実行中です: db003 GSDはノードで実行中です: db003 PRKO-2016 : ノードのリスナーの条件チェックでエラーが発生しました: db003 ONSデーモンはノードで実行中です: db003
$ ./crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....001.gsd application ONLINE ONLINE db001
ora....001.ons application ONLINE ONLINE db001
ora....001.vip application ONLINE ONLINE db001
ora....002.gsd application ONLINE ONLINE db002
ora....002.ons application ONLINE ONLINE db002
ora....002.vip application ONLINE ONLINE db002
ora....003.gsd application ONLINE ONLINE db003
ora....003.ons application ONLINE ONLINE db003
ora....003.vip application ONLINE ONLINE db003
$ /ORA_MEDIA/database/source/crs/Disk1/runcluvfy.sh stage -post crsinst -n db001,db002,db003
- バックアップ
$ su - # cd /oracle/app/crs # cp -p root.sh root.sh.bak # dd if=/dev/raw/raw3 of=/home/oracle/vdisk.bak # cd /home/oracle # gzip vdisk.bak # /oracle/app/crs/bin/ocrconfig -export /home/oracle/ocrdisk.bak
ASMのインストール
事前確認
$ su - asm $ /ORA_MEDIA/database/source/crs/Disk1/runcluvfy.sh stage -pre dbinst -n db001,db002,db003
- 環境変数 NLS_LANG の language を American になっていることを確認する
$ su - asm $ echo $NLS_LANG
インストール
- インストーラを起動する
$ su - asm $ /ORA_MEDIA/database/source/db/Disk1/runInstaller ※[Oracle Net Configuration Assistant]が表示されたら[取消]を選択する。
- インストールする製品の選択:Oracle Database11g
- インストール・タイプの選択:カスタム
- 製品言語に日本語追加:日本語
- インストールの場所:
- ハードウェアのクラスタ・インストール・モードの指定:クラスタ・インストール(全ノードを選択する)
- 使用可能な製品コンポーネント:
- 権限付きオペレーティング・システム・グループ:
- データベース管理者グループ:oinstall
- データベース・オペレータグループ:oinstall
- ASM管理者グループ:asmadmin
- データベースの作成:自動ストレージ管理の構成
- orainstRoot.sh を実行する
# /oracle/app/oracle/product/11.1.0/asm_1/orainstRoot.sh
- root.sh を実行する
# /oracle/app/oracle/product/11.1.0/asm_1/root.sh
事後確認
# su - crs $ crs_stat -t
事後作業
# chmod -R 775 /oracle/app/oracle/diag ← 全ノード # chmod -R 775 /oracle/app/oracle/cfgtoollogs ← dbcaを使用したノードのみ
データベースソフトウェアのインストール
事前作業
$ su - oracle $ /ORA_MEDIA/database/source/crs/Disk1/runcluvfy.sh stage -pre dbinst -n db001,db002,db003
- 環境変数 NLS_LANG の language が American になっていることを確認する
$ su - oracle $ echo $NLS_LANG
インストールする
$ su - oracle
$ /ORA_MEDIA/database/source/db/Disk1/runInstaller
- インストールする製品の選択:Oracle Database11g
- インストール・タイプの選択:カスタム
- 製品の言語:日本語がなければ追加する
- インストールの場所:
- ハードウェアのクラスタ・インストール・モードの指定:クラスタ・インストール(全ノードを選択する)
- 使用可能な製品コンポーネント:
- 権限付きオペレーティング・システム・グループ:
- データベース管理者グループ:dba
- データベース・オペレータグループ:dba
- ASM管理者グループ:dba
- データベースの作成:データベース・ソフトウェアのみインストール
- root.sh を実行する
# /oracle/app/oracle/product/11.1.0/db_1/root.sh
PSR11.1.0.7の適用
事前作業
- Oracle Time Zone Definitions の確認(1ノードのみで実施)
# su - oracle $ cd /oracle/app/oracle/product/11.1.0/db_1/dbs $ cp -pi init.ora init.ora.tmp $ vi init.ora.tmp ※shared_pool_size = 189582540に変更 $ sqlplus / as sysdba SQL> startup nomount pfile=/oracle/app/oracle/product/11.1.0/db_1/dbs/init.ora.tmp SQL> select version from v$timezone_file; VERSION ---------- 4 ← 「4」であればOK SQL> shutdown immedaite
- 事前実行スクリプト(全ノードで実施)
# /oracle/app/crs/install/preupdate.sh
- ノード・アプリケーションを停止する
$ srvctl stop nodeapps -n db001 $ srvctl stop nodeapps -n db002 $ srvctl stop nodeapps -n db003 $ crs_stat -t
- CRS を停止する(全ノードで実行する)
# /oracle/app/crs/bin/crsctl stop crs
- パッチ適用前バックアップの取得
# mkdir -p /dba/backup/11.1.0.6/db001 # tar cvzfp /dba/backup/11.1.0.6/db001/CRS_HOME.tar.gz /oracle/app/crs # tar cvzfp /dba/backup/11.1.0.6/db001/ORACLE_HOME.tar.gz /oracle/app/oracle/product/11.1.0/db_1 # tar cvzfp /dba/backup/11.1.0.6/db001/ASM_HOME.tar.gz /oracle/app/oracle/product/11.1.0/asm_1
# mkdir -p /dba/backup/11.1.0.6/db002 # tar cvzfp /dba/backup/11.1.0.6/db002/CRS_HOME.tar.gz /oracle/app/crs # tar cvzfp /dba/backup/11.1.0.6/db002/ORACLE_HOME.tar.gz /oracle/app/oracle/product/11.1.0/db_1 # tar cvzfp /dba/backup/11.1.0.6/db002/ASM_HOME.tar.gz /oracle/app/oracle/product/11.1.0/asm_1
# mkdir -p /dba/backup/11.1.0.6/db003 # tar cvzfp /dba/backup/11.1.0.6/db003/CRS_HOME.tar.gz /oracle/app/crs # tar cvzfp /dba/backup/11.1.0.6/db003/ORACLE_HOME.tar.gz /oracle/app/oracle/product/11.1.0/db_1 # tar cvzfp /dba/backup/11.1.0.6/db003/ASM_HOME.tar.gz /oracle/app/oracle/product/11.1.0/asm_1
crsのパッチ適用
- インストーラを起動する
# su - crs
$ /ORA_MEDIA/Disk1/runInstaller
- [インストールされた製品]クリックし、CRSのホーム名を確認する
- ホームの詳細の指定:OraCrs11g_crs を選択し、パスが「/oracle/app/crs」であることを確認する。
- 電子メール・アドレスが指定されていません:はい
- ハードウェアのクラスタ・インストール・モードの指定:クラスタ・インストール(全ノード選択されている事を確認する)
- root111.sh を実行する(全ノードで実行する)
# /oracle/app/crs/bin/crsctl stop crs # /oracle/app/crs/install/root111.sh
ASMのパッチ適用
- ノード・アプリケーションを停止する
$ srvctl stop nodeapps -n db001 $ srvctl stop nodeapps -n db002 $ srvctl stop nodeapps -n db003 $ crs_stat -t
- CRS を停止する(全ノードで実行する)
# /oracle/app/crs/bin/crsctl stop crs
- インストーラを起動する
# su - asm
$ /ORA_MEDIA/Disk1/runInstaller
- [インストールされた製品]クリックし、ASMのホーム名を確認する
- ホームの詳細の指定:OraCrs11g_asm を選択し、パスが「/oracle/app/oracle/product/11.1.0/asm_1」であることを確認する。
- 電子メール・アドレスが指定されていません:はい
- ハードウェアのクラスタ・インストール・モードの指定:クラスタ・インストール(全ノード選択されている事を確認する)
- root.sh を実行する(全ノードで実行する)
# /oracle/app/oracle/product/11.1.0/asm_1/root.sh
データベースソフトウェアのパッチ適用
- ノード・アプリケーションを停止する
# su - oracle $ srvctl stop nodeapps -n db001 $ srvctl stop nodeapps -n db002 $ srvctl stop nodeapps -n db003 $ crs_stat -t
- CRS を停止する(全ノードで実行する)
# su - # /oracle/app/crs/bin/crsctl stop crs
- インストーラを起動する
# su - oracle
$ /ORA_MEDIA/Disk1/runInstaller
- [インストールされた製品]クリックし、データベースソフトウェアのホーム名を確認する
- ホームの詳細の指定:OraCrs11g_asm を選択し、パスが「/oracle/app/oracle/product/11.1.0/db_1」であることを確認する。
- 電子メール・アドレスが指定されていません:はい
- ハードウェアのクラスタ・インストール・モードの指定:クラスタ・インストール(全ノード選択されている事を確認する)
- root.sh を実行する(全ノードで実行する)
# /oracle/app/oracle/product/11.1.0/db_1/root.sh
パッチインストール後の各種バックアップ
- ノード・アプリケーションの停止
$ su - oracle $ srvctl stop nodeapps -n db001 $ srvctl stop nodeapps -n doc1eb002 $ srvctl stop nodeapps -n db003 $ crs_stat -t $ su - # /oracle/app/crs/bin/crsctl stop crs
- バックアップの取得
# mkdir -p dba/backup/11.1.0.7 # cd /dba/backup/11.1.0.7 # mkdir db001 db002 db003 # tar cvzfp /dba/backup/11.1.0.7/db001/CRS_HOME.tar.gz /oracle/app/crs # tar cvzfp /dba/backup/11.1.0.7/db002/ORACLE_HOME.tar.gz /oracle/app/oracle/product/11.1.0/db_1 # tar cvzfp /dba/backup/11.1.0.7/db003/ASM_HOME.tar.gz /oracle/app/oracle/product/11.1.0/asm_1
- 全ノード再起動
# reboot
ASMディスクグループの作成
- 環境変数 NLS_LANG の language が American になっていることを確認する
# su - asm $ echo $NLS_LANG
- CRSが起動していることを確認する
$ crs_stat -t
- dbca を起動する
$ dbca
- 実行する操作を選択して下さい:自動ストレージ管理の構成
- ASMディスク・グループを管理するノードを選択して下さい:全ノードを選択する
- ASMパラメータ(下記以外はデフォルト)
- diagnostic_dest:/dba/logs
- sysパスワード:********
- 新規ASMインスタンスに使用するパラメータ・ファイルのタイプを選択します:初期化パラメータ・ファイルを作成
- 初期化パラメータ・ファイル名:{ORACLE_HOME}/dbs/initasm.ora
- 使用可能なディスクグループ:
- ディスク・グループ名:DG_DATA
- 冗長性:外部
- メンバー・ディスクの選択:/dev/raw/raw6、/dev/raw/raw7
- 「ASMディスク・グループのページ...」:DG_DATA 10228 10091 外部 MOUNTED:(3/3) ← 全ノードマウントされているのでOK
- 「...接頭辞LISTENERを持つポート1521のリスナーをノード[db001、db002、db003]に自動的に作成しますか。...」:[はい]
- ASMインスタンスとリスナーがONLINEであることを確認する。
$ crs_stat -t
データベースの作成
- asm_home の listener.ora にシンボリックリンクをはる
# su - oracle $ ln -s /oracle/app/oracle/product/11.1.0/asm_1/network/admin/listener.ora \ /oracle/app/oracle/product/11.1.0/db_1/network/admin/listener.ora
- 環境変数 NLS_LANG の language が American になっていることを確認する
# su - oracle $ echo $NLS_LANG
- CRSが起動していることを確認する
$ crs_stat -t
- dbca を起動する
$ dbca
- どのようなタイプのデータベースを作成または管理するかを選択してください:Oracle Real Application Clustersデータベース
- 実行する操作を選択してください:データベースの作成
- ノードの選択:全て選択
- データベース・テンプレート:カスタム・データベース
- グローバル・データベース名:db01
- SID接頭辞:db01
- データベースの資格証明:すべてのアカウントに同じ管理パスワードを使用
- 記憶域オプション:自動ストレージ管理(ASM)
- ASMディスク・グループ:DG_DATA
- データベース・ファイルの位置:
- データベース・コンポーネント
- 初期化パラメータ:
- 初期化パラメータ
- diagnostic_dest:/dba/logs
- セキュリティ設定:11gより前のデフォルトのセキュリティ設定に戻す
- データベース記憶域:表領域>USERS>大型ファイル表領域の使用:チェック
- 作成オプション:
サービス作成
$ srvctl add service -d db01 -s SRV_1 -r db012 -a db013 $ srvctl add service -d db01 -s SRV_2 -r db012,db013 -a db011 $ srvctl add service -d db01 -s SRV_3 -r db013 -a db011
- サービス起動
$ srvctl start service -d db01