123
[ D-2 ] Oracle8i on Linux 実践活用 ~ インストールや初期設定での疑問が解決 ~

Oracle8i on Linuxotn.oracle.co.jp/event/ows/d2.pdfMiracle Linux SEの特徴 • プリチューンされたカーネルパラメータ – あらかじめOracleの使用に適したカーネルラメータが

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

[ D-2 ]Oracle8i on Linux 実践活用~ インストールや初期設定での疑問が解決 ~

Agenda

• 日本のOracle for Linuxの歩み

• Miracle Linuxとは

• Miracle Linuxインストール

• Miracle Linux管理の基礎Oracle8i for Linuxインストール

• Oracle8i for Linux 管理の基礎

• Tips & Technique

日本のOracle for Linuxの歩み

• 1999/03 O8 WGS for Linux R8.0.5出荷

• 1999/12 O8i WGS for Linux R8.1.5出荷

• 2000/6 ミラクル・リナックス社設立

• 2000/8 O8i EE for Linux R8.1.6出荷

• 2000/9 O8i WGS for Linux R8.1.6出荷

• 2000/9 Miracle Linux SE v1.0 出荷

日本のOracle for Linuxの歩み

• 2000/9 Oracle8i Application Server 1.0出荷

• 2001/2 O8i EE for Linux R8.1.7出荷

• 2001/2 Oracle9i Application Server R1.0.2出荷

• 2001/3-4 O8i WGS for Linux R8.1.7 出荷予定

• 2001/?? Oracle Parallel Server for Linux R8.1.7出荷予定

• 2001/?? Oracle 9i for Linux出荷予定

Oracle on Linuxの適用分野

• EC・電子モールのバックエンドデータベース

• 大/中堅・小企業向け及び部門データベースサーバ

• 業務パッケージのデータベースプラットフォーム

• 開発環境として• ドット・コム ビジネスを開始するベンチャー企業

Oracle8i for Linux対応ディストリビューション(2001/2現在)

• Miracle Linux Standard Edition V1.0• TurboLinux Server 6.0/6.1 日本語版

• TurboLinux DataServer 6 for Oracle8i• Red Hat Linux 6.0 (英語版)• Red Hat Linux 6.1/6.1J/6.1J改/6.2/6.2J (英語版/日

本語版)• Red Hat Linux Enterprise Edition Optimised for

Oracle8i

ミラクル・リナックス株式会社とは

• 品質と信頼性を追求したビジネス用Linuxディストリビューションを開発する会社  

• 日本オラクル社の戦略的子会社– 販売、サポート経路として日本オラクル社が協力– 世界で一番オラクルを理解したLinux企業

– 米国Oracle社との共同サーティフィケーション体制

• 出資会社(NEC,OBC,ターボリナックスジャパン, 大塚商会、etc)との協業

Miracle Linuxとは

• 製品コンセプト– Oracleデータベースでの利用をメインターゲットとした

サーバー専用Linuxディストリビューション

– ビジネス用途に耐えうる、高品質・高信頼性

• 製品ライン– Miracle Linux Standard Edition ¥50,000– Miracle Linux for PostgreSQL ¥20,000– Miracle Linux for Samba ¥20,000

Miracle Linux SEの特徴

• Oracleに最適なインストールメニュー– Oracleデータベースでの利用を考え、用途に応じて

最適なパッケージをインストール

• Oracleインストール支援ツールの搭載– グラフィカルで直感的なインターフェイスを利用して

難しいOracleのインストールを大幅に簡略化

• RAW I/O, 4GBメモリのサポート– パフォーマンス向上のため、アプリケーションが直接

ハードディスクにデータを書き込むことを可能にする

Miracle Linux SEの特徴

• プリチューンされたカーネルパラメータ– あらかじめOracleの使用に適したカーネルラメータが

設定してあるので、面倒なカーネル再構築作業は不必要。またダイナミックに変更することも可能

• セキュアなサーバー構築を支援– セキュリティホールとなりやすいポートやサービスを

、初期設定で閉じているので、より安全なサーバーを構築可能

• あらかじめOracle8i用にコンパイルされたPHP– インストールしたらすぐにApache + PHPでプログラミ

ング可能

対応する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,

Journal File System, etc

Miracle Linuxインストール

Miracle Linuxインストール

Miracle Linuxインストール

• ハードウェア選定のポイント

• インストールのためのハードウェア要件

• インストール前の準備

• パーティション分割方法の検討• Miracle Linuxインストール

ハードウェア選定のポイント

• 実績のあるハードウェアを使用する– ミラクル・リナックス社や各ハードウェアベンダーのハ

ードウェア互換リストをチェックhttp://www.miraclelinux.com/support/hardware.html

– トライアル(FTP)版を試してみるのも1つの手– 最新のRAIDやSCSIの場合には、対応した起動ディ

スクがWebサイトに掲載されている。

• 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から

128MB。

設定例

• ディスク1台の場合-1– よくわからないときにはこれでもOK– swap 400MB– /(ルート) 残り全部

• ディスク1台の場合-2– swap 400MB– /boot 32MB– /(ルート) 2GB– /u01 1GB(Oracleのモジュールのみ)– /u02 残り全部(Oracleのデータファイル)

設定例:オートパーティショニングモード(for Oracle)• オートパーティショニングモードでは、搭載ディス

クの台数と容量で、自動的に分割方法を決定する。

• ディスク1台の場合– swap 400MB– /boot 15MB– / 2GB– /u01 残りすべて

インストールの手順

1. インストーラーの起動

2. ネットワークの設定

3. ディスクパーティションの設定※

4. インストールモジュールの選択※

5. ブートディスクの作成6. 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

ログイン方法の選択

• 運用サーバーなら迷わずテキストログイン

• 運用時にXは不要なので、グラフィカルログインはメモリのムダ使い

Miracle Linux管理の基礎

Miracle Linux管理の基礎

Miracle Linux管理の基礎

• スーパーサーバー(inetd)とTCP Wrapper

• 基本サービスを使えるようにする– telnet, ssh, FTP

• RPM• Miracle Tools• HDE Linux Controller• コンパニオンCDの使い方

• パッチの適用

inetd とTCP Wrapper(tcpd)

• スーパーサーバー(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 許可しないホスト

• 設定ファイルの書式– [ daemon_list ] : [ host_list ] (: [ command ])

TCP Wrapper

• Miracle Linuxでは、セキュリティ強化のためにデフォルトは /etc/hosts.denyがALLになっている

• telnetやftpを使うためには/etc/hosts.allowを編集する必要がある

# less /etc/hosts.denyALL: ALL

# less /etc/hosts.allowin.ftpd : 192.168.0.1 192.168.0.2in.telnetd : ml10.miraclelinux.comALL: 192.168.0.

telnetを使えるようにする

• /etc/inetd.confを確認する– # vi /etc/inetd.conf

– コメントアウトされていたときはinetdを再起動

• /etc/hosts.allowにエントリを追加

• FTPも同様

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

in.telnetd : 192.168.0.1

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」に変更

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 -qa (すべてを表示)

• インストールされていないパッケージの情報表示– 例)# rpm -qip apache-1.3.12-6.i386.rpm– # rpm -qilp apache-1.3.12-6.i386.rpm

Miracle Tools

• miraclenetcfg– ネットワークの設定

• miracleprintcfg– プリンタの設定

• miraclepkg– パッケージの追加/削除

• miracleservice– サービスの起動/停止

• miracleportcfg– inetdのポート管理

コンパニオンCD

• コンパニオンCDには、有償ソフトウェアやノンサポートのプログラムが入っている

– ATOK12(日本語入力用FEP)– 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

Oracle8i for Linuxインストール

Oracle8i for Linuxインストール

Oracle8i for Linuxインストール

• OFAの理解

• インストール手順• Install Navigator for Oracle

• 環境変数を設定する• JRE(Java Runtime Environment)• Oracle8i for Linuxのインストール

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>  データファイル

インストール手順

1. swap領域の確保

2. カーネルパラメータの調整

3. インストール先のディスクにマウントポイント作成4. Linuxグループの作成

5. Linuxユーザーの作成

6. 環境変数の設定7. Oracle8iのインストール

インストーラーを起動するまでにやるべきことはたくさんある

Miracle Linuxの場合は

• オートパーティショニングモードfor Oracleで、1~3は設定済み。

• Oracleのインストールのために、Install Navigator for Oracleをバンドル。これを使えばインストーラーを起動するまでの残りの作業を自動化。Windows版と同じ感覚でインストール可能。

• 使い方は、rootユーザーでログインして、GNOMEメニューから起動。

• R8.1.7対応版は、ミラクル・リナックス社のWebからダウンロード可能。

Install Navigator の役割

1. マウントポイントの権限変更2. グループの作成(oinstall, dba)3. Oracleオーナーの作成

4. 環境変数の追加5. Oracle Universal Installerの起動

インストール作業の大幅な簡略化

JRE(Java Runtime Environment)

• R8.1.5では、インストーラーを動かすために別途JREが必要– Miracle Linuxのコンパニオン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.6, R8.1.7では、OracleのメディアにJREが含まれているので不要

JDK(Java Development Kit)

• Oracle8i JVM(旧称JServer)で動作するアプリケーションを開発するときは必要(R8.1.6,R8.1.7)。

• R8.1.7で、Oracle HTTP Server Powered by Apacheを使用するときは、JDK 1.1.8が必要(mod_jserv)。事前にインストールしておかないと、Oracleのインストール時にエラーが発生する。

– IBMのサイトよりJDK 1.1.8をダウンロードhttp://www.ibm.com/java/jdk/118/linux/

– JDKのインストール# rpm -Uvh IBMJava118-SDK-1.1.8-4.0.i386.rpm# ls -s /usr/jdk118 /usr/local/java

インストーラーの起動

• 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参照。

JDKのインストール場所の指定

• Oracle HTTP Serverをインストールするときには、JDK1.1.8が必要。

• JDKがインストールしてあるディレクトリを指定する。

Trouble Shooting

• 既存のApacheとOracle HTTP Serverの共存– Oracle HTTP Serverをインストールすると、既存の

Apacheは停止される。今後使用しないときにはApacheの起動ファイルを修正する。

– ただしポート番号が違うので、共存することも可能。しかしApacheのコンパイル方法によってはOracle HTTP Serverと共存できない。ミラクルでは、共存できる最新バージョンをWebサイトで公開。

Oracle8i for Linux管理の基礎

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

ApacheにOracleの環境変数を設定する• Install Navigatorを使った場合、Apacheがインスト

ールしてあると、/etc/httpd/conf/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 /nologSQL> connect / as sysdbaSQL> startupSQL> exit

• データベースを停止する$ sqlplus /nologSQL> connect / as sysdbaSQL> 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.7ORA_OWNER=oracleif [ ! -f $ORA_HOME/bin/dbstart ]then

echo "Oracle startup: cannot start"exit

fi

自動起動の設定をする

• OSの起動サービスの設定– 現在の状態を表示

– 自動起動の設定を有効にする

# chkconfig --list dboradbora 0:off 1:off 2:off 3:off 4:off 5:off 6:off

# chkconfig dbora on# chkconfig --list dboradbora 0:off 1:off 2:off 3:on 4:on 5:on 6:off

Oracleが起動していることを確かめる• Linux/UNIXでは、各バックグラウンドプロセスは、プ

ロセスとしてインプリメントされている• psコマンドでプロセスを確認できる

– $ps ax | grep ora

• バックグランドプロセスの命名規則– ora_<バックグラウンドプロセス名>_<SID>– 例)SIDがorcl,バックグラウンドプロセスSMONの場合

ora_smon_orcl

エラーコードの内容を見る

• 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

Oracle8i + Miracle LinuxTips & Technique• カーネルパラメータの変更(kparam)

• RAW I/Oの設定

• パフォーマンス計測ツール• 他OSからのDB移行

• トラブルシュート– 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 268435456

RAW I/Oとは

• RAW I/Oとは、ファイルシステムを経由せずに、直接ディスクI/Oを行なうこと。

• ファイルシステムをバイパスすることにより、パフォーマンス向上が見込める。

I/Oシステム

ファイルシステムOS

SGA

インスタンス

ディスク

RAW I/Oの特徴と注意点

• Linux版では、Oracle8i R8.1.6からサポート

• メリット– OSのファイルシステムを経由しないためオーバーヘッドが小さくな

る(OSのシステムキャッシュもバイパス)– ファイルサイズの制限(2GB)を回避できる

• デメリット– バックアップや表領域の作成が面倒になる– LinuxのRAW I/Oドライバが¥¥まだ枯れていない– 必ずしも早くなるとは限らない

• 現時点では欠点も多いので、十分テストしてから、適用の是非を検討すること。「Oracle8i for Linux Intel管理者リファレンス」の RAWデバイスの節を参照。

RAW I/O設定の順序

1. パーティションの確保

2. ブロックデバイスにバインド

3. アクセス権の設定4. rawデバイスに表領域を作成

5. /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 ts12> DATAFILE ‘/dev/raw/raw1’ SIZE 100M;

RAW I/Oの設定方法(4)

• システムファイルの変更– OSを再起動するとバインドは無効になるので

/etc/rc.d/rc.sysinitの末尾にバインドの記述を追加

• マシンを再起動してから、Oracleを起動し、alert.logにエラーが出ていないか確認すること

raw /dev/raw/raw1 /dev/sda5raw /dev/raw/raw2 /dev/sda6

代表的なパフォーマンス計測ツール• CPUの監視

– top

• メモリの監視– vmstat

• sysstat(sar, mpstat, iostat)– http://perso.wanadoo.fr/sebastien.godard/(本家)

– ミラクル・リナックス社Webサイトでも、ダウンロード可能

– Miracle Linux V1.1では標準搭載予定

Oracle8iのメモリ割り当てを考える

• Oracle8iからメモリ消費量が増大した– Oracle8i JVMが導入された

– インストール時に搭載メモリに応じてメモリを割り当てるようになった

• SGAで必要なメモリ– db_block_buffers * db_block_size + shared_pool_size

+ large_pool_size + java_pool_size + log_buffer

• これ以外にも1セッションあたり数百バイト程度のメモリを消費する(init.oraパラメータに依存)。

Oracle8iのメモリ割り当てを考える

• パフォーマンスを考えるなら、搭載メモリの7割程度をOracleに割り当てるようにする。

• Oracle8i JVMを使用するときには、十分なjava_pool_sizeとshared_pool_sizeが必要。

• テスト目的であれば、もっと少なくても良い。– Oracle8i JVMを使わないならjava_pool_sizeを0に(

R8.1.5では1MB程度)。– データベースバッファや共有プールも10MB前後で

OK。もっと少なくても大丈夫だが、レプリケーションを使用するときや、ストアドプローシージャを多用するときにはshared_pool_sizeには気をつける。

異なるOracleからのデータ移行

• 他のOracleから、Linux版Oracleへ移行する

• いろいろ方法はある– Net8経由でのExport,LocalでImport– WindowsでExport(コード変換), FTP, LinuxでImport– WindowsでExport, FTP, LinuxでImport (コード変換)– テキストファイル出力, SQL*Loader– データベースリンク

Export/Importの互換性

• エクスポートファイルは上位互換性を持つが、下位互換性は無い。

• 上位バージョンのExportから下位バージョンのOracleに接続すると、該当するビューが無いというエラーが発生することがある。

• 下位バージョンのExportで上位バージョンのデータベースをエクスポートした場合、上位バージョンにしか存在しないオブジェクトはエクスポートされない。

• 基本ポリシー– 上位バージョンへの移行?エクスポート元と同じバージョンのExportを使用

– 下位バージョンへの移行?インポート先と同じバージョンのExportを使用

下位バージョンから上位バージョンへの移行1. 移行元のDBと同一バージョンのExportを使用

2. Exportファイルをインポート

Windows Linux

Export exportファイル

Windows Linux

Importexportファイル

exportファイル

上位バージョンから下位バージョンへの移行1. Net8経由で移行元のDBに接続してエクスポート

2. Exportファイルをインポート

Windows Linux

Exportexportファイル

Windows Linux

Importexportファイル

ただしOracle7のExportからOracle8/8iに接続するときには、あらかじめOracle8/8i側でcatexp7.sqlを実行しておく。

DB Assistant が起動しない(1)

• R8.1.6のDatabase Assistantは、マシンによってはコアダンプすることがある

• 対応策11. 再実行する

2. ゾンビプロセスの確認$ ps ax | grep jre

3. ゾンビプロセスがあったときには削除$ kill –9 pid

繰り返し

DB Assistantが起動しない(2)

• 対応策2(これは最後の手段)1. 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

2. dbassistを書き換える$ vi $ORACLE_HOME/bin/dbassist変更前:JAVA_HOME=$ORACLE_HOME/JRE変更後:JAVA_HOME=/usr/local/bin

正規サポートの対象外になる可能性があるので注意!

インストーラーが文字化けする

• R8.1.6,R8.1.7では、日本語モードでインストーラー(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

– メッセージや日付表記は英語表示する文字コードはEUC

JavaベースユーティリティのNLS対応• Oracle Universal Installerをはじめ、Oracle

Enterprise Manager、各種AssistantはNLS_LANGとは関係ない

• したがってNLS_LANGをいくら設定しても、表示言語は変わらない

• 関係ある環境変数– LANG– LC_ALL

短時間にDBをインストールする

• データベースを作成するときに、Oracle8i JVM(JServer)をインストールすると、データベースの作成に異常に時間がかかることがある。とくに非力なマシンでは顕著。

• Oracle8i JVMを使わないのであれば、インストールしないこともできる。

• それでもOracle8i JVMを手軽に試す方法は…– 初期DBを「CD-ROMからコピー」すればよい。

※R8.1.5は不可

初期DBのインストール手順

1. Oracle8iインストール時には、データベースを作成しない。

2. インストール終了後、NLS_LANGに日本語のキャラクタセットが設定されてあることを確認。

3. Database Assistantを起動し、「CD-ROMからコピー」を選択する。

• CD-ROMに格納されている初期データベースをコピーするだけなので、短時間に終了する

• ただし初期DBは、お試し用として考えること。

Dababase Configuration Assistantの仕組み1. メディアに含まれている初期データベースをコピー。

2. インストールするディレクトリ構成に合わせ、制御ファイルを再作成。

3. ALTER DATABASE で、データベースのキャラクタセットをNLS_LANGと同じ設定に変更する。NLS_LANGの値が未設定のときには、何も行なわない。

※ Windowsでは、NLS_LANGは自動的に設定されるので気にならないが、NLS_LANGを手動で指定しなけばならないLinux/UNIXでは、Database Configuration Assistant を起動するときのNLS_LANG の値が重要になる。

 

•  

Oracle8i for LinuxR8.1.7 新機能

Oracle8i for LinuxR8.1.7 新機能

Oracle8i R8.1.7 for Linux 新機能

• Javaの拡張– Oracle8i JVM accelerator– Oracle Servlet Engine– Oracle JavaServer Pages

• XMLサポートの強化

• Oracle HTTP Server(Powered by Apache)搭載

• Oracle Enterprise ManagerのLinux対応

Oracle Enterprise Manager

• Oracle8i R8.1.7からは、Linux上でもOracle Enterprise Managerが使えるようになった

Oracle Parallel Server for Linux

• ハードウェアベンダーと協業作業中• 8.1.7出荷後にオプションとして出荷予定• サーティファイされたH/Wのみのサポート

• 対応ディストリビューションは、対応ハードウェアがサーティファイ/サポートしたディストリビューション上でのサポートになる予定

Intel 64bit(IA64)CPUへの対応

• 4GBを越えるラージメモリの利用が可能– 巨大なOLAPや検索用途向き

• U.S. OTN上にデモ版(8.1.6)が公開済み– テストユーザーから実稼働の報告有り

• 出荷は9iのタイミング?

Webサイト&メーリングリスト

• ミラクル・リナックス株式会社– http://www.miraclelinux.com

• Miracle Linux Users メーリングリスト– [email protected] へ、本文に

#guide とだけ記入したメールを送付

Webサイト&メーリングリスト

• Oracle Technology Network Japan– http://technet.oracle.co.jp – 技術情報:「テクノロジー」→「Linux & Windows」– 会議室:「フォーラム」→「Linuxの部屋」

– トライアル版ダウンロード:「ソフトウェア」

– 日本語オンラインマニュアル:「ドキュメント」

• Oracle Technology Network– http://technet.oracle.com