« Panther De Oracle10g その4 | トップページ | Panther De Oracle10g その6 »

2005年5月30日 (月) / Author : Hiroshi Sekiguchi.

panther De Oracle10g その5

さて、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から各フォルダを作成後、フォルダの所有権とアクセス権を変更すれば同じです。
mk_and_permission

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所有者での作業に、つづく。。

    | |

    トラックバック


    この記事へのトラックバック一覧です: panther De Oracle10g その5:

    コメント

    コメントを書く