panther De Oracle10g その5 Tweet
さて、rootユーザでの作業も終了間近、、、Macでコマンドばかり使っていると、GUIが恋しくなってくる。。。かな。
2−6)ディレクトリの作成
OFA(Optimal Flexible Architecture)に基づいて、Oracleソフトウェアをインストールするディテクトリ及び、データベースファイルを配置するディレクトリを作成します。(OFAについては、インストレーションガイドを参照してください)
本番環境では、OFAに基づいて、複数の物理ディスクや、論理ボリュームにOracleソフトウェアや、データファイル、制御ファイル、REDOログファイル、アーカイブREDOログファイルを配置するようにしますが、インストールする PowerMac G4 Cube にはディスクが1本で、パーティションが4つ作成してあるだけなので、ファイルを分散配置しても、パフォーマンスや、ディスク障害に対してはほとんど効果はありません。ただし、管理という側面からはそれなりに意味があるので /Volumes/ExtraDisk2/u01以下をOracleソフトウェア用とREDOログファイル、制御ファイル、/Volumes/ExtraDisk2/u02 以下をデータファイル、REDOログファイル、制御ファイル、そして、/Volumes/ExtraDisk/u03以下は、REDOログファイルと制御ファイル配置用とておきます。(お試し環境なので、ノーアーカイブモードでデータベースを作成します)
各ディレクトリ作成後に、ディレクトリのオーナーをOracle所有者へ、グループを今回のインストールでは、oinstallに変更。それと、パーミッションの変更も忘れずに!
sh-2.05b# cd /Volumes/ExtraDisk2/
sh-2.05b# pwd
/Volumes/ExtraDisk2
sh-2.05b# mkdir -p u01/app/oracle
sh-2.05b# chown -R oracle:oinstall u01
sh-2.05b# chmod -R 775 u01
sh-2.05b#
sh-2.05b# mkdir -p u02/oradata
sh-2.05b# chown -R oracle:oinstall u02
sh-2.05b# chmod -R 775 u02
sh-2.05b#
sh-2.05b# cd /Volumes/ExtraDisk
sh-2.05b# pwd
/Volumes/ExtraDisk
sh-2.05b# man mkdir
sh-2.05b# mkdir -p u03/oradata
sh-2.05b# chown -R oracle:oinstall u03
sh-2.05b# chmod -R 775 u03
sh-2.05b#
ここもコマンドで行っていますが、コマンドを使うのは苦手という方は、Finderから各フォルダを作成後、フォルダの所有権とアクセス権を変更すれば同じです。
2−7)カーネルパラメータの調整及び、シェル内のリソース制限値調整
MacOS Xもunixベースですから、他のunix系OSと同様に、カーネルパラータを調整しておく必要があります、Installation Guideに記載されているカーネルパタメータ以上になっているか確認し、必要があれば調整してください。
マニュアルに記載されている値は、以下の通り。
kern.corefile = core
kern.sysv.semmni = 87381
kern.sysv.semmns = 87381
kern.sysv.semmnu = 87381
kern.sysv.semmsl = 87381
kern.sysv.semume = 10
kern.sysv.maxproc = 2068
kern.sysv.maxprocperuid = 2068
2−7−1) 現在値の確認
お試し環境を作成するだけなので、扱えるファイル数はデフォルトのままで問題ないと思いますが、インストレーションガイドでは、シェル内のリソース制限値を変更するようになっているため、カーネルパラメータのmaxfilesとmaxfilesperprocも確認しておきます。マニュアルでは、Maximum number of open file descriptorsは65536以上にするようにとなっています。
カーネルパラメータの確認
sh-2.05b# sysctl -a | grep -E corefile\|sem\|maxproc\|maxfile
kern.maxproc = 532
kern.maxprocperuid = 100
kern.corefile = /cores/core.%P
kern.sysv.semmni: 87381
kern.sysv.semmns: 87381
kern.sysv.semmnu: 87381
kern.sysv.semmsl: 87381
kern.sysv.semume: 10
kern.posix.sem.max: 10000
kern.maxfiles = 12288
kern.maxfilesperproc = 10240
sh-2.05b#
シェル内のリソース制限値を確認
sh-2.05b# ulimit -aH
core file size (blocks, -c) 0
data seg size (kbytes, -d) 6144
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) unlimited
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 65536
cpu time (seconds, -t) unlimited
max user processes (-u) 532
virtual memory (kbytes, -v) unlimited
sh-2.05b#
sh-2.05b# ulimit -aS
core file size (blocks, -c) 0
data seg size (kbytes, -d) 6144
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 256
pipe size (512 bytes, -p) 1
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 100
virtual memory (kbytes, -v) unlimited
2−7−2)カーネルパラメータの変更
私の環境では、maxproc 関連だけを調整すれば問題ないようですから、maxproc と macprocperuid を2068に増加し、 maxfiles を 67584、 maxfilesperproc を 65535 に増加することにします。
/etc/sysctl.conf を編集して、カーネルパラメータを設定することにしますが、デフォルトでは、sysctl.conf が存在していないようなので vi なり、pico なり、emcas なり、お好きなエディタで作成しちゃいましょ。
sh-2.05b# vi /etc/sysctl.conf
sh-2.05b# cat /etc/sysctl.conf
##
# for Oracle10g EE 10.1.0.3
# created by discus. 2005-5-21.
##
kern.maxfiles=67584
kern.maxfilesperproc=65536
kern.maxproc=2068
kern.maxprocperuid=2068
2−7−3)シェル内のリソース制限値調整
注)
インストレーションガイドでは、以降で解説する /System/Library/StartupItems/IPServices/IPServices と /etc/rc を変更するように記載されているが、/etc/rc.common でシェルリソース制限値を設定するほうがよいのではないかと思える。/etc/rc.common の最初には以下のコメントがある。
#######################
# Configure the shell #
#######################
まぁ、ちゃんと調べたわけではないので個人的な考えですが・・・。
それではマニュアル通りに進めることにして、/System/Library/StartupItems/IPServices/IPServices をお好きなテキストエディタ開き、以下の ulimitコマンドを、IPServices内の StartServices関数に追加。
2−7−1)のリソース制限値のハードリミットで、open file は unlimited になっていますから、max user processes のハードリミットとソフトリミットを調整することにします。
以下のコマンドでいうと、最初の2つだけを設定することにします。
ulimit -Hu 2068
ulimit -Su 2068
ulimit -Hn 65536
ulimit -Sn 65536
変更後の /System/Library/StartupItems/IPServices/IPServices
sh-2.05b# cd /System/Library/StartupItems/IPServices
sh-2.05b# ls -l IPServices
-rwxr-xr-x 1 root wheel 283 Mar 24 10:49 IPServices
sh-2.05b# vi IPServices
sh-2.05b# cat IPServices
#!/bin/sh
##
# IP Services
##
. /etc/rc.common
StartService ()
{
###########################################################
# set resource limit in shell for Oracle10g
ulimit -Hu 2068
ulimit -Su 2068
###########################################################
##
# Internet super-server.
##
ConsoleMessage "Starting internet services"
xinetd -inetd_compat -pidfile /var/run/xinetd.pid
##
# Internet Address Sharing.
##
if [ -a /etc/com.apple.named.conf.proxy ]
then
ConsoleMessage "Starting Internet address sharing"
/usr/libexec/InternetSharing
fi
}
StopService ()
{
return 0
}
RestartService ()
{
return 0
}
RunService "$1"
sh-2.05b#
次に、同じ ulimit コマンドを /etc/rc スクリプトの、SystemStarter コマンドの前に追加します。
変更後の /etc/rc の内容(長いので途中略)
sh-2.05b# cd /etc
sh-2.05b# ls -l rc
-rw-r--r-- 1 root wheel 7782 Mar 24 10:49 rc
sh-2.05b# vi rc
sh-2.05b# cat rc
#!/bin/sh
##
# Multi-user startup script.
#
# Copyright 1997-2002 Apple Computer, Inc.
#
# Customize system startup by adding scripts to the startup
# directory, rather than editing this file.
##
stty intr undef
stty kill undef
stty quit undef
stty susp undef
stty start undef
stty stop undef
stty dsusp undef
. /etc/rc.common
〜〜〜〜〜〜中略〜〜〜〜〜
############################################
# set resource limit in shell for Oracle10g
############################################
ulimit -Hu 2068
ulimit -Su 2068
############################################
# Start the Language Chooser. This code should be able to go away as far as I
# know once loginwindow becomes dynamic and SystemStarter exits the GUI
# business.
STARTPBS="/System/Library/CoreServices/pbs" # apps stall w/o
BUDDYCOOKIE="/var/db/.AppleSetupDone"
LCACOOKIE="/var/db/.RunLanguageChooserToo"
STARTLCA="/System/Library/CoreServices/Language Chooser.app/Contents/MacOS/Language Chooser"
if [ -x "$STARTLCA" -a -x "$STARTPBS" -a ! -f "$BUDDYCOOKIE" -a -f "$LCACOOKIE" ]; then
SystemStarter -g start Core(J\(B Graphics
"$STARTPBS" &
pbspid=$!
"$STARTLCA"
kill $pbspid # XSelect does this independently
fi
if [ ! -s "/var/log/CDIS.custom" ]; then
echo "Language Chooser seems to have failed; defaulting to English"
echo "LANGUAGE=English" > "/var/log/CDIS.custom"
fi
export LANGUAGE
SystemStarter -gr ${VerboseFlag} ${SafeBoot}
if [ -f /etc/rc.local ]; then
sh /etc/rc.local
fi
exit 0
sh-2.05b#
ここで一旦、再起動(問題なく起動したか syslog などを確認!)。
ここまでで、rootユーザでの作業は終わりです。rootユーザの作業で作成した Oracle所有者での作業に、つづく。。
| 固定リンク | 0


コメント