人気コンテンツ今日: |
SolarisにOracle10gをインストールsasaki 木曜, 2008-09-11 10:07
Solaris 10 x86版にOracle10gをインストール。 社内にあるSolarisにインストール、といっても海外にあるため、X Windowでの接続はものすごく動作が遅く1日7時間かけても終わらず、インストールとパッチ当てだけで3日間かかってしまった。 後日、別のSolarisにOracleをインストールするときに、試しにVNCで接続してみた。これがものすごい快適! ◎ GUIを利用するインストール → VNCで作業する。(twmの画面で十分。日本語も表示される) ◎ unzip等のシェルでの作業 → sshで接続したターミナルで作業する。 これが一番時間がかからなかった。 あっという間にインストールが終わった。 参考URL
下準備編
■Oracle10gデータベース・ソフトウェアを入手するOracle Database Software Downloads
■ソフトウェア用件を確認する必要なパッケージを確認する。インストールされていないものはインストールしておく。 # pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot \ 参考サイト
■Oracleソフトウェア・ディレクトリを作成するオーナー名: oracle(または、ora01、ora02など) グループ名: oinstall(または、dba、oradbaなど) マウントポイント: /u01
ベース、インベントリ、ホームの3つのディレクトリがこのように決まる。 Oracleベース・ディレクトリ: /u01/qpp/オーナー名 Oracleインベントリ・ディレクトリ: /u01/app/オーナー名/oraInventory Oracleホーム・ディレクトリ: /u01/app/オーナー名/product/10.2.0
ユーザーを作成する。 # groupadd oinstall
Oracleベース・ディレクトリをあらかじめ作っておく。 # mkdir -p /u01/app/オーナー名
■Oracleデータベース・ファイルをしまうディレクトリを作成するマウントポイント: /u02 データベースファイルを保存するためのディレクトリ /u02/oradata を作っておく。 # mkdir -p /u02/oradata
■カーネルパラメータの値を変更するあくまでも推奨値で、これらの値をチューニングしてシステムのパフォーマンスを最適化することをインストールマニュアルの中で薦めている。 パラメータファイルをバックアップしてから、viで値を変更、追加した。 # cd /etc/
今まで利用してきたV240の値を参考にメモしておいた。 変更後は、再起動する。 # shutdown -y -i6 -g0
X Windowを利用してインストール編
■Oracle ユーザーの環境の構成1. デフォルトのファイル・モード作成マスクに値022を指定する。 $ su - oracle $HOME/.profile ORACLE_BASE=/u01/app/オーナー名; export ORACLE_BASE .profile内に、ORACLE_SID、ORACLE_HOME等が設定されていたら、削除しておく。とインストールマニュアルに書いてあるが、別に書いておいても問題なかった。インストール後に変更があったところは再度修正する。
2. .profileを有効にする。 $ . ./.profile
3. Xアプリケーションが表示されるかを確認しておく。 $ /usr/openwin/bin/xlogo
4. df -h コマンドで、/tmpの空きが400MB以上あることを確認しておく。足りない場合は次のようにTMPとTMPDIR環境変数を設定しておく。 $ TMP=/u01/tmp
5. ORACLE_BASE、ORACLE_SID環境変数を設定する。(SIDは5文字以内) $ ORACLE_BASE=/u01/app/オーナー名
■インストール作業1. インストールファイルを抽出する。 $ gunzip oracleインストーラファイル.cpio.gz Disk1が作成される。
インストーラを日本語で表示したいときは、インストーラ実行前にLANGを指定しておく。 $ LANG=ja
2. インストーラを実行する。DVDから直接起動する場合は、/tmpに移動してから実行する。 $ ./runInstaller (MacのVMware+Solaris10で、海外のSolarisサーバに接続してOracleのインストール作業を行ったところ、インストーラの画面が表示されるのに1分くらい待たされた。しかもチェックボックスなど、クリックしてから反応があるまで15秒〜1分くらい待たされる。)
インストール方法の選択 勝手にdb_1等のディレクトリが指定されることもあるので、ちゃんと確認しておく。 初期データベースの作成のチェックを外しておく。 インストール、パッチ当ての後にdbcaコマンドを使ってデータベースを作成する。
インベントリ・ディレクトリ /u01/app/オーナー名/oraInventory Oracle製品の構成情報、インストール・ログ等が保存される。
サマリー インストーラ起動前に、LANG=jaを指定しておいた場合、 製品の言語 ・日本語 ・英語 という表示がされる。 両方とも英語の場合、EMDC(WebによるOracleの管理)の画面のボタン等が文字化けした。
スクリプトをrootユーザで実行 /u01/app/オーナー名/oraInventory/orainstRoot.sh ・oraInventoryディレクトリが770となり、グループオーナー名が変更される。 /u01/app/オーナー名/product/10.2.0/root.sh ・/usr/local/bin/以下にコマンドがインストールされる。 ・/var/opt/oracle/oratabファイルが作られる。(DBCAで利用される)
iSQLの案内 http://ホスト名:5560/isqlplus http://ホスト名:5560/isqlplus/dba
3. インストール完了後、インスタンスを停止する データベースをインストールした場合は、インスタンスが自動起動される。 パッチを当てるために、一度インスタンスを終了する。 $ $ORACLE_HOME/bin/dbshut
パッチ編
■パッチソフトウェアを用意するhttps://metalink.orcle.comにログインして、Pathesからダウンロードする。 $ unzip p5337014_10203_Solaris86-64.zip
■インストーラを日本語で表示するインストーラを日本語で表示したいときは、インストーラ実行前にLANGを指定しておく。 $ LANG=ja
■パッチを適用する10.2.0.0.0 -> 10.2.0.3.0 へのパッチを適用する。 $ cd Disk1 GUIの対話式のインストーラでパッチを適用する。 名前: oraDb10g_home1 という名前が勝手についたことを知る。 パス: /u01/app/オーナー名/product/10.2.0 と正しく指定されている。 サマリーが表示され、インストールを実行される。 roo.shを実行する際に/usr/local/bin/*を置換えるか聞かれるので、yを入力する。
初期データベースの作成編
■DBCAを利用してデータベースを作成する$ $ORACLE_HOME/bin/dbca 1. 操作 データベースの作成を選択して次へ。
2. データベーステンプレート 汎用またはカスタムを選択して次へ。 カスタムを選択すると、パーティショニングやデータマイニングを選ばないですむ。 ウチの会社は、使えない契約なのでカスタムインストールを選択する。
3. データベース識別情報 グローバル・データベース名: sales.example.com(salesでもかまわない) SID: sales
4. 管理オプション 「Enterprise Managerを使用してデータベースを管理」のチェックを外す。 「データベース管理にDatabase Controlを使用します」は、使わない。
ウチの会社ではOEM (Oracle Enterprise Manager) によるモニタリングを使わない方針。SYSMAN processは起動されないということになる。 Oracle Data Mining、Oracle Text, Oracle OLAP、Oracle Spatial(地理情報)、Enterprise Manager Repositoryはインストールしない。
5. データベース資格証明 パスワード: xxxxx パスワードの確認: xxxxx 管理内容によって、実際の管理者が異なる場合は、ユーザ毎にパスワードを入力する。 ・SYS 最高権限を持っている。 ・SYSTEM 管理情報を表示するオブジェクトを作成する。SYSに最も近い管理権限。 ・DBSNMP データベース監視のEnterprise Managerが利用するユーザー。 ・SYSMAN Enterprise Managerのスーパー管理ユーザー。インスタンスを管理する。
6. 記憶域オプション ファイルシステムを選択して、次へ。 ・ファイルシステム OSで使用する通常のファイルによって保存する。 ・自動ストレージ管理ASM 10gから利用できる新しいファイル管理システム。 ・RAWデバイス OSを利用せず、直接ディスクのI/Oを利用する。(10gからは、ASMが推奨されている)
7. データベース・ファイルの位置 「すべてのデータベース・ファイルに対して共通の位置を使用」をチェックする。 インストーラが英語表示の場合は、Use Common Location for All Database Filesと表示される。 データベース・ファイルの位置: /u02/oradata/SID名
8. リカバリ構成 フラッシュ・リカバリ領域: {ORACLE_BASE}/flash_recovery_area フラッシュ・リカバリ領域サイズ: 2048MB(HDDに余裕があれば大きめに) アーカイブ有効化: 自動アーカイブにチェック。 アーカイブ・ログ・ファイル形式: %t_%s_%r.dbf /u01/oradata/SID名 /u02/oradata/SID名 /u03/oradata/SID名 (この段階で、アーカイブ用に/u01/oradataと/u03/oradataディレクトリを作った。ついでにchmod 775 oradataしておいた。)
9. データベース・コンテンツ サンプル・スキーマ チェックして作成すると以下のスキーマが作成される。 ・人事管理スキーマHR(Human Resources) ・受注スキーマOE(Order Entry) ・製品メディア・スキーマPM(Product Media) ・販売履歴スキーマSH(Sales History)
10. 初期化パラメータ メモリ: 標準 40% メモリが32GBあるので、20%の6.4GB割り当てた。 そのときのメモリー分散の値... SGAサイズ: 1536MB PGAサイズ: 1602MB Oracleプロセスのサイズ: 40MB Oracleで使用するメモリーの合計: 3178MB サイズ指定: ブロックサイズ: 8192バイト プロセス数: 150(初期化ファイル・パラメータPROCESSESに指定される) キャラクタ・セット: デフォルトを使用: JA16EUC 各国語キャラクタ・セット: AL16UTF16 デフォルト言語: 日本語 デフォルトの日付書式: 日本 接続モード 専用サーバー・モード または 共有サーバー・モード 今回は、社内のイントラネット用なのでクライアント数がせいぜい数十人で、メモリも多めなので「専用サーバー・モード」にした。リソース(メモリ)が限界に近づいているマシンでないし、不特定人数がアクセスするサイトでもないので専用を選択。 共有に設定しておいて、バッチ処理は専用にすることも可能。接続記述子の中に(SERVER=DEDICATED) を入れれば専用サーバーモードになる。バッチ処理のときは、conn scott/tiger@orcl-bat、OLTPは、conn scott/tiger@orcl-oltpのように接続する。
11. データベース記憶域 ファイルの位置を確認する。 制御ファイル: 初期状態では、同じディレクトリが指定されているが、できるだけ物理的に異なるハードディスクに分散させる。今回は、別ハードディスクにu03を作って/u03としてシンボリックリンクを張った。 {DB_NAME}は、冗長で邪魔なので削った。 control01.ctl: /u01/oradata/SID名/ control02.ctl: /u02/oradata/SID名/ control03.ctl : /u03/oradata/SID名/ 最大データファイル数: 100 最大REDOログ・ファイル数: 16 最大ログ・メンバー数: 3 データファイル: {DB_NAME}が冗長で邪魔なので削った。 system01.dbf: /u02/oradata/SID名/ undotbs01.dbf: /u02/oradata/SID名/ sysaux01.dbf: /u02/oradata/SID名/ users01.dbf: /u02/oradata/SID名/ temp01.dbf: /u02/oradata/SID名/ example01.dbf: /u02/oradata/SID名/ → デモ用のデータベース REDOログ・ファイル: REDOログ・ファイルも複数のハードディスクに分散することが推奨されている。 {DB_NAME}指定は冗長で邪魔なので、削除した。 サイズは全て同じにする。 redo01.log: /u01/oradata/SID名/ 51200KB redo02.log: /u02/oradata/SID名/ 51200KB redo03.log: /u03/oradata/SID名/ 51200KB
12. 作成オプション データベースの作成 をチェックする。 データベース作成スクリプトの生成 をチェックする。保存先は、/u01/app/オーナー名/admin/SID名/scripts
最後に「完了ボタン」を押せば、確認画面が表示される。以前作った同じSID名のデータベースが存在している場合は、上書きしてよいかを訪ねてくる。 データベースの詳細が表示されたら、HTML形式でどこかに保存しておくと便利。 OKボタンで、データベースの作成が始まる。
(ORA-01081: cannot start already-running ORACLE - shut it down first というアラートが表示されたので、ps -ef で調べたところデータベースらしきものは動いていなかった。$ORACLE_HOME/bin/dbshutを念のために発行してから、無視ボタンで続行した。そしたら、ORA-01034: ORACLE not availableが表示される。なので、/u02/oradata/SID名/* のファイルを別のディレクトリに移動させて、もう一度完了ボタンを押した)
データベース作成が完了後、ログファイルとサーバ・パラメータ・ファイルの場所を知らせてくれる。 ログ・ファイル /u01/app/ユーザ名/product/10.2.0/cfgtoollogs/dbca/SID名 サーバー・パラメータ・ファイル /u01/app/ユーザ名/product/10.2.0/dbs/spfilesSID名.ora Database Control http://サーバ名:5500/em または1158ポートが指定される。
パスワード管理ボタン: サンプルスキーマを作ったときはSCOTT等のアカウントロックを外しておくとよい。
インストールが終わると、インスタンスが自動起動される。
■SQL*Plusで接続してみるsysで接続できればOK。 $ sqlplus /nolog
メモリ使用量を確認 SQL> show sga
ユーザーの一覧 SQL> select username, created from all_users;
表領域の確認 SQL> select tablespace_name, status, contents from dba_tablespaces;
接続設定編■Oracle Net Managerを使って接続設定を行う$ cd $ORACLE_HOME/bin サービス・ネーミングを作成・設定する。 (tnsnames.ora) Oracle Netの構成 > ローカル > サービス・ネーミング の+をクリックする。 または、編集メニューから作成を選ぶ。 ネット・サービス名: orclなど適当に。 プロトコル: TCP/IP ホスト名: IPアドレスまたは、ホスト名 ポート番号: 1521 Oracle8i以上のサービス名: orcl 接続タイプ: データベースのデフォルト 共有サーバーで稼働している場合でも、接続タイプを専用サーバーとして作成できる。バッチ処理のときなどに、そのネット・サービス名を指定して接続すればよい。
リスナーを作成・設定する。(listener.ora) リスナー名: LISTENER プロトコル: TCP/IP ホスト: IPアドレスまたはホスト名 ポート: 1521 データベース・サービスをプルダウンメニューから選んでデータベースの追加をクリック。 グローバル・データベース名: orcl Oracleホーム・ディレクトリ: /u01/app/オーナー名/product/10.2.0 SID: orcl
忘れずに、ファイルメニューからネットワーク構成の保存を選ぶ。 以下の2つのファイルが作成または更新される。 /u01/app/オーナー名/product/10.2.0/network/admin/listener.ora /u01/app/オーナー名/product/10.2.0/network/admin/tnsnames.ora
リスナーの起動と終了 $ lsnrctl stop
インスタンスの起動と停止編・SQL*Plus ・UNIXコマンド ・シェルスクリプト 等によってインスタンスの起動と停止ができる。
■SQL*Plusを使ったインスタンスの起動と停止sqlplusを起動する。 $ sqlplus /nolog SYSとしてログインする。 SQL> conn sys as sysdba インストール時に指定したパスワードを使用する。Oracle8iとかだとchange_on_installがパスワード。 データベースを停止する。 SQL> shutdown ・shutdown normal 全てのセッションが終了するのを待ってから、データベースとインスタンスが停止する。normalは省略可。 ・shutdown transactional 実行中のトランザクションが終了するのを待ってから、データベースとインスタンスを停止する。 ・shutdown immediate 実行中のトランザクションをロールバックして、データベースとインスタンスを終了する。 ・shutdown abort 強制終了する。コミットもロールバックもしない。データベースの整合性がとれないため、次回の起動時にリカバリが自動実行される。(インスタンス・リカバリと呼ばれている)
データベースを起動する。 SQL> startup
■コマンドラインでのインスタンスの起動と停止$ORACLE_HOME/bin にあるシェルスクリプトコマンドを利用する。 $ dbshut
oratabの場所。dbstartスクリプトの中に書いてある。 Solaris: /var/opt/oracle/oratab 他のUNIX: /etc/oratab
/etc/oratabを用意しておいてもよい。 # cd /etc
/etc/oratabを次のように編集する。 変更前
dbstartシェルスクリプトを実行する。($ORACLE_HOME/bin/dbstart) $ dbstart dbstartスクリプトの中身を見ると、第一引数でORACLE_HOME_LISTNERが指定されていないメッセージが表示される。毎回、引数を指定するのは面倒なので変更する。
$ORACLE_HOME/bin/dbstart , $ORACLE_HOME/bin/dbshut ともに変更。 変更前
うーん、ここまでくるのに2つトラブりました。以下、ご参考まで。
設定ファイルの確認編■.profileoracleオーナーの.profileをインストール後、設定を確認、修正する。 ORACLE_BASE=/u01/app/オーナー名; export ORACLE_BASE
■listener.oraとtnsnames.ora/u01/app/オーナー名/product/10.2.0/network/admin/listener.ora LISTENER = /u01/app/オーナー名/product/10.2.0/network/admin/tnsnames.ora ORCL =
インスタンスの自動起動ファイル編■起動の仕組みと手順を確認する1. /var/opt/oracle/oratab(Solaris)、/etc/oratab(Linux)でYを指定する。 2. $ORACLE_HOME/bin/dbstart と dbshut が働いてくれることを確認する。 3. /etc/init.d/dboraを作成して、dbstartとdbshutを呼び出す。 4. /etc/init.d/dboraのシンボリックリンクを/etc/rc*.d/に作る。
■/etc/init.d/dboraを作成するシェルスクリプトをvi等で作成する。 /etc/init.d/dbora #!/bin/sh 実行権を与えておく。 # chmod 755 /etc/init.d/dbora シンボリックリンクを作成する。 # ln -s /etc/init.d/dbora /etc/rc0.d/K10dbora Linuxの場合は、rc0にK10dbora、rc5にS99dbora、rc6にK10dboraとしてシンボリックリンクを作る。
サイレント・モードでインストール編
サイレント・モードでインストールをチャレンジ中に、X WindowやVNCで接続ができることが分かったので、途中でGUIインストールへ変更してしまった。よって記事が書きかけのままで終わっている。。。
■oraInst.locファイルを作成する/var/opt/oracleディレクトリが存在しない場合は作成する。 # -p mkdir /var/opt/oracle viでoraInst.locファイルを作成して次の行を入力する。 inventory_loc=/u01/app/オーナー名/oraInventory オーナー名は、上記参照。ほとんどの場合、oracleがよく使われる。
所有者とグループと権限を設定する。 # chown オーナー名:グループ名 oraInst.loc
■レスポンス・ファイルを準備する
■インストーラを用意するダウンロードしたファイルを解凍する。 $ gunzip 10gr2_db_sol.cpio.gz
印刷用 | カウント(169)
|
Solarisamazon広告英語お勧め教材! 英語の学校でも使っているのですが、1つのストーリーを3分で読めて、内容も面白く、もっと早く出会いたかった本です。 Apple好きで英語も勉強したいならこの一冊! 天気情報ブログパーツ |