データベースとインスタンスOracleマイスター養成講座(1)

» 2001年01月23日 00時00分 公開

 本連載では、Oracleの管理やチューニングなど、一歩踏み込んだ運用術を紹介し、「Oracleマイスター」*を目指していただく。今回は運用の最も基本となるデータベースの起動/終了を通して、Oracleの「インスタンス」という概念を解説する。

*マイスター:Meister
英語のマスター(master)に相当するドイツ語で、「親方」「名人」などの意

Oracleマイスターとは?

 今回からOracleのデータベース管理の基礎についてのお話を始めたいと思います。

 Oracle on Linuxの発売以降、Oracleもずいぶん手軽に使えるようになってきましたが、ある程度本格的に業務などに使うには、やはりPCクライアントなどとは違って、それなりの知識と準備が必要です。かといって、それほど大きく構える必要はありません。ちょっとしたコツや工夫をするだけで、十分実用に堪えるデータベースにすることができます。

 本連載は、主に以下のような方を想定して書いていきたいと思います。

  • 自分の興味や必要にせまられて、Oracleのインストールをやってみた
  • インストーラで作られるデフォルトデータベースを少しいじってみた
  • 経験はないが、これから本格的に仕事に使ってみたい

 こうした方々を対象に、運用のためのコツやチューニング方法を紹介し、「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マイスターへの前準備

 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_SIDORACLE_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 internalstartupと入力します。

$ 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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。