本連載では、Oracleの管理やチューニングなど、一歩踏み込んだ運用術を紹介し、「Oracleマイスター」*を目指していただく。今回は運用の最も基本となるデータベースの起動/終了を通して、Oracleの「インスタンス」という概念を解説する。
*マイスター:Meister
英語のマスター(master)に相当するドイツ語で、「親方」「名人」などの意
今回からOracleのデータベース管理の基礎についてのお話を始めたいと思います。
Oracle on Linuxの発売以降、Oracleもずいぶん手軽に使えるようになってきましたが、ある程度本格的に業務などに使うには、やはりPCクライアントなどとは違って、それなりの知識と準備が必要です。かといって、それほど大きく構える必要はありません。ちょっとしたコツや工夫をするだけで、十分実用に堪えるデータベースにすることができます。
本連載は、主に以下のような方を想定して書いていきたいと思います。
こうした方々を対象に、運用のためのコツやチューニング方法を紹介し、「Oracleマイスター」を目指していただきたいと思います。
ここでは「Oracleマイスター」を以下のように定義します。
プロフェッショナルまではいかないが、Oracleデータベースの基本的な知識を持ち、小規模なデータベースの運用管理が行える人
もちろんすでにOracleの運用に携わっている方にも、備忘録的に使ってもらえるように書いていきたいと思います。また、特に断らなければOSはRed Hat系のLinux(Kernel 2.2.14以降)、Oracleは最新版ではありませんが、一番普及していて運用に使われている(と思われる)Oracle 8.0.5を前提として話を進めていきます。ただし、話の内容によってはOracle 8i(8.1.5以降)についても随時触れていきたいと思います。
さて、「Oracleマイスター」であるデータベース管理者には次のような役割があります。
どれもOracleマイスターには重要な仕事であり、どれが一番とはいえません。逆にいうと、Oracleマイスターには上記をそれぞれ均等に考慮しながら、業務要件に合わせてデータベースを設計・管理・運用していく能力が求められるのです。
Oracleマイスターとなるには、なにはともあれ手元にOracleがインストールされたマシンがなくてはなりません。しかし、ここでは詳しいインストール方法やOSの設定についてはほかに譲ることにします。各種書籍やOracle購入元のサポート、またいろいろなホームページなどを参照するとよいでしょう。ちなみに、私の知っている範囲では
Oracle On Linux 奮戦記
http://member.nifty.ne.jp/m_tada/
知って得するOracle8
http://www.ee.e-mansion.com/~egami/
などのホームページが参考になります。
では、早速Oracleマイスターへの道を歩き始めましょう。まずは最も基本となるデータベースの起動と停止です。Oracleをインストールしたときにデフォルトデータベースを作成した人は、実際に以下のように起動・停止をしてみてください。普段はGUIのツールを使っている人も、理解を深めるためにもコマンドでの起動・停止をやってみてください。
1.まず、インストール時に指定したOracle用の管理IDでLinuxにログインします。
$ su - oracle password:XXXXXXXX
2.環境変数ORACLE_SIDとORACLE_HOMEを確認します。
$ echo $ORACLE_SID $ORACLE_HOME SFO /oracle/app/oracle/product/8.0.5
“SFO”は私が付けたインスタンス名です。またORACLE_HOMEはOracleがインストールされているディレクトリを指定しています。もし何も表示されなければ、
$ export ORACLE_SID=SFO $ export ORACLE_HOME=/oracle/app/oracle/product/8.0.5
と入力して指定します。もちろん内容はそれぞれデータベースを作成したときの値を使用してください。ORACLE_SIDとORACLE_HOMEについては後述します。
3.次にデータベースを起動します。シェルからsvrmgrlと入力し、続いてconnect internal、startupと入力します。
$ svrmgrl Oracle Server Manager Release 3.0.5.0.0 - Production (c) Copyright 1997, Oracle Corporation. All Rights Reserved. Oracle8 Release 8.0.5.0.0 - Production PL/SQL Release 8.0.5.0.0 - Production SVRMGR> connect internal Connected. SVRMGR> startup ORACLE instance started. Total System Global Area 4554000 bytes Fixed Size 48400 bytes Variable Size 4227072 bytes Database Buffers 204800 bytes Redo Buffers 73728 bytes Database mounted. Database opened. SVRMGR>
svrmgrl
サーバマネージャと呼ばれるコマンドです。主にインスタンスの起動・停止を行うときに使用します。
connect internal
初期インスタンスに接続します。ここではコマンドを打ち始める前のおまじないと思ってください。
startup
実際にデータベースを立ち上げるコマンドです。
4.次にデータベースを終了します。同じようにsvrmgrlを起動してconnect internalしてから、shutdownと入力します。
$ svrmgrl Oracle Server Manager Release 3.0.5.0.0 - Production (c) Copyright 1997, Oracle Corporation. All Rights Reserved. Oracle8 Release 8.0.5.0.0 - Production PL/SQL Release 8.0.5.0.0 - Production SVRMGR> connect internal SVRMGR> shutdown Database closed. Database dismounted. ORACLE instance shut down. SVRMGR>
データベースの勉強を始めるにあたって、最初に出てくる非常になじみにくい言葉が“インスタンス”です。これは、おおざっぱにいうとデータベースシステムのまとまりのことであり、データベースを起動・停止する単位を表します。管理者の立場から見ると、1つのデータベース管理単位となります。UNIXの世界では環境変数「ORACLE_SID」で表されます。
インスタンスは、同じマシンの中に複数存在させることができます。それどころか環境変数を変更することにより、Oracleの異なったバージョンを共存させることもできます。
バージョンを管理するための環境変数が“ORACLE_HOME”です。このORACLE_HOMEはOracleがインストールされているディレクトリを指定します。上記の例では/oracle/app/product/8.0.5にOracle
8.0.5がインストールされていることを示しています。もし上記のマシンにOracle 8.1.6がインストールされているとすると、以下のように環境変数を変えるだけで8.1.6のインスタンスを扱うことができます。
$ export ORACLE_HOME=/oracle/app/product/8.1.6 $ export ORACLE_SID=NRT $ $ORACLE_HOME/bin/svrmgrl Oracle Server Manager Release 3.1.6.0.0 - Production Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved. Oracle8i Release 8.1.6.1.0 - Production JServer Release 8.1.6.0.0 - Production
ただし、svrmgrlがおかれているディレクトリのパスには気を付けなければなりません。
さて、データベースの起動と停止はいかがでしょうか? 簡単だったと思います。簡単ではありますがsvrmgrl、そしてstart/shutdownにはいろいろな含蓄そしてドラマ(?)があるのです。まずは幾度かインスタンスの起動・停止を実際に行ってみましょう。
次回は、この「インスタンス」を構成する要素についてお話ししたいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.