!!!Oracle Database10g インストール10gR2 For Fedora 10 [Oracle Database10g][Fedora][VirtualBox] *インストールガイド **http://otndnld.oracle.co.jp/document/products/oracle10g/102/linux/B19280-02/toc.htm VirtualBox 上の Fedora 10 にOracle10gをインストール !!準備 !ダウンロード http://www.oracle.com/technology/global/jp/software/products/database/index.html から、10201_database_linux32.zip をダウンロード !!rootとしての作業 !ハードウェア要件 ""インストール時に、以下の要件を満たしていなくても、以下のようにすることでインストールは続行できる。 $runInstaler -ignoreSysPrereqs *1024MB以上の物理RAM # grep MemTotal /proc/meminfo *スワップ領域 ,RAM,必要量 ,1024 - 2048 MB,RAMの1.5倍 ,2049 - 8192 MB,RAMと同じ ,8193 - ,RAMの0.75倍 # grep SwapTotal /proc/meminfo */tmpディレクトリに400MBの領域 # df -h /tmp *Oracleソフトウェア用ディスク領域 ,タイプ,必要量 ,Enterprise Edition,1.5GB ,Standard Edition,1.5GB ,カスタム(最大),1.5GB # df -h *システム・アーキテクチャでソフトウェアを実行できるか # grep "model name" /proc/cpuinfo !ソフトウェア要件 次のいずれかのオペレーティング・システム・バージョン: *Red Hat Enterprise Linux AS/ES 3.0(Update 4以上) *Red Hat Linux 4.0 *SP 2以上を適用したSUSE Linux Enterprise Server 9.0 *Asianux 1.0 *Asianux 2.0 システムの確認 # cat /etc/issue カーネル # uname -r !名前解決の構成 名前解決が設定されていない場合は、Oracle Universal Installerを実行するとエラーが発生することがあります。このエラーを回避するには、インストール前に、ホスト名が/etc/hostsファイルを介してのみ解決されることを確認する必要 /etc/hostsに登録 # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost vboxfedora10 ::1 localhost6.localdomain6 localhost6 192.168.24.56 vboxfedora10.typea.info !グループとユーザの作成 ,タイプ,種別,名称 ,Oracleインベントリ・グループ,グループ,oinstall ,OSDBAグループ,グループ,dba ,OSOPERグループ(オプション),グループ,oper ,Oracleソフトウェア所有者,ユーザ,oracle ,nobodyユーザ,ユーザ,nobody ※ operを作成するのは、一連の限られたデータベース管理権限(SYSOPERオペレータ権限)を持つオペレーティング・システム・ユーザーのグループを識別する必要がある場合のみ 。ほとんどのインストールの場合は、OSDBAグループのみを作成すれば十分 ※ nobodyユーザを作成するのは、システムに存在しない場合。 id nobodyで確認 # grep oinstall /etc/group # groupadd oinstall # groupadd dba # useradd -g oinstall -G dba oracle # passwd oracle !カーネルパラメータの構成 各カーネル・パラメータが表に示す推奨値以上の値に設定されていることを確認 以下のファイルを確認 # sysctl -a ですべてのカーネルパラメータを確認できる # sysctl -a | grep sem kernel.sem = 250 32000 32 128 ::/proc/sys/kernel/sem ,パラメータ,値 ,semmsl,250 ,semmns,32000 ,semopm,100 ,semmni,128 ::/proc/sys/kernel/shmall ,パラメータ,値 ,shmall,2097152 ::/proc/sys/kernel/shmmax ,パラメータ,値 ,shmmax,物理メモリーのサイズの1/2(バイト数) ::/proc/sys/kernel/shmmni ,パラメータ,値 ,shmmni,4096 ::/proc/sys/fs/file-max ,パラメータ,値 ,file-max,65536 ::/proc/sys/net/ipv4/ip_local_port_range ,パラメータ,値 ,ip_local_port_range,最小: 1024、最大: 65000 ::/proc/sys/net/core/rmem_default ,パラメータ,値 ,rmem_default,1048576 ::/proc/sys/net/core/rmem_max ,パラメータ,値 ,rmem_max,1048756 ::/proc/sys/net/core/wmem_default ,パラメータ,値 ,wmem_default,262144 ::/proc/sys/net/core/wmem_max ,パラメータ,値 ,wmem_max,262144 ::カーネル・パラメータの値が推奨値と異なる場合 パラメータ名の前に当たる部分は、 # sysctl -a | grep file-max fs.file-max = 50257 として、確認できるので、/etc/sysctl.conf に変更するパラメータの設定を、以下のような行として追加(再起動後も有効になる) fs.file-max = 65536 net.core.wmem_default = 262144 net.core.wmem_max = 262144 sysctlで、設定の再読み込みを行う # sysctl -p !oracleユーザーに対するシェル制限の設定 *ソフトウェアのパフォーマンスを改善するためには、oracleユーザーの次のシェル制限値を大きくする必要がある。 *シェル制限とは、ユーザーごとの最大プロセス数や最大オープンファイル数など、 ユーザーごとに設定する制限値。 *シェル制限には、rootユーザーが変更できる上限値のハードリミットと、 一般ユーザーが変更できる上限値のソフトリミットがある ::/etc/security/limits.confファイルに次の各行を追加 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 ::oracleユーザーのデフォルト・シェルに応じて、デフォルトのシェル起動ファイルを変更 /etc/profile に以下の行を追記 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 16636 fi fi !ソフトウェアディレクトリの構成 [[OFA|Oracle Database10g OFA]] ,タイプ,設定例,内容 ,Oracleベース,/opt/oracle/app,Oracleソフトウェア・インストールのトップレベル・ディレクトリ OFA(/[ファイル・システムのマウント・ポイント・ディレクトリ]/app/[ユーザー名]) ,Oracleインベントリ,$ORACLE_BASE/oraInventory,システムにインストールされた全ソフトウェアのインベントリが格納 OFA($ORACLE_BASE/oraInventory) 手動で作成する必要はない ,Oracleホーム,$ORACLE_BASE/product/10.2.0/db_1,特定のOracle製品のソフトウェアをインストールするために選択するディレクトリ 推奨 $ORACLE_BASE/product/10.2.0/db_1 手動で作成する必要はない ::Oracleベース・ディレクトリの作成 # mkdir -p /opt/oracle/app/oracle # chown -R oracle:oinstall /opt/oracle/app # chmod -R 775 /opt/oracle/app !oracleユーザーの環境の構成 Oracle Universal Installerは、oracleアカウントから実行します。ただし、Oracle Universal Installerを起動する前に、oracleユーザーの環境を構成する必要がある。 ::シェル起動ファイルで、デフォルトのファイル・モード作成マスク(umask)を022に設定 .bash_profileに、umask 022を追加 # su oracle $ cd ~ $ vi .bash_profile : umask 022 !環境変数の設定 ::ORACLE_BASE , ORACLE_SID を設定 oracle]$ ORACLE_BASE=/opt/oracle/app oracle]$ ORACLE_SID=oradb1 oracle]$ export ORACLE_BASE ORACLE_SID ""Oracle Database 10gに必要な環境変数をoracleユーザーに設定します。 Oracle9i Databaseでは、ORACLE_HOMEやNLS_LANGなども設定していましたが、 Oracle Database 10gでは、インストール時にはORACLE_BASEとORACLE_SIDだけになりました。 それ以外の環境変数は、インストール後に設定します。 ::ORACLE_HOME , TNS_ADMIN の解除 oracle]$ unset ORACLE_HOME oracle]$ unset TNS_ADMIN !!インストール時の問題の解決 インストールを行ったところ、以下の問題が発生した。 ::解凍からrunInstallerの起動 oracle]$ unzip 10201_database_linux32.zip oracle]$ cd database oracle]$ ./runInstaller !対象OSでないため、インストール失敗 ""以下の手順で、インストーラに対応したOSであると偽装する。 {{ref_image ora_inst01.jpg}} ::インストーラをだます http://kamoland.com/wiki/wiki.cgi?RedHat9%A4%D8%A4%CEOracle10g%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB インストール後に戻すようにバックアップ # cp /etc/redhat-release /etc/redhat-release.bak 記述を変更 # vi /etc/redhat-release # Red Hat Enterprise Linux AS release 3 (Taroon) oracle]$ ./runInstaller !libXp.so.6 とやらが見つからないようで、失敗 *libXp のインストール {{ref_image ora_inst02.jpg}} ""libXp.i386をインストールしてみる。 # yum -y install libXp.i386 !立ち上がったが、文字化け全開 {{ref_image ora_inst03.jpg}} ""言語の設定を変えて再実行する oracle]$LANG=C oracle]$./runInstaller -ignoreSysPrereqs {{ref_image ora_inst04.jpg}} !インストールの途中で、以下のエラー {{ref_image ora_inst20.jpg}} 指定されたログを確認 /opt/oracle/app/oraInventory/logs/installAction2008-12-14_06-32-02AM.log : INFO: gcc: INFO: /usr/lib/libstdc++.so.5: No such file or directory INFO: INFO: /opt/oracle/app/oracle/product/10.2.0/db_1/bin/genorasdksh: Failed to link liborasd kbase.so.10.2 INFO: make: *** [liborasdkbase] Error 1 !/usr/lib/libstdc++.so.5 がないのでエラーとなっているよう。 確認。確かにない。 # cd /usr/lib # ls -l | grep libstdc++ lrwxrwxrwx 1 root root 19 2008-12-04 22:47 libstdc++.so.6 -> libstdc++.so.6.0.10 -rwxr-xr-x 1 root root 954544 2008-11-05 21:14 libstdc++.so.6.0.10 互換性のある[標準C++共有ライブラリー|http://typea-mixi01.appspot.com/yh_s?q=%E6%A8%99%E6%BA%96C%2B%2B%E5%85%B1%E6%9C%89%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC]を確認 # yum provides libstdc++.so.5 Loaded plugins: refresh-packagekit compat-libstdc++-33-3.2.3-64.i386 : 標準 C++ 互換の共有ライブラリー Matched from: Other : libstdc++.so.5 ""compat-libstdc++-33をインストールする。 # yum -y install compat-libstdc++-33 # ldconfig !!インストール http://otndnld.oracle.co.jp/document/products/oracle10g/102/linux/B19280-02/inst_task.htm#666585 なんとか、インストーラ起動にこぎつけた。 !手順 ::Welcom Next {{ref_image ora_inst05.jpg}} ::インベントリディレクトリと権限の指定 ソフトウェアのインストールに使用するインベントリディレクトリと書き込み権限を持つOSのグループを指定する。 {{ref_image ora_inst06.jpg}} ::インストールタイプの選択 {{ref_image ora_inst07.jpg}} ::インストールパスの指定 {{ref_image ora_inst08.jpg}} ::製品固有の必須条件のチェック {{ref_image ora_inst09.jpg}} ::物理メモリが足りないので警告がでるが、かまわず進む {{ref_image ora_inst10.jpg}} ::データベースの作成を選択 {{ref_image ora_inst11.jpg}} ::データベースの構成の選択にて、汎用目的を選択 {{ref_image ora_inst12.jpg}} ::グローバルデータベース名とドメイン名の設定 *キャラクターセットに、Unicord Standard UTF-8 AL32UTF8を選択 *サンプルスキーマも作成しておく {{ref_image ora_inst13.jpg}} ::データベース管理に Database Controlを利用するにチェック *複数データベースを管理する場合、Grid Controlにチェック {{ref_image ora_inst14.jpg}} ::ストレージを指定 ,ストレージ ,ファイルシステム ,自動ストレージ管理(ASM) ,RAWデバイス {{ref_image ora_inst15.jpg}} ::自動バックアップ有効/無効設定 {{ref_image ora_inst16.jpg}} ::スキーマパスワードの指定 {{ref_image ora_inst17.jpg}} ::インストールサマリー {{ref_image ora_inst18.jpg}} ::インストールの実行 {{ref_image ora_inst19.jpg}} ::完了-パスワード管理を押下 {{ref_image ora_inst22.jpg}} ::パスワードを設定し、ロックを解除 {{ref_image ora_inst23.jpg}} ::以下のスクリプトを実行するよう指示。 +ターミナルを起動 +rootでログイン +スクリプトを起動 +OK押下 /opt/oracle/app/oraInventory/orainstRoot.sh /opt/oracle/app/oracle/product/10.2.0/db_1/root.sh {{ref_image ora_inst24.jpg}} ::完了 {{ref_image ora_inst25.jpg}} 以下をメモ ,J2EEApplication,path ,iSQL*Plus,http://localhost.localdomain:5560/isqlplus ,iSQL*Plus DBA,http://localhost.localdomain:5560/isqlplus/dba ,Enterprise Manager 10g Database Contorol,http://localhost.localdomain:1158/em !!インストール後の作業 http://otndnld.oracle.co.jp/document/products/oracle10g/102/linux/B19280-02/post_inst_task.htm#233462 !utlrp.sqlスクリプトを実行 *インストール時に(後日ではなく)実行を推奨 *パッケージ、プロシージャおよび型も含めて、無効な状態となっている可能性があるすべてのPL/SQLモジュールを再コンパイル *oracle ユーザに切り替え *oraenvまたはcoraenvスクリプトを使用して、utlrp.sqlスクリプトを実行するデータベースの環境を設定 oracle]$ ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1 oracle]$ export ORACLE_HOME oracle]$ cd /usr/local/bin oracle]$ ./oranev ORACLE_SID = [oradb1] ? oradb1 oracle]$ $ORACLE_HOME/bin/sqlplus "/ AS SYSDBA" SQL*Plus: Release 10.2.0.1.0 - Production on Mon Dec 15 06:11:57 2008 : SQL> startup ORCLE instance started. : SQL> @?/rdbms/admin/utlrp.sql : PL/SQL procedure successfully completed. ""(?)は、環境変数 ORACLE_HOME の値を表す ""(@)記号は環境変数ORACLE_SIDを表す !文字化け対策 ::Java管理ツール dbca なども、ごらんの通り {{ref_image ora_inst29.jpg}} $ORACLE_HOME/jdk/jre/lib/以下の、font.properties 等の設定がおかしいと思われるが、面倒くさいので、JRE自体を差し替える。 *[[Java 6 SDK のインストール|Fedora 9 Java 6 SDK のインストール]] *Oracle組み込みのJREのリネームと、シンボリックリンクの作成 oracle]$ cd $ORACLE_HOME/jdk oracle]$ mv jre jre.ora oracle]$ ln -s /usr/java/jdk1.6.0_11/jre jre {{ref_image ora_inst30.jpg}} まぁOK ::Enterprise Manager Database Control 以下のように、ボタン名が□□等に文字化けしている。 {{ref_image ora_inst27.jpg}} *インストール時の言語に日本語が選択されていないことが原因らしい *$ORACLE_HOME/jdk/jre/lib/fonts/ にALBANWTJ.TTF というファイルが 存在しない場合がこれに該当 ""[参照する|http://typea-mixi01.appspot.com/yh_s?q=ALBANWTJ.TTF]とOracle Warehouse Builderにオプションとして梱包されているようなので、試用版をダウンロードして、解凍、fonts フォルダからALBANWTJ.TTFをコピー {{ref_image ora_inst28.jpg}} 表示された! ::SSHからSQL*Plusを起動したときの文字化け linuxへssh接続して、sqlplusを使用するときに、Delキーや、BackSpaceキーを使用すると、文字化け(?)する。 sttyコマンドを利用 SQL>^H^H^H^H^H ← こうなる SQL>ho stty erase ^H ← BackSpaceを押下 !完了 {{ref_image ora_inst31.jpg}} やっとおわり。 !アラートログにエラー [[libocr10.so が見つからない|Oracle 10gR2 libocr10.so が見つからない]]