Oracle Database 10g セットアップ

2004.10.17

Oracle10gをFedoreCore3へインストールしたときの手順メモです。

  1. ハードウェア要件
  2. No. 項目
    1. 物理メモリー(RAM) 512MB
    2. スワップ領域 1GB または、RAMサイズの2倍
    3. /tmpディレクトリ内の空きディスク 400MB
    4. 空きディスク領域
    • ソフトウェア・ファイル用のディスク領域 2.5GB
    • データベース・ファイル用のディスク領域 1.2GB
    3.7GB以上の空き領域が、1つのファイルシステム上に存在するか、それぞれ、2.5GB、1.2GB以上のファイルシステムが存在すること

    確認方法

    1. 物理メモリ
    2. [root@hn]# grep MemTotal /proc/meminfo
      MemTotal:       379928 kB
      

    3. スワップ領域
    4. [root@hn]# grep SwapTotal /proc/meminfo
      SwapTotal:      779144 kB
      

    5. /tmpディレクトリ内の空きディスク
    6. [root@hn]# df -kh /tmp
      Filesystem          サイズ  使用  残り 使用% マウント位
      /dev/hda2              36G  2.9G   32G   9% /
      

    7. 空きディスク領域
    8. [root@hn]# df -kh
      Filesystem          サイズ  使用  残り 使用% マウント位
      /dev/hda2              36G  2.9G   32G   9% /
      /dev/hda1              99M  9.4M   85M  10% /boot
      none                  186M     0  186M   0% /dev/shm
      /dev/cdrom            584M  584M     0 100% /mnt/cdrom
      

  3. UNIXグループおよびユーザの作成
    1. 必要なグループおよびユーザ
    2. No. 名称 区分
      1. oinstall グループ
      2. dba グループ
      3. oracle ユーザ

    3. グループがすでに存在していないかチェックする
    4. [root@hn]# grep oinstall /etc/group
      [root@hn]# grep dba /etc/group
      

    5. 必要に応じてグループを作成
    6. [root@hn]# /usr/sbin/groupadd oinstall
      [root@hn]# /usr/sbin/groupadd dba
      

    7. Oracleユーザの存在チェック
    8. [root@hn]# id oracle
      
      id: oracle: そのようなユーザは存在しません
      ※ 存在するが、所属グループが、異なる場合 /usr/sbin/usermod -g oinstall -G dba oracle

    9. Oracleユーザの作成と確認、パスワードの設定
    10. [root@hn]# /usr/sbin/useradd -g oinstall -G dba oracle
      [root@hn]# id oracle
      uid=500(oracle) gid=500(oinstall) 所属グループ=500(oinstall),501(dba)
      [root@hn]# passwd oracle
      Changing password for user oracle.
      

  4. 必要なディレクトリの作成
    1. 以下のような名前のディレクトリを作成し、適切な所有者、アクセス権を設定
      1. /opt/oracle Oracleベースディレクトリ
      2. /opt/oracle/oradata オプションのOracleデータファイル・ディレクトリ
        ※ b. を a.のサブディレクトリとすることは本番環境では推奨されない

      [root@hn /]# mkdir -p /opt/oracle
      [root@hn /]# mkdir -p /opt/oracle/oradata
      

    2. 所有者およびグループの変更
    3. [root@hn /]# chown -R oracle:oinstall /opt/oracle /opt/oracle/oradata
      [root@hn /]# chmod -R 775 /opt/oracle /opt/oracle/oradata
      
      [root@hn /]# ls -al /opt/ | grep oracle
      drwxrwxr-x    3 oracle   oinstall     4096 10月 17 12:42 oracle
      [root@hn /]# ls -al /opt/oracle | grep oradata
      drwxrwxr-x    2 oracle   oinstall     4096 10月 17 12:42 oradata
      

  5. カーネルパラメータの構成
    1. カーネルパラメータが推奨値以上である事を確認する
      1. semmsl : 250 , sammns : 32000 , samopm : 100 , sammni 128 (/proc/sys/kernel/sem)
      2. [root@hn /]# /sbin/sysctl -a | grep sem
        kernel.sem = 256        32000   100     142
        
      3. shmall : 2097152 , shmmax : RAMの半分 , shmmni : 4096
        (/proc/sys/kernel/shmall /proc/sys/kernel/shmmax /proc/sys/kernel/shmmni)
      4. [root@hn /]# /sbin/sysctl -a | grep shm
        kernel.shmmni = 4096
        kernel.shmall = 2097152
        kernel.shmmax = 2147483648
        
      5. file-max : 65536 (proc/sys/fs/file-max)
      6. [root@hn /]# /sbin/sysctl -a | grep file-max
        fs.file-max = 131072
        
      7. ip_local_port_range : 1024 65000 (proc/sys/net/ipv4/ip_local_port_range)
      8. [root@hn /]# /sbin/sysctl -a | grep ip_local_port_range
        net.ipv4.ip_local_port_range = 1024     65000
        

    2. 要件を満たしていない場合、次の手順を実行する
      1. テキストエディタにて/etc/sysctl.confファイルに、次のような行を追加または編集する
      2. kernel.shmmax=2147483648
        kernel.sem=250 32000 100 142
        fs.file-max=131072
        net.ipv4.ip_local_port_range=1024 65000
        
      3. 次のコマンドを入力して、カーネル・パラメータの現行の値を変更する
      4. [root@hn /]# /sbin/sysctl -p
        net.ipv4.ip_forward = 0
        net.ipv4.conf.default.rp_filter = 1
        net.ipv4.conf.default.accept_source_route = 0
        kernel.sysrq = 0
        kernel.shmmax = 2147483648
        kernel.sem = 250 32000 100 142
        fs.file-max = 131072
        net.ipv4.ip_local_port_range = 1024 65000
        
    3. Linux システム上でソフトウェアのパフォーマンスを改善するために oracle ユーザーに対するシェル制限の設定する。 シェル制限とは、ユーザーごとの最大プロセス数や最大オープンファイル数など、 ユーザーごとに設定する制限値です。 シェル制限には、rootユーザーが変更できる上限値のハードリミットと、 一般ユーザーが変更できる上限値のソフトリミットがあります
      1. /etc/security/limits.conf ファイルに次の各行を追加
      2. *               soft   nproc    2047
        *               hard   nproc    16384
        *               soft   nofile   1024
        *               hard   nofile   65536
        
      3. 次の行が存在しない場合は、/etc/pam.d/login ファイルに次の1 行を追加または編集
      4. session     equired   /lib/security/pam_limits.so
        
      5. oracle ユーザーのデフォルト・シェルに応じて、デフォルトのシェル起動ファイルを次のように変更
      6. Bourne、Bash またはKorn シェルの場合は、/etc/profile ファイルに次の各行を追加

        if [ $USER = "oracle" ]; then
            if [ $SHELL = "/bin/ksh" ]; then
                ulimit -p 16384
                ulimit -n 65536
            else
                ulimit -u 16384 -n 65536
            fi
        fi
        

        C またはtcsh シェルの場合は、/etc/csh.login ファイルに次の各行を追加

        if ( $USER == "oracle" ) then
            limit maxproc 16384
            limit descriptors 65536
        endif
        
  6. Oracleユーザの環境構成
    1. umaskの設定
      1. oracleユーザに切替え
      2. [root@hn /]# su oracle
        
      3. デフォルトシェルの確認
      4. [oracle@hn /]$ echo $SHELL
        /bin/bash
        
      5. シェルの起動ファイルを編集(今回はbash)
      6. [oracle@hn /]$ cd ~
        [oracle@hn oracle]$ vi .bash_profile
        

        以下の行を追加、または編集

        umask 022
        
    2. 環境変数の設定
      1. ORACLE_BASE , ORACLE_SID を設定
      2. [oracle@hn oracle]$ ORACLE_BASE=/opt/oracle
        [oracle@hn oracle]$ ORACLE_SID=libra
        [oracle@hn oracle]$ export ORACLE_BASE ORACLE_SID
        

        Oracle Database 10gに必要な環境変数をoracleユーザーに設定します。 Oracle9i Databaseでは、ORACLE_HOMEやNLS_LANGなども設定していましたが、 Oracle Database 10gでは、インストール時にはORACLE_BASEとORACLE_SIDだけになりました。 それ以外の環境変数は、インストール後に設定します。

      3. ORACLE_HOME , TNS_ADMIN の解除
      4. [oracle@hn oracle]$ unset ORACLE_HOME
        [oracle@hn oracle]$ unset TNS_ADMIN
        
  7. インストール
    1. ファイルの準備
      1. OTNよりトライアル版をダウンロード
      2. Oracle Database 10g Release 1 (10.1.0) for Linux86 30日間トライアル版 ship.db.cpio.gz

      3. 解凍
      4. [oracle@hn down]$ gzip -d ship.db.cpio.gz
        [oracle@hn down]$ cpio -idcmv < ship.db.cpio
        

        ※ Disk1 というフォルダが作成される

    2. インストールの実行
      1. インストーラの起動 解凍されたディレクトリへ移動
      2. [oracle@hn Disk1]$ ./runInstaller
        

      3. ようこそ 「次へ」
      4. イベントリ・ディレクトリおよび接続情報の指定「次へ」
      5. orainstRoot.sh の実行プロンプトが表示される
      6. 別コンソールを立ち上げ、以下を実行

        [oracle@hn /]$ su
        Password:
        [root@hn /]# cd /opt/oracle/oraInventory/
        [root@hn oraInventory]# ./orainstRoot.sh
        
      7. ファイル場所の指定 パスの確認(ORACLE_BASE) /opt/oracle/product/10.1.0/db_1 「次へ」
      8. 「Enterprise Edition」または「Standard Edition」を選択して「次へ」
      9. 製品固有の前提条件のチェック すべてのチェックが成功したことを確認して「次へ」
      10. データベース構成の選択 デフォルトを選択し、「次へ」
      11. データベース構成オプションの指定 GID、キャラクタセットを設定し「次へ」
      12. データベース管理オプションの選択 「次へ」
      13. データベース・ファイル記憶域オプションの設定 「次へ」
      14. バックアップ・オプションおよびリカバリ・オプションの指定 「次へ」
      15. データベース・スキーマのパスワードの指定 アカウント毎にパスワードを設定 sys , system , sysman , dbsnmp
      16. サマリー 表示情報を確認して、「インストール」
      17. Configuration Assistant 完了後「次へ」で、セットアップ権限ウィンドウが開くため、別コンソールから root として、/opt/oracle/product/10.1.0/db_1/root.sh を実行
      18. [oracle@hn img]$ su
        Password:
        [root@hn img]# /opt/oracle/product/10.1.0/db_1/root.sh
        

      19. インストールの終了 次のJ2EEアプリケーションが配布されたため、次にリストされたURLでアクセスできます。
      20. 名称 URL
        Ultra Search http://hostname:5620/ultrasearch
        Ultra Search Administration Tool http://hostname:5620/ultrasearch/admin
        iSQL*Plus http://hostname:5560/isqlplus
        Enteprise Manager 10g Database Control http://hostname:5500/em

        終了

  8. インストール後の作業
    1. utlrp.sqlスクリプトを実行
      1. oracle@hn db_1]$ /usr/local/bin/oraenv
      2. oracle@hn oracle]$ $ORACLE_HOME/bin/sqlplus system/xxxxxx as sysdba
      3. SQL> startup
      4. SQL> @?/rdbms/admin/utlrp.sql
        Oracle Database のファイルおよびプログラムでは、疑問符(?)は、環境変数 ORACLE_HOME の値を表します。 同様に、アットマーク(@)記号は環境変数ORACLE_SID を表します。