2009年10月2日金曜日

第5回 Oracleサイレントインストール

    前回ではGUIによる対話型モードでインストールを行ったが、それが唯一のインストール方法ではない。OracleではGUIが立ち上がらなくても、あらかじめレスポンス・ファイルと呼ばれるインストール手順を定義したファイルを用意してインストールを行うサイレントモードも使用可能である。この方法では、第3回に引き続きクライアントからtelnetによって作業を行う。

  1. インストールアーカイブを解凍する
  2. ダウンロードしたインストールアーカイブを(10202_database_solx86.zip)をSolarisサーバーにftpでコピーして、telnetからoracleユーザーでログインして、次のコマンドをタイプしてインストールアーカイブを解凍する。(ここでは、/tmpにコピーしてoracleユーザーのホームディレクトリに展開した)

    login: oracle
    Password:
        …
    $ unzip /tmp/10202_database_solx86.zip -d $HOME

  3. レスポンス・ファイルの作成
  4. レスポンス・ファイルは解凍したディレクトリの/database/response以下にテンプレートがある、そのうちの「enterprise.rsp」を編集して使用する。編集内容は対話型モードのインストールとほぼ同じである、このため説明語句はその画面文言に合わせたので、前回もあわせ読んでいただきたい。

    次のタイプをしてenterprise.rspファイルのオリジナルのコピーを取り編集をする。

    $ cd $HOME/database/response
    $ cp -p enterprise.rsp enterprise.rsp.org
    $ vi enterprise.rsp

    下記のとおり、enterprise.rspの14項目を編集して、セーブする。

    1. UNIX_GROUP_NAME
    2. Oracle インベントリ・グループを設定する

      UNIX_GROUP_NAME=<Value Unspecified>
          ↓
      UNIX_GROUP_NAME="oinstall"

    3. ORACLE_HOME
    4. 「ホーム詳細の指定」の「パス」を設定する

      ORACLE_HOME=<Value Required>
          ↓
      ORACLE_HOME="/opt/app/oracle/product/10.2.0"

    5. ORACLE_HOME_NAME
    6. 「ホーム詳細の指定」の「名前」を設定する

      ORACLE_HOME_NAME=<Value Required>
          ↓
      ORACLE_HOME_NAME="OraDb10g_home1"

    7. COMPONENT_LANGUAGES
    8. 日本語コンポーネントも追加する。

      COMPONENT_LANGUAGES={"en"}
          ↓
      COMPONENT_LANGUAGES={"ja","e"}

    9. n_configurationOption
    10. 「構成オプションの選択」を「データベースの作成」に設定する

      n_configurationOption=<Value Required>
          ↓
      n_configurationOption=1

    11. n_dbType
    12. 「データベース構成の選択」を「汎用目的」に設定する

      n_dbType=<Value Required>
          ↓
      n_dbType=1

    13. s_globalDBName
    14. 「グローバル・データベース名」を設定する

      s_globalDBName=<Value Required>
          ↓
      s_globalDBName="orcl"

    15. s_dbSid
    16. 「SID」を設定する

      s_dbSid=<Value Required>
          ↓
      s_dbSid="orcl"

    17. s_dbRetChar
    18. 「データベース・キャラクタ・セットの選択」を設定する

      s_dbRetChar="WE8ISO8859P1"
          ↓
      s_dbRetChar="JA16SJISTILDE"

    19. b_loadExampleSchemas
    20. 「サンプル・スキーマ付きデータベースを作成」に設定する

      b_loadExampleSchemas=false
          ↓
      b_loadExampleSchemas=true

    21. n_dbStorageType
    22. 「データベース記憶域オプションの設定」に「ファイルシステム」を設定する

      n_dbStorageType=<Value Unspecified>
          ↓
      n_dbStorageType=1

    23. s_mountPoint
    24. 「データベース・ファイル位置の指定」を設定する

      s_mountPoint=<Value Unspecified>
          ↓
      s_mountPoint="/opt/app/oracle/data"

    25. s_superAdminSamePasswd
    26. 「すべてのアカウントで、同一のパスワードを使用」、「パスワードを入力」を設定する
      ※"password"には実際のパスワードを入れる。

      s_superAdminSamePasswd=<Value Unspecified>
          ↓
      s_superAdminSamePasswd="password"

    27. s_superAdminSamePasswdAgain
    28. 「すべてのアカウントで、同一のパスワードを使用」、「パスワードの確認」を設定する

      s_superAdminSamePasswdAgain=<Value Unspecified>
          ↓
      s_superAdminSamePasswdAgain="password"

      JA16SJISTILDEについて

      対話型のインストールでは、日本語キャラクタセットの選択肢がJA16EUC、AL32UTF8、JA16SJISであったので、JA16SJISを選択した。サイレントインストールではそれに加えて、JavaベースのWebアプリケーションの「~」文字化けに対処した、JA16SJISTILDE (JA16SJISの対処)、JA16EUCTILDE(JA16EUCの対処)が選択できる。したがってJA16SJIS に変えてJA16SJISTILDEをレスポンス・ファイルに指定しておけば、Oracleデータベースに格納された「~」文字をJavaベースのWebアプリケーションが取り出して表示しても「~」の文字化けは発生しない。逆にJA16SJISのままでは文字化けして「?」が表示される。(この理由だけでもサイレントインストールに分がある、対話型のインストールで同様にするためには、インストール時にはデータベースを作成せずに、後で作成しなければならない。)

      「~」文字、すなわち「から」と入れると漢字変換される文字はチルダ (Tilde)と呼ばれている。この文字がデータベースに入っている状態ではJA16SJISであろうと、JA16SJISTILDEであろうと同じコード(SJISコード:8160)で入っている。これをOracle JDBCドライバが取り出すときにマッピングテーブルを参照して下記のUnicodeに変換する、なお両者のマッピングテーブルの違いはこの1字だけである。

      JA16SJIS U+301C
      JA16SJISTILDE U+FF5E

      文字化けは、この後にUnicodeをさらに変換してブラウザに表示するときに発生する。

      JSPを例にとってみよう、日本語を表示するJSP のpage ディレクティブは通常下記のとおりである、すなわち、pageEncodingでJSPファイル自体が文字コードWindows-31Jで書かれてあることを定義してあり、contentTypeではブラウザにはUnicodeをWindows-31Jに変換して送信することを定義してある。(Windows-31JはMS932(Microsoft Code Page 932)と同義、 Shift_JISに特殊文字の定義を加えたものである)

      pageEncoding="Windows-31J"
      contentType="text/html;charset=Windows-31J"

      JA16SJISTILDEはUnicodeのU+FF5Eに一度変換されて、さらにWindows-31Jに逆変換されるとSJISコード:8160に戻り「~」文字が表示されるが、JA16SJISの場合はUnicodeのU+301Cに変換される、それに対応するコードがWindows-31Jに無いために「?」文字が表示されるのだ。

      「~」1文字の問題ではあるが、この文字は使用頻度が高い、化けないようにJA16SJISTILDEを使用する。


  5. サイレントインストールの実行
  6. インストーラにサイレントオプション(-silent)、レスポンス・ファイルオプション(-responseFile)を指定して起動する。

    $ ../runInstaller -silent -responseFile enterprise.rsp

  7. インストールの終了
  8. 下記のようなメッセージが表示されれば、インストールは成功しているので、次回に進む。

    Oracle Database 10gのインストールが成功しました。
    詳細は'/opt/app/oracle/oraInventory/logs/silentInstallyyyy-mm-dd_hh-mm-ss(AM/PM).log'をご覧ください。

0 件のコメント:

コメントを投稿