2009年02月10日

Oracle8i for Sun SPARC Solaris

ちょっと古いけど、Solaris上でのOracle8i データベース構築の備忘録です。
昔の構築、設定など必要な人にお役に立てれば....

==============================================
              Oracle8i for Sun SPARC Solaris リリース8.1.6 インストール
==============================================
●Oracle8i  for Sun SPARC Solaris リリース8.1.6
[インストール前の作業]
1.root ユーザーでの作業
 1-1.Oracle8i用のUNIXカーネル構成
  Oracle8i の共有グローバル領域(SGA )構造に割り当てるUNIX カーネル・プロセス間通信(IPC )パラメータを構成する。SGA に割り当てるだけの十分な共有メモリーがシステムにない場合は、データベースを起動できない。

  (1)以下のコマンドで、システムの現行の共有メモリー、セマフォ・セグメントお
   よびそれらの識別番号と所有者を調べる。

   以下のコマンドを実行する
   %ipcs

   または、
   /etc/systemファイルを参照

  (2)次に示すカーネル・パラメータに相当する値を設定する。
    共有メモリー・セグメントの最大サイズ(SHMMAX)
    共有メモリー・セグメントの最小サイズ(SHMMIN)
    システムの共有メモリー識別子の最大数(SHMMNI)
    ユーザー・プロセスが接続できる共有メモリー・セグメントの最大数(SHMSEG)
    システムのセマフォ識別子の最大数(SEMMNI)
    セットのセマフォの最大数(SEMMSL)
    システムのセマフォの最大数(SEMMNS)
    semop コールあたりの操作の最大数(SEMOPM)
    セマフォの最大値(SEMVMX)

    使用可能な共有メモリーの合計値は、次の計算式で決まる。
    SHMMAX ×SHMSEG

    (例)
     ORACLE_SID=A, PROCESSES=100
     ORACLE_SID=B, PROCESSES=100
     ORACLE_SID=C, PROCESSES=200

     SEMMNS の値は、次のように計算される。
     SEMMNS=((A=100)+(B=100))+((C=200)×2)+((インスタンス数=3)×10)=630
     ((C=200)×2):PROCESSES の最大値の2 倍

     [説明]
     Oracle データベースのPROCESSES パラメータを合計して、その値に
     PROCESSES の最大値の2 倍を加え、さらにデータベースごとに10 を加えた値
     を設定する。例えば、initsid.ora ファイルで、3 つのOracle インスタ
     ンスに対してPROCESSES パラメータを指定するシステムの場合、上記のように
     設定する。

      (参考値)最小の推奨値 ←これだとデータベース作成がGUIでできない。
     set shmsys:shminfo_shmmax=4294967295
     set shmsys:shminfo_shmmin=1
     set shmsys:shminfo_shmmni=100
     set shmsys:shminfo_shmseg=10
     set semsys:seminfo_semmni=100
     set semsys:seminfo_semmsl=100
     set semsys:seminfo_semmns=200
     set semsys:seminfo_semopm=100
     set semsys:seminfo_semvmx=32767

     (例:Sun Ultra 60 PDA/PCI--UltraSPARC-U450MHz--)
     set shmsys:shminfo_shmmax=4294967295
     set shmsys:shminfo_shmmin=1
     set shmsys:shminfo_shmmni=100
     set shmsys:shminfo_shmseg=10
     set semsys:seminfo_semmni=100
     set semsys:seminfo_semmsl=160
     set semsys:seminfo_semmns=320
     set semsys:seminfo_semopm=100
     set semsys:seminfo_semvmx=32767


 1-2.マウント・ポイントを作成する
   /export/home/oracle/u01
   /export/home/oracle/u02
   /export/home/oracle/u03
   /export/home/oracle/u04

   通常はパーティションを分けて、
    /u01
    /u02
    /u03
    /u04
   のようにする。
   Oracle8i には、2 つ以上のマウント・ポイントが必要で、1 つはソフトウェ
   ア用、1 つ以上はデータベース・ファイル用

   [例1]
   /export/home/oracle/u01/app/oracle (=ORACLE_BASE)
   /export/home/oracle/u02
   /export/home/oracle/u03
   /export/home/oracle/u04
   [例2]
   /ora8/app/oracle (=ORACLE_BASE)
   [例3]
   /oracle/u01/app/oracle (=ORACLE_BASE)
   [例4]
   /home/$USER (=ORACLE_BASE)
   [例5]
   /opt/app/oracle


 1-3.データベース管理者用のUNIX グループの作成
   インストール中に2 つのOracle ロール(SYSDBA およびSYSOPER)が作成される。
   データベース管理者は、対応するUNIX グループのメンバーになると、これらのロー
   ルが与えられる。

 1-4.Oracle Universal Installer Inventory 用のUNIX グループの作成
   admintool またはgroupadd ユーティリティを使用して、oinstall グループを作成
   します。oinstall グループは、Oracle Universal Installer のoraInventory ディ
   レクトリを所有する。インストールを行うOracle ユーザー・アカウントは、oin
   stall グループを主グループとする必要がある。

   --groupadd ユーティリティの使用例--
   # groupadd oinstall
   # groupadd dba
   # useradd oracle -g oinstall -G dba
   # passwd oracle


 1-5.Oracle ソフトウェア所有者のUNIX アカウントを作成する
   --------------------------------------------------------------------------
   ログイン名    任意です。このマニュアルではOracle アカウントとします。
   --------------------------------------------------------------------------
   プライマリGID     oinstall グループ
   セカンダリGID     dba    グループ ←admintoolから見ると文字列で表示
   ホーム・ディレクトリ 他のユーザーのホーム・ディレクトリとの間で一貫性のあ
              るホーム・ディレクトリを選択する。Oracle アカウント
              のホーム・ディレクトリは、ORACLE_HOME ディレクトリと
              同一である必要ない。
   ログイン・シェル   デフォルトは/usr/bin/sh 、/usr/bin/csh、/usr/bin/ksh
              のいずれか
   --------------------------------------------------------------------------

2.Oracle ユーザーで行う設定タスク

 1-1.ファイル作成の権限を設定する
  インストールされたファイルに対して、Oracle アカウント用に、umask で022 を設
  定することによって、group およびother には読込み権限および実行権限のみを与え、
  書込み権限を与えないようにする。

  umask コマンドが22 を返さない場合は、Oracle アカウントの.profile または
  .login ファイルにumask を設定して、次のコマンドを実行する。

  $ umask 022

 1-2.環境変数の設定
  表2-4 概要環境変数の概要
  環境変数    説明および設定例          必須か?
  DISPLAY     Oracle Universal Installerを    はい
          表示するシステムの名前、サー
          バー番号およびスクリーン番号
  PATH       シェルが実行ファイルを検索する   はい
          パス
  ORACLE_BASE   Oracle ソフトウェアおよび管     いいえ
          理ファイル構造の最上位にある
          ディレクトリ
  ORACLE_HOME   特定リリースのOracle ソフト     いいえ
          ウェアをインストールする
          ディレクトリ
  NLS_LANG     インストール時に使用する      いいえ
          キャラクタ・セット
  ORA_NLS33    各国語サポートのキャラクタ     いいえ
          ・セット・データの位置
  ORACLE_SID    インストール中に使用するOracle   いいえ
          サーバー・インスタンス識別子
  ORACLE_DOC   ドキュメントがインストールされ   いいえ
          ているディレクトリ

  [例--.cshrc---]
   # @(#)cshrc 1.11 89/11/29 SMI
   umask 022
   set path=(/bin /usr/bin /usr/ucb /etc .)
   if ( $?prompt ) then
    set history=32
   endif
   #########################################
   #             ORACLE8iR8.1.6 Enviroment             #
   #                 by M.D                  #
   #########################################

   #
   # 環境変数
   #
   setenv DISPLAY hogehost:0.0
   setenv ORACLE_BASE /export/home/oracle/u01/app/oracle
   setenv ORACLE_HOME $ORACLE_BASE/product/8.1.6
   setenv NLS_LANG Japanese_Japan.JA16EUC
   setenv ORA_NLS33 $ORACLE_HOME/ocommon/nls/admin/data
   setenv ORACLE_SID hoge
   setenv LD_LIBRARY_PATH $ORACLE_HOME/lib
   setenv TMPDIR /export/home/oracle/tmp

   #
   # シェル変数
   #
   set path=($ORACLE_HOME/bin /usr/ccs/bin /usr/openwin/bin $path)
   #set prompt = ""$SESSION_SVR":%"$cwd"%"
   set filec
   set history = 1024
   set histdup
   set histfile = ~/.history
   set savehist = 1024
   set autolist
   set nobeep

   stty stop undef
   stty start undef

   source ~/.aliases


 1-3.カレント・セッションの環境を更新する
  [Bourne またはKorn シェルの場合]
   $ . ./.profile
  [C シェルの場合]
   % source .login

[インストール]
  1.インストール前の作業後に、Solarisの再起動を行う。
  2.インストールするべきディレクトリなどを作成する必要なし
  3.インストール途中で、orainRoot.shをroot権限で実行する必要がある。
  4.「Directory for Database Files 」フィールドに、データベース・ファイル
   のマウント・ポイントのパスを入力する。例:/export/home/oracle/u01
  5.root.shをroot権限で実行する必要がある。
   /usr/local/bin/を指定。(因みに/var/opt/oracle/oratab 作成される。)
  6.あとはウィザードの沿ってインストール。


参考資料 OTN Web公開 Oracle 8i インストールマニュアル

タグ:明鏡止水
posted by ラクサス at 15:54| Comment(0) | TrackBack(0) | DB | このブログの読者になる | 更新情報をチェックする

2008年09月17日

MySQLで長いSQL文を実行したらエラーになった場合の解決方法

INSERT処理を速くする為に、マルチプルINSERT(※1)を使用すると、SQL文が極端に長くなってしまい、実行するとエラーになることがあります。

※1.マルチプルINSERTとは、一括してINSERTのSQL文を実行します。
例:  INSERT INTO tbl_name VALUES (1,23),(2,34),(4,33);

エラーメッセージの例:
SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
これは、SQL文が「max_allowed_packet」に設定した値を超えてしまったことを現しています。


設定ファイルを編集し、「max_allowed_packet」の値を大きくします。
# vi /etc/my.cnf
max_allowed_packet = 32M

MySQLを再起動して完了です。
タグ:どなん
posted by ラクサス at 12:15| Comment(0) | TrackBack(0) | DB | このブログの読者になる | 更新情報をチェックする

2008年07月09日

XAMPP for LinuxでMySQLが起動しない場合

XAMPP for Linuxは簡単に開発環境を構築できますが、環境によっては、権限の問題でMySQLが起動に失敗することがあります。

MySQLを起動してもすぐ停止する場合、以下のファイルに「--user=root」を追加します。

/opt/lampp/bin/mysql.server

$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &

$bindir/mysqld_safe --user=root --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &

MySQLが起動したらphpMyAdminで接続確認をします。

以下のエラーが表示された場合、PHPのsocketの設定が合っていませんので、設定をします。

#2002 - サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)


/opt/lampp/etc/php.ini

mysql.default_socket = /opt/lampp/var/mysql/mysql.sock

lamppを再起動すれば、無事接続できます。
#/opt/lampp/lampp restart


タグ:どなん
posted by ラクサス at 22:55| Comment(0) | TrackBack(0) | DB | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。