Oracle9iまでは、CREATE DATABASE文を発行してデータベースを作成するよう解説されていたが、Oracle10gから、DBCA(Database Configuration Assistant)を使って行うように解説されている(9iでも紹介はされていた)。
教科書では、OracleServerのインストール時に初期データベースを作成するように紹介されているが、DBCA単体で使用するほうが応用が利くため、授業ではそのように進める。
なお、R1とR2で操作にはほとんど違いはないが、R2ではより日本語化が進んでいる。このページは、R2のDBCAを解説する。
当たり前のことだが、DBCAを使うには、DBCAを起動しなければならない。WindowsとLinuxで、それぞれどのように起動するのかを解説しておく。
Windowsの場合
スタートメニューから「すべてのプログラム」→「Oracle - OraDb10g_home1」→「コンフィグレーションおよび移行ツール」→「データベース・コンフィギュレーション・アシスタント」を選び、クリック。
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 リカバリ構成
「フラッシュ・リカバリ領域の指定」にチェックが入っていることを確認し、フラッシュ・リカバリ領域サイズを適当な大きさに調整して「次へ」をクリック。
演習ではこんなに大きな領域は不要なので、数Mで十分である。2-10 データベース・コンテンツ
「データベース・コンポーネント」タブ内の各コンポーネントのうち、「Enterprise Managerリポジトリ」以外のチェックを全て外す。
その後、「標準データベース・コンポーネント」ボタンをクリック。2-11 標準データベース・コンポーネント
標準データベース・コンポーネントのウィンドウが表示される。
全てのチェックを外し、「OK」ボタンをクリック。2-12 データベース・コンテンツ
データベース・コンテンツのウィンドウに戻る。「次へ」ボタンをクリック。 2-13 警告
(多分だけど)メモリが少ないと、この警告画面が出る。「OK」ボタンをクリック。 2-14 初期化パラメータ
先の警告メッセージ通り、物理メモリの割り当てが調整されているはず。このままの状態で「次へ」ボタンをクリック。 2-15 データベース記憶域
作成されるデータファイルの位置を確認する画面。「次へ」ボタンをクリック。 2-16 作成オプション
「データベースの作成」にチェックが入っていることを確認し、「完了」ボタンをクリック。
※Linuxの場合、ここでデータベースの作成をしてしまうと、まず固まってしまうので、データベース作成スクリプトを作成し、そのスクリプトを使って手動で作成したほうがよい2-17 確認
確認ウィンドウが表示されるので、「OK」ボタンをクリックする。
2-18 データベースの作成処理
Database Configuration Assistantウィンドウが開き、データベースの作成処理が行われる。作成には30〜40分程度かかる。 2-19 Windowsセキュリティの重要な警告
データベース作成中、Windowsファイアウォールの警告画面が表示される。「ブロックを解除する」ボタンをクリック。 2-20 データベース作成完了
データベースの作成が終了すると、完了の画面が表示される。「終了」ボタンをクリックすると、DBCAが終了する。
DBCAによってデータベースを作成すると、完了と同時にデータベースが開始される。
データベースを作成する前と後で、どう変わったかを確認する。これを知っておかないと、データベースの削除やアンインストールの時などに困るので、しっかり把握しておくこと。
3-1 ディレクトリ構成
Cドライブのoracleフォルダを確認すると、「C:\oracle\product\10.2.0\oradata」および「C:\oracle\product\10.2.0\admin」内に、SID名で指定した「orcl」という名前のフォルダが作成されていることが分かる。 3-2 レジストリ
レジストリを確認すると、HKEY_LOCAL_MACHINE → SOFTWARE→ORACLE→KEY_OraDb10g_home1内に、多くの値が追加されていることが分かる。 3-3 サービス
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やOEM(Oracle Enterprise Manager 10g)は、OracleDatabaseが稼動しているサーバで稼動しているリスナーというサービスを経由してOracleDatabaseに接続している。よって、それらを利用するにはリスナーを起動しなければならない。
リスナーを起動するには、コマンドプロンプトで次のように入力する。C:\> lsnrctl start
サービスの起動に成功すると、「コマンドは正常に終了しました。」というメッセージが表示される。
同時に、Windowsのサービスにも自動的にリスナーのサービスが作成される。
スタートアップの種類が「手動」で登録されているため、Windowsを起動するだけではリスナーが利用できない。OEMなどを利用する場合は、サービスを開始させること。
これで、データベースが自由に利用できるようになった。しかし、OracleServerは大量のリソースを消費するため、Oracleが自動起動するままでは、他の授業に支障が出る。よって、普段はOracle関係のサービスが起動しないように、設定を変えておく。
コントロールパネルから管理ツールを開き、サービスアイコンをダブルクリックして、Oracle関係のサービスを表示する。
名前にOracle〜と付いているサービスのうち、スタートアップの種類が「自動」になっているものは次のとおりである。
- OracleDBControleorcl
- OracleOraDb10g_home1iSQL*plus
- OracleServiceORCL
※赤字は、データベース作成時に指定したSID名によって変化する
これらのサービスのスタートアップの種類を全て「手動」に変更する。変更したいサービスをダブルクリックしてサービスのプロパティウィンドウを開き、スタートアップの種類を「手動」に変更し、「適用」ボタンをクリック後、「OK」ボタンをクリックしてウィンドウを閉じる。
スタートアップの種類が「自動」になっていた3つのサービス全てに対してこの作業を行ったらパソコンを再起動し、全てのサービスが開始されないことを確認する(起動時間がめっちゃ早くなったはず(正確には元に戻った))。