Oracl8i on Miracle Linux
導入の勧め
Ajenda
• Miracle Linuxとは • Linux + Oracleのシステム構成例 • Miracle Linuxインストール • Miracle Linux管理の基礎 ∼ 休憩∼• Oracle8i for Linuxインストール • Oracle8i for Linux 管理の基礎 • Tips & Technique
このセミナーの対象としている方
• Miracle Linuxについて知りたい方
• Oracle8i for Linuxの導入を検討している方 • これまでWindows版のOracleしか経験のない方 • Oracleの基本的知識がある方
ミラクル・
リナックス株式会社とは
• 品質と信頼性を追求したビジネス用Linuxディストリ ビューションを開発する会社 • 日本オラクル社の戦略的子会社 – 販売、サポート経路として日本オラクル社が協力 – 世界で一番オラクルを理解した Linux企業 – 米国Oracle社との共同サーティフィケーション体制 • 出資会社(NEC,OBC,ターボリナックスジャパン, 大塚商会、etc)との協業OSとDBMSの1ストップサポート
の実現
OSの会社 DBの会社 エンドユーザー OSの会社 DBの会社 エンドユーザー 今までは... これからは...Miracle Linuxとは
• 製品コンセプト • 特徴 • おもなソフトウェアのバージョン • 対応するOracleのバージョン • ロードマップコンセプト
• Oracleデータベースでの利用を
メインターゲットとしたサーバー専
用Linuxディストリビューション
• ビジネス用途に耐えうる、高品質・
高信頼性
Miracle Linux Standard Edition
• 【製品名】
– Miracle Linux Standard Edition V1.0
(ミラクル・リナックス スタンダード エディション) • 【製品価格】 – 50,000円
特徴
• Oracleに最適なインストールメニュー – Oracleデータベースでの利用を考え、用途に応じて 最適なパッケージをインストール • Oracleインストール支援ツールの搭載 – グラフィカルで直感的なインターフェイスを利用して 難しいOracleのインストールを大幅に簡略化 • RAW I/O, 4GBメモリのサポート – パフォーマンス向上のため、アプリケーションが直接 ハードディスクにデータを書き込むことを可能にする特徴
• プリチューンされたカーネルパラメータ – あらかじめ Oracleの使用に適したカーネルラメータが 設定してあるので、面倒なカーネル再構築作業は不 必要。またダイナミックに変更することも可能 • セキュアなサーバー構築を支援 – セキュリティホールとなりやすいポートやサービスを 、初期設定で閉じているので、より安全なサーバーを 構築可能 • あらかじめOracle8i用にコンパイルされたPHP – インストールしたらすぐにApache + PHPでプログラミ ング可能おもなソフトウェアのバージョン
• kernel 2.2.16 • glibc 2.1.3 • XFree86 3.3.6 • Apache 1.3.12 • Samba 2.0.7 • PHP 3.0.15(Oracle用にコンパイル済み)対応するOracleのバージョン
• Oracle 8i R8.1.5 • Oracle 8i R8.1.6
※Oracle8i R8.1.7については、リリース後すぐに V1.0で対応予定
※既存のユーザーに対しては、Install Navigator for OracleのR8.1.7対応版をフリーダウンロード予定
ロードマップ
• 2000/9 Miracle Linux SE V1.0 出荷開始 • 2001/1H Miracle Linux SE V1.1 出荷予定 – セキュリティパッチ、バグフィックス • 2001/2H Miracle Linux SE V2.0 – kernel 2.4対応 – IA64– Large File System, Logical Volume Manager,
システム構成例扉
システム構成例
システム構成例
• Webシステム1 • Webシステム2 • Webシステム3 • C/Sシステム(従来のシステム)Webシステム1
• もっとも一般的なWebシステム Linux Apache PHP HTMLファイルへの PHPスクリプト埋め込み BrowserWebシステム2
• Oracle HTTP Serverを使用(R8.1.7以降) Linux Oracle HTTP Server ・Javaストアドプロシージャ ・ Servlet ・ EJB・ Java Server Pages ・ PL/SQL Server Pages Browser
Webシステム3
• 大規模システム
Linux
iAS
Load Balancer
Many Web Server Fat DB Server
Solaris, HP-UX,AIX,etc Oracle8i Browser
C/Sシステム
• 従来のシステムLinux
Oracle8i
Windows VB,Developer DB Server C/S Application ・ODBC ・OLE-DB ・etcMiracle Linux
インストール
Miracle Linuxインストール
• ハードウェア選定のポイント • インストールのためのハードウェア要件 • インストール前の準備 • パーティション分割方法の検討 • Miracle Linuxインストールハードウェア選定のポイント
• 実績のあるハードウェアを使用する – ハードウェア互換リストをチェック http://www.miraclelinux.com/support/hardware.html – 新しいチップセットとグラフィックスカードには注意 – トライアル(FTP)版を試してみるのも1つの手 • Linux自体は軽いが、Oracleを快適に動作させる ためには新しいハードが良い。メモリも多めにつ んでおくこと。Miracle Linux + Oracle8iの
インストール要件
• CPU :Pentium 200MHz以上 • メモリ :128MB以上(推奨256MB以上) • HDD :2GB以上 • スワップ領域:搭載メモリの2倍もしくは400MBの 大きいほう • CD-ROMドライブインストール前の準備
• ハードウェア情報の収集 – メモリサイズ、チップセット、BIOS、ハードディスク構 成、ビデオカード、CRT、ネットワークカードなど – CD-ROMブートの確認 • ネットワーク情報の収集 • 起動ディスク用のブランクディスケットの用意 • ディスクのパーティショニング方法の検討パーティション分割方法の検討
• パーティションとは • OSによる違い – DOS/Windowsの場合 – Linuxの場合 • パーティション分割のメリット • パーティション分割の候補 • 設定例パーティションとは
• パーティションとは、1つのディスクドライブ上で論 理的に分割された各領域のこと。 • UNIX/Linux初心者にとって、パーティション分割 は悩ましい問題。OSによる違い
• DOS/Windowsの場合 – DOS/Windowsでは、パーティションごとにCやDなど とドライブ文字を割り当て、それらを並列に使用して いた。 • Linux/UNIXの場合 – 各パーティションをマウントし、一つのディレクトリツリ ーとして管理する。 /(ルート) swap /tmpパーティション4(基本)
パーティションとは
• 1つのディスクは最大4つのパーティションに分割 でき、これらの情報はMBR(ディスクの一番最初 のセクタ)内のパーティションテーブルに格納され ている。 • パーティションテーブルに登録されているパーティ ションを基本パーティションという。 パーティション3(基本) パーティション2(基本) パーティション1(基本) MBRパーティションとは
• 4つ以上のパーティションが必要な場合には、そ のうち1つを拡張パーティションにできる。 • 拡張パーティションの中には、ディスクのタイプに よって複数の論理パーティションを作成できる。 – IDE:パーティションの合計数 63個 – SCSI:パーティションの合計数 15個 パーティション2(拡張) パーティション1(基本) MBR 論理パーティション 論理パーティションパーティション分割のメリット
• ファイルシステム障害の局所化 • ディスク容量不足によるトラブル防止 • 性能劣化の防止 • 複数OSの共存 – Miracle Linuxはサーバー用途なので、テスト目的以 外ではマルチブートは推奨できない • ただし初心者が適当に分割すると、あとで容量不 足で困ることがあるパーティション分割の候補
• swap – 仮想記憶のスワップの領域。 • /boot – Linuxの起動に必要なファイルが格納される。 – BIOSの仕様や不具合により、別パーティションにして、なるべく ディスクの先頭のほうにしたほうが良い。 – 15MBから32MB • /(ルート) – ファイルシステムのトップになるディレクトリ。 – 他のパーティションとの兼ね合いがあるので一概にサイズは決 定できない。 – ディスクが1台しかないマシンでは、swapとルートだけでもOK。パーティション分割の候補
• /home – ユーザーのホームディレクトリとなるため、ユーザーデータなど が置かれる。 – 別パーティションにしておくと、OSをそのまま入れ替えできるの で便利。 • /usr – プログラムやライブラリが置かれている。 • /var – システムのログやスプールなどが置かれている。サーバーだと 、128MBから1GB。 • /tmp – 一時ファイル用のディレクトリ。サーバーだと、64MBから128 MB。設定例
• ディスク1台の場合-1 – よくわからないときにはこれでもOK – swap 400MB – /(ルート) 残り全部 • ディスク1台の場合-2 – swap 400MB – /boot 32MB – /(ルート) 2GB – /u01 1GB(Oracleのモジュールのみ) – /u02 残り全部(Oracleのデータファイル)設定例:
オートパーティショニングモ
ード(
for Oracle)
• オートパーティショニングモードでは、搭載ディス クの台数と容量で、自動的に分割方法を決定す る。 • ディスク1台の場合 Ÿ swap 400 MB Ÿ /boot 15 MB Ÿ / 2 GB Ÿ /u01 残り全てインストールの手順
Ÿ インストーラーの起動 Ÿ ネットワークの設定 Ÿ ディスクパーティションの設定※ Ÿ インストールモジュールの選択※ Ÿ ブートディスクの作成 Ÿ X Window Systemの設定※ このセッションでは※についてだけ説明しますインストーラーを起動する
• CD-ROMをセット して、PCを起動 • あとは、好みに合 わせてリターンを たたくだけ • CD-ROMブートが できない機種は、 FDでブートパーティションの分割
• 上級者は、間違い なくマニュアルモ ード • 分割方法の詳細 は後述オートパーティショニングモード
• オートパーティショニングモード(for Oracle ) – 搭載ディスク数に応じて、OFAを意識したパーティシ ョン分割を行なう – 既存のパーティションはすべて削除される – Linux専用マシン&初心者向け • オートパーティショニングモード(Normal) – 搭載ディスク数に応じて、一般的なパーティション分 割が行なわれる – 既存のパーティションはすべて削除されるインストールモジュールの選択
• 多機能サーバを 選ぶこと • 不要なモジュール は停止しておけば よい • 選択によっては、 Xがインストールさ れないインストールメニュー
• 多機能サーバ – ほとんどすべてインストール。推奨。 • 標準的オラクル RDBMS 用サーバ – Oracleの利用に適した、もっとも一般的な構成。 ApacheやSambaはインストールされません。 • Apache 利用オラクル RDBMS 用サーバ – Oracle と Apache を利用するときに適した構成。 • Samba 利用オラクル RDBMS 用サーバ – OracleとSamba を利用するときに適した構成。インストールメニュー
• オラクル RDBMS 用最小構成サーバ – データベース専用サーバなど、運用サーバとしての 利用に適した構成。X Window Systemはインストー ルされないので、Oracle8i のGUI インストーラを使う ためには、 他のコンピュータの X Window Systemを 利用する必要がある。 • 最小構成サーバ – ファイヤウォールなど、最小構成のLinuxサーバを構 築するときに適した構成。インストールメニュー
• パッケージ選択 – あらかじめ用意されたインストールタイプでなく、独自 の構成にしたい場合に選択。 • パッケージリスト – あらかじめ用意したパッケージリストを使ってインスト ールしたい場合に選択。 • インストールされるパッケージの詳細は次のURL を参照。 http://www.miraclelinux.com/tech/index2.html色数の選択
• 16bpp(Bit Par Pixel) =65536色がお勧め
ログイン方法の選択
• 運用サーバーなら 迷わずテキストロ グイン • 運用時にXは不要 なので、グラフィカ ルログインはメモリ のムダ使い •Miracle Linux
管理の基礎
Miracle Linux管理の基礎
• スーパーサーバー(inetd)とTCP Wrapper • 基本サービスを使えるようにする – telnet, ssh, FTP • RPM • Miracle Tools• HDE Linux Controller • コンパニオンCDの使い方 • パッチの適用
inetd と TCP Wrapper
• スーパーサーバー(inetd)は、telnetやftpなどのデ ーモンプロセスを、必要に応じて起動する • デーモンの 効率的な起動と セキュリティの 確保が目的inetd
sshd
httpd
telnet ftp
スーパーサーバー(
inetd)
• 設定は/etc/inetd.confで行なう • 有効にする方法 – コメントアウトされているときには外す Ÿ – inetdを再起動するftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a #telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
# vi /etc/inetd.conf
# killall HUP inetd
TCP Wrapper
• tcpdは、目的のサーバープログラムを安全に実行 するためのアクセス方法を提供する
• Miracle LinuxはDeny ALLプローチ • tcpd の設定ファイル
– /etc/hosts.allow 許可するホスト – /etc/hosts.deny 許可しないホスト
• 設定ファイルの書式
TCP Wrapper
• Miracle Linuxでは、セキュリティ強化のためにデ フォルトは /etc/hosts.denyがALLになっている • telnetやftpを使うためには/etc/hosts.allowを編集 する必要がある # less /etc/hosts.deny ALL: ALL # less /etc/hosts.allow in.ftpd : 192.168.0.1 192.168.0.2 in.telnetd : ml10.miraclelinux.com ALL: 192.168.0.telnetを使えるようにする
• /etc/inetd.confを確認する – # vi /etc/inetd.conf – コメントアウトされていたときはinetdを再起動 • /etc/hosts.allowにエントリを追加telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
sshとは
• sshはセキュリティを強化したリモートログイン方式 • telnetやrshとは異なり通信が暗号化される • バンドルされているのはフリーのOpenSSH • telnetよりも、こちらを推奨 • Windows版のプラグインモジュールもあるssh
∼サーバーの設定∼
• sshdが動作していることを確認 – デフォルトで起動済み – # ps ax | grep sshd • /etc/hosts.allowの編集 – sshはinetdを経由しない • 接続方法 – $ ssh ユーザー名@ホスト名ssh
∼Windowsクライアントを使う∼
• Tera Term Pro
– 定評あるターミナルエミュレーター – http://hp.vector.co.jp/authors/VA002416/ • TTSSH – Tera TermのSSH拡張モジュール – http://www.zip.com.au/~roca/ttssh.html – インストール方法 Ÿ 解凍してできた3つのファイル(ttssh.exe, ttxssh.dll, libeay32.dll)をTera Termのディレクトリへコピー Ÿ Tera Termのリンク先を「ttssh.exe」に変更
FTPを使えるようにする
• /etc/inetd.confを確認する – # vi /etc/inetd.conf – コメントアウトされていたときはinetdを再起動 • /etc/hosts.allowにエントリを追加ftp stream tcp nowait root /usr/sbin/tcpd in.ftpd -l -a
RPM
• ソフトウェアの配布形式のひとつで、Red Hat社が 開発 • 多くのLinuxディストリビューションで採用され、 もっとも普及している • 特徴 – インストール、アンインストール、アップグレードが簡単 – パッケージの依存関係も管理 – バイナリパッケージとソースパッケージの2つの形式RPMの使い方1
• パッケージのインストール – rpm -ivh パッケージファイル名 – 例) # rpm -ivh apache-1.3.12-6.i386.rpm • パッケージのアップグレード – 例) # rpm -Uvh apache-1.3.12-6.i386.rpm • パッケージの削除 – 例) # rpm -e apache • Miraclepkgを使えば、メニュー形式でも操作可能 Intel系プログラムの バイナリパッケージRPMの使い方2
• インストールされているパッケージの検索 – 例) # rpm -q apache # rpm -qi apache • インストールされていないパッケージの情報表示 – 例) # rpm -qip apache-1.3.12-6.i386.rpm – # rpm -qilp apache-1.3.12-6.i386.rpmMiracle Tools
• miraclenetcfg – ネットワークの設定 • miracleprintcfg – プリンタの設定 • miraclepkg – パッケージの追加/削除 • miracleservice – サービスの起動/停止 • miracleportcfg – inetdのポート管理HDE Linux Controller
• HDE Linux Controllerはブラウザベースの システム管理ツール
• Miracle Linux Standard Edition V1.0にバンドル
コンパニオンCD
• コンパニオンCDには、有償ソフトウェアやノンサ ポートのプログラムが入っている
– ATOK12
– Adobe Acrobat Reader – HDE Linux Controller – Netscape Communicator – TrueTypeフォント5書体 – JRE
• Miraclepkgでインストール可能 • 詳細はindex.html参照
パッチの適用
• Linuxのメリットは、結構頻繁にセキュリティパッチが出る こと。 • 各パッケージのバージョンアップも商用アプリケーションに 比べれば多い。 • ミラクル・リナックス社では、Webサイトでパッチやアップデ ートモジュールを提供している。有償サポート契約ユーザ ーへはCD-ROMでの提供もあり。 – http://www.miraclelinux.com/support/index.html • ただしバージョンアップすると、設定ファイルの仕様が変 わってしまい、以前の設定ファイルが使えなくなることが あるので注意。Trouble Shooting
• メモリが認識されない – 搭載メモリが認識されているか確認 # cat /proc/meminfo – 認識されていない場合はliloの設定を変更。詳細は サポートのFAQを参照 • CD-ROMでブートできない – CDブートできるようになっているか、BIOSを確認Oracle8i for Linux
インストール
Oracle8i for Linuxインストール
• OFAの理解 • インストール手順
• Install Navigator for Oracle • 環境変数を設定する
• JRE(Java Runtime Environment)
OFA
(
Optimal Flexible Architecture)
• OFAは、Oracleのインストール位置やファイルの 命名に関する指針 • Oracle8iからは、Windowsでもデフォルトに • 一台のコンピュータに複数バージョンのOracleを 導入するときや、たくさんのディスクドライブを使 用する大規模データベースでは特に有効 • 必要条件ではないが、このガイドラインに沿うと管 理が楽になる
OFAの例
• /u01 マウントポイント /app/oracle/ ORACLE_BASE /app/oracle/product/8.1.6 ORACLE_HOME /app/oracle/admin/<SID> init.ora,etc • /u02/oradata/<SID> データファイル • /u03/oradata/<SID> データファイル • /u04/oradata/<SID> データファイルインストール手順
Ÿ swap領域の確保 Ÿ カーネルパラメータの調整 Ÿ インストール先のディスクにマウントポイント作成 Ÿ Linuxグループの作成 Ÿ Linuxユーザーの作成 Ÿ 環境変数の設定 Ÿ Oracle8iのインストール インストーラーを起動するまでに やるべきことはたくさんあるLinux版のインストールは難しい?
• Windows NT/2000では、2から6の作業は不要。 • Windows 版しか経験してないと、Linux/UNIX版 のOracleのインストールに、何日もかかってしまう こともある。 • インストール作業は、システム開発における本質 的な作業ではないので、簡単にできるにこしたこ とはない。Miracle Linuxの場合は
• インストーラーを起動するまでの作業をほぼ自動化。 Windows版と同じ感覚でインストール可能。 • 1.swap領域の確保 – 「オートパーティショニングモード for Oracle」を選択したと きには、デフォルトで400MBを確保 • 2 .カーネルパラメータの調整 – チューニング済み • 3 .マウントポイントの作成 – オートパーティショニングモード では作成済みInstall Navigator for Oracle
• Oracleのインストー ル支援ツール • 4から6までを 自動化 • rootユーザーでロ グインして、 GNOMEメニュー から起動
Install Navigator の役割
• マウントポイントの権限変更
• グループの作成(oinstall, dba)
• Oracleオーナーの作成
• 環境変数の追加
• Oracle Universal Installerの起動
インストール作業の大幅な簡略化
JRE(
Java Runtime Environment)
• R8.1.5では、インストーラーを動かすために別途 JREが必要 • R8.1.6, R8.1.7では、メディアにJREが含まれてい るので不要 • 製品版ではコンパニオンCDに入っている # rpm -Uvh jre-1.1.6v5-2.i386.rpm • Webからダウンロード(http://www.blackdown.org) # tar zxvf jre_1.1.6-v5-glibc-x86.tar.gz # ln -s /usr/jre116 /usr/local/jre
インストーラーの起動
• R8.1.5,R8.1.6は日本 語表示はノンサポー ト。Install Navigatorを 使わない場合は次の ようにする $ export LANG=C $ export LC_ALL=C $ cd /mnt/cdrom $ ./runInstaller & このセッションでは、ポイントとなる 画面だけについて説明しますOracleをインストールする
UNIXグループの指定
• Oracleをインストー ルするユーザーの プライマリグループ を指定 • 通常はoinstallインストールタイプの選択
• 英語モードでインス トーラーを動かして いるときには、必ず 「Custom」を選択 • そうしないと日本語 のリソースをインス トールできないコンポーネントの選択
• この画面でProduct Languagesを選択し 、「Japanese」をイン ストールするOSDBA,OSOPERグループの指定
• OS認証を使って SYSDBAや SYSOPER権限でロ グインするための UNIXグループを指 定するデータベース作成の選択
• インストールと同時に データベースを作成 するときにはYes • Yesでは、CD-ROMか ら初期DBをコピーは 選択できない。TIPS 参照。Oracle8i for Linux
管理の基礎
Oracle8i for Linux管理の基礎
• OracleにアクセスするOSユーザーを作成する • ユーティリティを起動する • データベースを起動/停止する • データベースを自動起動/停止する • Oracleが起動していることを確かめる • 接続しているデータベースを変更する • エラーコードの内容を見る
Oracleにアクセスする
OSユーザーを作成する
• Oracleの管理者ユーザーを作成する
– ユーザー名・パスワード無しでSYSDBAとして接続可能 – # useradd -g dba -G oinstall o816
# passwd o816 – 環境変数を設定する • Oracleにアクセスする一般ユーザーを作成する – # useradd foo # passwd foo – 環境変数を設定する
代表的な環境変数
• ORACLE_BASE 例)/u01/app/oracle • ORACLE_HOME 例)/u01/app/oracle/product/8.1.6 • ORA_NLS33 例) $ORACLE_HOME/ocommon/nls/admin/data • LD_LIBRARY_PATH 例)$ORACLE_HOME/lib • PATH 例)$PATH:$ORACLE_HOME/bin • NLS_LANG 例)Japanese_Japan.JA16EUC • ORACLE_SID 例)orcl • ORACLE_DOC 例)$ORACLE_HOME/doc • CLASSPATH 例)$ORACLE_HOME/JRE, $ORACLE_HOME/product/jlib, etc環境変数を設定する
• 現行セッションで設定する
– $ export ORACLE_SID=orcl
• ファイルに設定する
– 「.bashrc」もしくは「.bash_profile」に設定。Install
Navigator for Oracleでは「.bashrcに設定」
– xtermではLD_LIBRARY_PATHがリセットされる • ファイルに設定した環境変数をすぐに有効にする – $ . .bashrc
環境変数を設定する
• Install Navigatorを使った場合、Apacheがインスト ールしてあると、httpd.bootoptにもOracle関連の 環境変数を追加 • これがないとcgiやPHPでOracleが使えないユーティリティを起動する
Linux版では、すべてコマンドラインから起動する • SQL*Plus(sqlplus) • Server Manager(svrmgrl ) • Import(imp) • Export(exp) • SQL*Loader(sqlldr)• Net8 Configuration Assistant(netca) • Database Configuration Assistant(dbasst)
データベースを起動/停止する
• データベースを起動する $ sqlplus /nolog SQL> connect / as sysdba SQL> startup SQL> exit • データベースを停止する $ sqlplus /nolog SQL> connect / as sysdba SQL> shutdown [immediate] SQL> exit Server Managerや internalユーザーによ る接続は、R8.1.7が 最後になる予定データベースの自動起動/停止
• インストールしたままでは自動起動しない • Miracle Linuxがあらかじめ用意しているdboraを 利用 • 設定の手順 – 1./etc/oratabファイルの編集 – 2. dbstat,dbshutの修正 – 3. /etc/rc.d/init.d/dboraの確認 – 4.OSの起動サービスの設定自動起動の設定をする
• /etc/oratabの編集 – /etc/oratabファイルの書式 – /etc/oratabファイルを修正する Ÿ $ vi /etc/oratab SID:ORACLE_HOME:[Y|N] orcl:/u01/app/oracle/product/8.1.6:Y自動起動の設定をする
• dbstartの修正(R8.1.6のみ) – $ vi $ORACLE_HOME/dbstart • 修正前(64行目) • 修正後 /PL¥/SQL (Release|Version)/ {substr($3,1,3) ;/(PL¥/SQL|JServer) (Release|Version)/ {substr($3,1,3) ;
自動起動の設定をする
• dbshutの修正 – $ vi $ORACLE_HOME/dbshut • 修正前 • 修正後 shutdown Shutdown immediate自動起動の設定をする
• dboraの確認 – ORA_HOME($ORACLE_HOME)と ORA_OWNER(oracleユーザー)が正しく設定されて いるかを確認 – # vi /etc/rc.d/init.d/dbora ORA_HOME=/u01/app/oracle/product/8.1.6 ORA_OWNER=oracle if [ ! -f $ORA_HOME/bin/dbstart ] thenecho "Oracle startup: cannot start" exit fi
自動起動の設定をする
• OSの起動サービスの設定 – 現在の状態を表示 – 自動起動の設定を有効にする# chkconfig --list dbora
dbora 0:off 1:off 2:off 3:off 4:off 5:off 6:off
# chkconfig dbora on # chkconfig --list dbora
Oracleが起動していることを
確かめる
• Linux/UNIXでは、各バックグラウンドプロセスは、プ ロセスとしてインプリメントされている • psコマンドでプロセスを確認できる – $ps ax | grep ora • バックグランドプロセスの命名規則 – ora_<バックグラウンドプロセス名>_<SID> – 例)SIDがorcl,バックグラウンドプロセスSMONの場合 ora_smon_orcl接続するデータベースを変更する
• 一台のコンピュータに複数個のインスタンスがあ るときには、環境変数で接続先のデータベースを 切り替える – $ export ORACLE_SID=orcl – $ sqlplus system/managerエラーコードの内容を見る
• oerrは、エラーコードの内容を表示するプログラム – oerr エラーの種類(ora,expなど) エラーコード • R8.1.6では日本語メッセージファイルが入っていない – $ cd $ORACLE_HOME/rdbms/mesg $ ln -s oraus.msg oraja.msg $ oerr ora 10000100, 00000, "no data found"
// *Cause: An application made reference to unknown or inaccessible data. // *Action: Handle this condition within the application or make appropriate // modifications to the application code.
// NOTE: If the application uses Oracle-mode SQL instead of
// ANSI-mode SQL, ORA-01403 will be generated instead of ORA-00100.
•
Oracle8i
+ Miracle Linux
Tips & Technique
Oracle8i + Miracle Linux
Tips & Technique
• カーネルパラメータの変更(kparam)
• RAW I/Oを設定する • パフォーマンス計測ツール
• 他プラットフォームからのDB移行 • Enterprise Edition vs Workgroup Server • トラブルシュート – Database Assistantが起動しない – インストーラーが文字化けする – DB作成に異常に時間がかかる
kparamとは
• Linux/UNIX版Oracleでは、搭載メモリに応じて カーネルパラメータを変更する必要がある。 • 通常カーネルパラメーターを変更する場合は、ヘッ ダーファイルの修正や、カーネル再構築が必要。 • kparamは、カーネルを再構築せずにカーネル パラメーターを変更するMiracle Linux独自の拡張 機能。kparamのメリット
Miracle Linuxの場合は、 • 共有メモリ – 共有メモリセグメントの最大サイズ(SHMMAX)を、シ ステムに搭載されているメモリ量からOracle データベ ース適した値を求め、自動的に設定 • セマフォ – システムコール「semop」1回あたりのセマフォ操作の 最大数(SEMOPM)を、Oracle データベースに適した 値に設定 – /proc 配下を利用することにより、カーネルの再構築 をすることなく、ダイナミックにパラメータを変更可能kparamのメリット
ほかのLinuxでは、 • SHMMAXはダイナミックに変更できるが再起動 するとリセットされる • SHMOPMを、変更するためにはカーネルの再構 築が必要動的なカーネルパラメータの変更
• /proc/sys/kernel による動的な変更 – SEMOPM (セマフォ操作の最大値) – SHMMAX(共有メモリの最大値) • 以下の方法によって、システムをリブートすること なく動的に値を変更可能 – SHMMAX を 256MB に変更したい場合 # echo 268435456 > /proc/sys/kernel/shmmax – SEMOPM を 256 に変更したい場合 # echo 256 > /proc/sys/kernel/semopm設定ファイルへの保存
• システムのリブート後でも、新たに設定した値を 自動的に反映させたい場合 – # vi /etc/sysconfig/kparam • 編集前の /etc/sysconfig/kparam の内容 – /proc/sys/kernel/semopm 100 – /proc/sys/kernel/shmmax 134217728 • 編集後の /etc/sysconfig/kparam の内容 – /proc/sys/kernel/semopm 256 – /proc/sys/kernel/shmmax 268435456 /proc/sys/kernel/semopm 100 /proc/sys/kernel/shmmax 134217728 /proc/sys/kernel/semopm 256 /proc/sys/kernel/shmmax 268435456RAW I/Oとは
• RAW I/Oとは、ファイル システムを経由せずに、 直接ディスクI/Oを行なう こと。 • ファイルシステムをバイ パスすることにより、 パフォーマンス向上が 見込める。 I/Oシステム ファイルシステムOS
SGA インスタンス ディスクRAW I/Oの特徴と注意点
• Linux版では、Oracle8i R8.1.6からサポート • rawデバイスにアクセスするときにはOSのシステ ムキャッシュをバイパスする • 現時点では欠点が多いので、十分テストしてから 、適用の是非を検討すること• 「Oracle8i for Linux Intel管理者リファレンス」
RAW I/O設定の順序
Ÿ パーティションの確保 Ÿ ブロックデバイスにバインド Ÿ アクセス権の設定 Ÿ rawデバイスに表領域を作成 Ÿ /etc/rc.d/rc.sysinitにバインドの記述を追加RAW I/Oの設定(
1)
• パーティションの確保 – fdiskなどでディスクパーティションを作成 • rawキャラクタデバイスをブロックデバイスにバインド – /dev/sda5, /dev/sda6 があるとき# raw /dev/raw/raw1 /dev/sda5 # raw /dev/raw/raw2 /dev/sda6
RAW I/Oの設定(
2)
• バインド状況を確認
# raw -qa
/dev/raw/raw1: bound to major 8, minor 5 /dev/raw/raw1: bound to major 8, minor 6
• アクセス権の設定
– /dev/raw/rawNの所有者とグループを、oracleオーナ
ーと一致させる # raw -qa
/dev/raw/raw1: bound to major 8, minor 5 /dev/raw/raw1: bound to major 8, minor 6
# chown oracle /dev/raw/raw1 # chgrp oinstall /dev/raw/raw1
RAW I/Oの設定方法(
3)
• raw デバイスに表領域を作成 – REDOログファイルをrawデバイスに配置することも できる – 使用できるサイズは、 パーティションサイズ−2オラクルブロック CREATE TABLESPACE ts1DATAFILE ‘/dev/raw/raw1’ SIZE 100M $ sqlplus system/manager
SQL> CREATE TABLESPACE ts1
RAW I/Oの設定方法(
4)
• システムファイルの変更 – OSを再起動するとバインドは無効になるので /etc/rc.d/rc.sysinitの末尾にバインドの記述を追加 • マシンを再起動してから、Oracleを起動し、 alert.logにエラーが出ていないか確認することraw /dev/raw/raw1 /dev/sda5 raw /dev/raw/raw2 /dev/sda6
代表的なパフォーマンス計測
ツール
• CPUの監視 – top • メモリの監視 – vmstat• sysstat(sar, mpstat, iostat)
– http://perso.wanadoo.fr/sebastien.godard/ – Miracle Linux SE V1.1では標準搭載予定
異機種からのDB移行
• Windows NT/2000版Oracleから、Linux版Oracle へ移行する • いろいろ方法はある – Net8経由でのExport(推奨) – WindowsでExport(コード変換), FTP, LinuxでImport – WindowsでExport, FTP, LinuxでImport (コード変換) – テキストファイル出力, SQL*Loader – DB Linkネットワーク経由での移行
• Net8経由で移行元のDBに接続してエクスポート • Exportファイルをインポート Windows Linux Export exportファイル Windows Linux Import exportファイル ここでコード変換Enterprise Editionと
Workgroup Serverの使い分け
• 自分に必要な機能で考えること • Enterprise Editionには大規模系のシステムに有 効な機能がついている – ビットマップインデックス – パーティショニング(Option) – マルチマスターレプリケーション – etc • Enterprise, Workgroup 機能比較表 – http://www.oracle.co.jp/o8i/matrix/index.htmlDB Assistant が起動しない(
1)
• R8.1.6のDatabase Assistantは、マシンによって はコアダンプすることがある • 対応策1 – 再実行する – ゾンビプロセスの確認 $ ps ax | grep jre – ゾンビプロセスがあったときには削除 $ kill –9 pid 繰り返しDB Assistantが起動しない(2)
• 対応策2(これは最後の手段) – JRE116v5を入手 • 製品版ではコンパニオンCDに入っている # rpm -Uvh jre-1.1.6v5-2.i386.rpm • Webからダウンロード(http://www.blackdown.org) # tar zxvf jre_1.1.6-v5-glibc-x86.tar.gz # ln -s /usr/jre116 /usr/local/jre – dbassistを書き換える $ vi $ORACLE_HOME/bin/dbassist 変更前:JAVA_HOME=$ORACLE_HOME/JRE 変更後:JAVA_HOME=/usr/local/bin 正規サポートの対象外になる 可能性があるので注意!インストーラーが文字化けする
• R8.1.6では、日本語モードでインストーラー(OUI) を起動すると文字化けする • 少なくともR8.1.5, R8.1.6では、OUIは英語モード で使うのが基本 • OracleのNLS対応に関する考察 – Oracle本体および周辺ツール – JavaベースのツールOracleのNLS対応
• Oracleは、昔から1つのバイナリでさまざまな言語
に対応(NLS:National Language Support)
• NLS_LANGの値によって、表示言語や日付の表 示形式、文字コードを決める • NLS_LANGはOSの環境変数として設定 Windows ではレジストリにも設定できる
NLS_LANGに指定する値
「言語_地域.文字コード」の形式で指定する • Japanese_Japan.JA16EUC – メッセージや日付の表示は日本語 表示する文字コードは日本語EUC • Japanese_Japan.JA16SJIS – 表示する文字コードはシフトJIS • American_America.US7ASCII • American_America.JA16EUC – メッセージや日付表記は英語 表示する文字コードは EUCJavaベースユーティリティの
NLS対応
• Oracle Universal Installerをはじめ、Oracle
Enterprise Manager、各種AssistantはNLS_LANG とは関係ない • したがってNLS_LANGをいくら設定しても、表示 言語は変わらない • 関係ある環境変数 – LANG – LC_ALL
DB作成に異常に時間がかかる
• データベースを作成するときに、Oracle8i JVM (JServer)をインストールすると、データベースの 作成に異常に時間がかかることがある。とくに非 力なマシンでは顕著。 • Oracle8i JVMを使わないのであれば、DB Assistantでインストールしないようにする。 • Oracle8i JVMを手軽に試す方法は… – 初期DBを「CD-ROMからコピー」すればよい。 ※R8.1.5は不可短時間にDBをインストールする
• Oracle8iインストール時には、データベースを作 成しない。 • NLS_LANGに日本語のキャラクタセットが設定 されてあることを確認。 • インストール終了後にDatabase Assistantを起動 し、「CD-ROMからコピー」を選択する。 • CD-ROMに格納されている初期データベースを コピーするだけなので、短時間に終了する • ただし初期DBは、お試し用として考えること。Dababase Configuration Assistant
の仕組み
• メディアに含まれている初期データベースをコピー。 • インストールするディレクトリ構成に合わせ、制御ファイ ルを再作成。 • ALTER DATABASE で、データベースのキャラクタセット をNLS_LANGと同じ設定に変更する。NLS_LANGの値 が未設定のときには、何も行なわない。 ※ Windowsでは、NLS_LANGは自動的に設定されるので 気にならないが、NLS_LANGを手動で指定しなけばなら ないLinux/UNIXでは、Database Configuration Assistant を起動するときのNLS_LANG の値が重要になる。Webサイト&メーリングリスト
• 日本オラクル株式会社
– http://www.oracle.co.jp/linux/
• ミラクル・リナックス株式会社
– http://www.miraclelinux.com
• Miracle Linux Users メーリングリスト
– miracle-users-ctl@miraclelinux.com へ、本文に
#guide とだけ記入したメールを送付
Webサイト&メーリングリスト
• Oracle Technology Network Japan
– http://technet.oracle.co.jp
– 技術情報:「テクノロジー」→「Linux & Windows」 – 会議室:「フォーラム」 →「Linuxの部屋」
– トライアル版ダウンロード:「ソフトウェア」 – 日本語オンラインマニュアル:「ドキュメント」
• Oracle Technology Network