Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
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インストール
ハードウェア選定のポイント
• 実績のあるハードウェアを使用する– ミラクル・リナックス社や各ハードウェアベンダーのハ
ードウェア互換リストをチェック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の場合
• パーティション分割のメリット
• パーティション分割の候補
• 設定例
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の設定※
このセッションでは※についてだけ説明します
オートパーティショニングモード
• オートパーティショニングモード(for Oracle )– 搭載ディスク数に応じて、OFAを意識したパーティシ
ョン分割を行なう
– 既存のパーティションはすべて削除される– Linux専用マシン&初心者向け
• オートパーティショニングモード(Normal)– 搭載ディスク数に応じて、一般的なパーティション分
割が行なわれる
– 既存のパーティションはすべて削除される
インストールメニュー
• 多機能サーバ– ほとんどすべてインストール。推奨。
• 標準的オラクル 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
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インストール
• 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 &
このセッションでは、ポイントとなる画面だけについて説明します
Trouble Shooting
• 既存のApacheとOracle HTTP Serverの共存– Oracle HTTP Serverをインストールすると、既存の
Apacheは停止される。今後使用しないときにはApacheの起動ファイルを修正する。
– ただしポート番号が違うので、共存することも可能。しかしApacheのコンパイル方法によってはOracle HTTP Serverと共存できない。ミラクルでは、共存できる最新バージョンをWebサイトで公開。
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) ;
自動起動の設定をする• 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 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 配下を利用することにより、カーネルの再構築をすることなく、ダイナミックにパラメータを変更可能
動的なカーネルパラメータの変更
• /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 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 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