Oracle9iまでは、CREATE DATABASE文を発行してデータベースを作成するよう解説されていたが、Oracle10gから、DBCA(Database Configuration Assistant)を使って行うように解説されている(9iでも紹介はされていた)。
教科書では、OracleServerのインストール時に初期データベースを作成するように紹介されているが、DBCA単体で使用するほうが応用が利くため、授業ではそのように進める。
当たり前のことだが、DBCAを使うには、DBCAを起動しなければならない。WindowsとLinuxで、それぞれどのように起動するのかを解説しておく。
Windowsの場合
スタートメニューから「すべてのプログラム」→「Oracle - OraDb10g_home1」→「Configuration and Migration Tools」→「Database Configuration Assistant」を選び、クリック。
Linuxの場合
Linuxでは、Oracleをインストールしたユーザでログインし、X-Window上でコンソールを開き、「dbca」と入力してEnterキーを押す。
どちらも起動に若干の時間がかかるが、起動に成功すれば、DBCAの最初の画面が現れる。
これ以降の作業はWindows、Linuxどちらでもほぼ同じである。
ここでは、DBCA起動後の画面からデータベースを作成する方法を解説する。
2-1 ようこそ
「次へ」をクリック。 2-2 操作
データベースを作成するので「データベースの作成」を選択し、「次へ」をクリック。 2-3 データベース・テンプレート
教科書では「汎用」を選択しているが、余計なものは入れたくないので「カスタム・データベース」を選択し、「次へ」をクリック。 2-4 データベース識別情報
グローバルデータベース名、SID共に「orcl」と入力し、「次へ」をクリック。 2-5 管理オプション
「Enterprize Managerを使用してデータベースを構成」にチェックが入っていることを確認し、「次へ」をクリック。 2-6 データベース資格証明
「すべてのアカウントに対して同じパスワードを使用」にチェックが入っていることを確認し、パスワードに「oracle」と入力し、「次へ」をクリック。
※本来は「別のパスワードを使用」にチェックを入れ、それぞれのユーザに任意のパスワードを設定すべき!2-7 記憶域オプション
「ファイルシステム」にチェックが入っていることを確認し、「次へ」をクリック。 2-8 データベース・ファイルの位置
「テンプレートのデータベース・ファイル位置を使用」にチェックが入っていることを確認し、「次へ」をクリック。 2-9 リカバリ構成
「フラッシュ・リカバリ領域の指定」にチェックが入っていることを確認し、「次へ」をクリック。 2-10 データベース・コンテンツ
「標準データベース・コンポーネント」ボタンをクリックし、標準データベース・コンポーネント・ウィンドウで全て(3つ)のチェックを外して「OK」ボタンをクリック。
その後、データベース・コンテンツ・ウィンドウで「Enterprise Managerリポジトリ」以外のチェックをすべて外し、「次へ」ボタンをクリック。2-11 初期化パラメータ
そのままの状態で「次へ」をクリック。 2-12 データベース記憶域
作成されるデータファイルの位置を確認する画面。「次へ」をクリック。 2-12 作成オプション
「データベースの作成」にチェックが入っていることを確認し、「終了」をクリック。
確認ウィンドウが表示されるので、「OK」ボタンをクリックする。
※Linuxの場合、ここでデータベースの作成をしてしまうと、まず固まってしまうので、データベース作成スクリプトを作成し、そのスクリプトを使って手動で作成したほうがよい。2-13 データベースの作成処理
Database Configuration Assistantウィンドウが開き、データベースの作成処理が行われる。作成には30〜40分程度かかる。 2-14 データベース作成完了
データベースの作成が終了すると、完了の画面が表示される。「終了」ボタンをクリックすると、DBCAが終了する。
OracleServerをインストールする前と後で、どう変わったかを確認する。これを知っておかないと実務では通用しない(アンインストールで困るなど・・・)ので、しっかり把握しておくこと。
3-1 ディレクトリ構成
Cドライブのoracleフォルダを確認すると、「C:\oracle\product\10.1.0\oradata」および「C:\oracle\product\10.1.0\admin」内に、SID名で指定した「orcl」という名前のフォルダが作成されていることが分かる。 3-2 レジストリ
レジストリを確認すると、HKEY_LOCAL_MACHINE → SOFTWARE→ORACLE→KEY_OraDb10g_home1内に、多くの値が追加されていることが分かる。 3-3 サービス
サービスを確認すると、3つだったサービスが3つ追加されて6つになっていることが分かる。
このうち、「OracleDBConsoleorcl」が「Oracle Enterprize Manager 10g」のサービス、「OracleServiceORCL」が「OracleDatabase」の本体である。
これらが開始していると、PCのリソースをほとんど食いつぶすため、Oracleの授業以外では停止させておいたほうがよい。
DBCAを使用してデータベースを作成すると、作成されたデータベースは起動された状態になる。しかし、そのままでは使用に不具合があるので、それを修正する作業を解説する。
4-1 iSQL*Plusの設定
iSQL*Plusは、ブラウザ上で動作するSQL*Plusのようなもので、Oracle10gのOracleMaster試験では、これを利用してデータベースに接続し、SQL文などを発行するように解説されている。
iSQL*Plusを利用するには、Oracleがインストールされているサーバ上で、iSQL*Plusのサービスが起動している必要があるが、データベース作成直後はサービスに登録されていない。
iSQL*Plusのサービスを起動するには、コマンドプロンプトで次のように入力する。
C:\> isqlplusctl start サービスの起動に成功すると、「iSQL*Plus started.」というメッセージが表示される。
同時に、WindowsのサービスにiSQL*Plusのサービスが作成される。スタートアップの種類が「自動」で登録されているため、次回からはWindowsを起動するだけで、iSQL*Plusが利用できるようになる。もちろん他の授業には支障があるので、これも後で設定を変更する。
4-2 リスナーの設定
クライアントPCからのSQL*Plusや、iSQL*Plus、OEM(Oracle Enterprise Manager 10g)は、OracleDatabaseが稼動しているサーバで稼動しているリスナーというサービスを経由してOracleDatabaseに接続している。よって、それらを利用するにはリスナーを起動しなければならない。
リスナーを起動するには、コマンドプロンプトで次のように入力する。
C:\> lsnrctl start サービスの起動に成功すると、「コマンドは正常に終了しました。」というメッセージが表示される。
同時に、Windowsのサービスにも自動的にリスナーのサービスが作成される。スタートアップの種類が「手動」で登録されているため、Windowsを起動するだけではリスナーが利用できない。OEMなどを利用する場合は、サービスを開始させること。
4-3 ユーザの権限の修正
WindowsプラットフォームにてEnterprise Managerを使用する場合、データベースの起動・停止などの動作を行う場合、「ホスト資格証明」が必要になる場合がある。ホスト資格証明が必要な動作を行う場合、WindowsにOracleをインストールしたユーザに対して、「バッチジョブとしてのログイン権限」を与えておかなければならない。
やり方は次のとおり。
- コントロールパネルから管理ツールを開き、「ローカルセキュリティポリシー」をダブルクリック。
- 「セキュリティの設定」→「ローカルポリシー」→「ユーザー権利の割り当て」を選択し、右側のウィンドウから「バッチ ジョブとしてログオン」を探してダブルクリック
- プロパティウィンドウから、「ユーザーまたはグループの追加」ボタンをクリック
- 「選択するオブジェクト名を入力してください」というところに、Oracleをインストールしたユーザーのユーザー名を入力し、「名前の確認」ボタンをクリック
- 入力したユーザー名が正しければ、ユーザー名の前にホスト名がつく。「OK」ボタンをクリック
- プロパティウィンドウに戻ると、ユーザーが追加されていることが分かる。「適用」ボタンをクリックしてから「OK」ボタンをクリックし、ウィンドウを閉じる
これで、データベースが自由に利用できるようになった。しかし、OracleServerは大量のリソースを消費するため、Oracleが自動起動するままでは、他の授業に支障が出る。よって、普段はOracle関係のサービスが起動しないように、設定を変えておく。
コントロールパネルから管理ツールを開き、サービスアイコンをダブルクリックして、Oracle関係のサービスを表示する。
名前にOracle〜と付いているサービスのうち、スタートアップの種類が「自動」になっているものは次のとおりである。
- OracleCSService
- OracleDBControlorcl
- OracleOraDb10g_home1iSQL*plus
- OracleServiceORCL
※赤字は、データベース作成時に指定したSID名によって変化する
これらのサービスのスタートアップの種類を全て「手動」に変更する。変更したいサービスをダブルクリックしてサービスのプロパティウィンドウを開き、スタートアップの種類を「手動」に変更し、「適用」ボタンをクリック後、「OK」ボタンをクリックしてウィンドウを閉じる。
スタートアップの種類が「自動」になっていた4つのサービス全てに対してこの作業を行ったらパソコンを再起動し、全てのサービスが開始されないことを確認する(起動時間がめっちゃ早くなったはず(正確には元に戻った))。