データベースの作成
Create Database文を使用して手動で作成する方法
1.パラメータ・ファイルの作成/編集
2.環境変数の設定
3.インスタンスの起動
4.Create Database文の実行
5.データベース作成後のカスタマイズ作業
データベース作成では、いくつかのオペレーティング・システム・ファイルを準備して、それらがOracle
データベースとして作動するようにする。
データベースは、データ・ファイルの数やアクセスするインスタンスの数にかかわらず、1
度だけ作成する。
既存のデータベース内の情報を消去し、同じ名前と物理構造を持つ新規データベースも作成することが出来る。
データベースを作成する前の考慮点は以下の通り。
データベース作成計画を立てるときには、次の機能について検討する。
新しいデータベースを作成するには、以下の前提条件を満たす必要がある。
データベース作成では、以下の操作を実行する。
新規Oracle データベースの作成には、次の方法がある。
Oracle Database Configuration Assistant (DBCA )の使用
DBCA はOracle Universal Installer によって起動され、初期データベースを自動的に作成する。
DBCA を使用するかどうか、カスタム・データベースを作成するかどうかを選択できる。
また、新規データベースの作成が必要な場合は、いつでもDBCA をスタンドアロン・ツールとして起動できる。
データベースを作成するには、DBCA を使用するのが最も簡単な方法である。メリット
・ Optimal Flexible Architecture (OFA)の採用により、初期化ファイルなど、データベース・ファイルと管理ファイルを標準的な方法でネーミングおよび格納できる。
・ 短時間で作成できる。既製のデータベースをコピーでき、長時間かかる作成プロセスをたどる必要がなく、必要に応じて、このコピーを後でカスタマイズできる。
・ 必要事項が事前に入力されており、パラメータの設定方法を決める時間が節約できる。
・ データベースをカスタマイズできる。初期データベースをコピーするように選択しなくても、データベースのOnline Transaction Processing (OLTP )、Warehousing またはMultipurpose 環境を作成するスクリプトを生成するようにDBCA で指定できる。表示される少数の質問に答えるのみで、指定したユーザー数を超える場合にはMTS が自動的に組み込まれる。
既存のデータベースを破棄して新しく作り直す場合や、要件が異なるためDBCA を使用できない場合は、データベースを手動作成する方法を選択する。
Create Database文を使用して、必要最小限のデータベースを作成する。
データベース・ソフトウェア・ファイルとともにサンプル・データベース作成スクリプトとサンプル初期化パラメータ・ファイルが配布され、どちらもニーズに合わせて編集できる。メリット
・ 作成時に詳細なパラメータの値が設定でき、柔軟性がある。
・ 製品の導入作業と、データベース作成作業を切り離すことができる。デメリット
・ 最小限のものだけが提供されるので、カスタマイズ作業は多くなる。
既存データベースの移行またはアップグレード
旧リリースのOracle を使用している場合、データベースの作成が必要になるのは、まったく新しく作成するときのみ。
それ以外の場合は、旧バージョンのOracle が管理している既存のOracle データベースを移行ユーティリティによって移行し、新しいバージョンのOracle ソフトウェアで使用することが出来る。
・ Oracleソフトウェア導入時に自動的に初期データベースを作成
Oracle導入時のプロシージャの一部として、自動的に初期データベースを作成する。
必要最低限の構成ではなく、いくつかの表領域やユーザーがあらかじめ提供されている。メリット
初期データベース作成後のカスタマイズ作業が最小限に抑えられる。デメリット
サンプルとして提供されているだけなので、本格的なアプリケーション構築には容量が小さい。
最小限のものだけが提供されるので、カスタマイズ作業は多くなる。
変更できない項目、しづらい項目がある。変更できない
・データベースのブロックサイズ
・データベースのキャラクタセット変更しづらい
・SID
・データファイル数の最大値
・REDOログファイル数の最大値
・REDOログファイルのメンバー数
Oracleソフトウェアの導入時に作成される初期データベースは、用途に応じた表領域やユーザーがあらかじめ作成されている。
初期データベースの構成は、オペレーティング・システムやOracleのリリースにより異なる。
<Oracle8 Enterprise Edition 8.0.3 for Solaris2.5 の場合>
作成される表領域
表領域名 | 用途 |
---|---|
SYSTEM | システムを管理するために使用する表領域 ・データ・ディクショナリ ・SYSTEMロールバック ・セグメント |
RBS | 修正される前のデータを格納する表領域 ・ロールバック・セグメント( r01, r02, r03, r04 ) |
TEMP | 一時表領域 データの並べ替え時に、一時的にデータを格納する表領域 |
TOOLS | Oracle Tools製品で作成したオブジェクトを格納する表領域 SYSTEMユーザーのデフォルト表領域としても利用 |
USERS | ユーザーが作成したオブジェクトを格納する表領域 |
ディレクトリ構造図
OFA標準に則って、ディレクトリ構造がインストールされる。
以下の例では、特徴として、データ・ファイルが、Oracleソフトウェア・ファイルや管理ファイルから分離していることがあげられる。
/u00ディレクトリ | ソフトウェアと初期設定ファイル(管理ファイル) |
/u01 〜 /u08ディレクトリ | データベースを構成するファイル |
インスタンスを起動する時には、パラメータ・ファイルが読み込まれる。
そのため、データベース作成作業を始める前に、パラメータ・ファイルを作成しなければならない。
各データベースのみに対応するパラメータ・ファイルが、少なくとも一つは必要である。Oracle Serverソフトウェアの配布メディアに、パラメータ・ファイルが提供されている。
このファイルをコピーし、作成するデータベース用に編集する。
また、パラメータ・ファイルの中には、新規データベースを作成する時に決定すべきパラメータがある。
次のパラメータを検査し、妥当性を検証する必要がある。
編集した方がよいパラメータ
パラメータ名 | 指定内容 |
---|---|
DB_NAME | データベースの名前 ※データベース作成後は簡単に変更できない。制御ファイルの再作成が必要。 |
DB_DOMAIN | ネットワークの定義域 (DB_NAMEとDB_DOMAINの組み合わでグローバル・データベース名となる) |
CONTROL_FILES | 新しいデータベースで使用する制御ファイルの名前 |
DB_BLOCK_SIZE | データベースのブロック・サイズ (オペレーティング・システムのブロック・サイズと同じか、その倍数にする) ※データベース作成後は変更できない。 |
DB_BLOCK_BUFFERS | SGA内のデータベース・バッファ・キャッシュの大きさ (単位はバッファ数、この大きさはパフォーマンスに影響を及ぼす) |
PROCESSES | Oracleに同時接続できるオペレーティング・システム・プロセスの最大数 (この数には、バックグラウンド・プロセス も含まれる) |
ROLLBACK_SEGMENTS | データベース起動時にオンラインにするロールバック・セグメントの名前 |
データベースを起動するためには、次のような環境変数の設定が必要となる。
環境変数 | 設定内容 |
---|---|
ORACLE_SID | Oracle Serverのインスタンス名 |
ORACLE_HOME | Oracleをインストールするディレクトリの名前 |
PATH | Oracle実行モジュールが格納されるディレクトリの名前 |
NLS_LANG | クライアント側に表示するデータのキャラクタ・セット |
NLS_LANGは、クライアント側に表示するデータのキャラクタ・セットを指定する。
サーバー側とクライアント側のキャラクタ・セットが異なる場合には、クライアント側で文字化けが起こる。NLS_LANGを設定することにより、サーバー側に格納されているデータの文字コードが異なる場合でも、クライアント側で自動的に変換が行われる。
新しいデータベースで使用するインスタンスを起動する。
データベースの起動は、以下のいずれかの管理ツールを使用する。
Oracle Enterprise Manager の Instance Manager |
Server Manager |
Server Managerを使用した起動手順
Server Managerの起動方法は、オペレーティング・システムにより異なる。
起動後は、製品情報の後に、SVRMGR >というプロンプトが表示される。
<Solaris2.5
(UNIX) の場合>
%
svrmgrl
データベースを起動するには、データベース管理者としての認証が必要。
認証には、オペレーティング・システム認証とパスワード・ファイル認証がある。
<オペレーティング・システム認証の場合>
SVRMGR>
CONNECT / AS SYSDBA
正しく接続された時は、「接続されました」というメッセージが表示される。
データベースの作成作業は、インスタンスを起動し、データベースはマウントしない状態で行う。
インスタンスの起動は、STARTUP コマンドに、NOMOUNTオプションを指定する。
SVRMGR> STARTUP NOMOUNT
この時点ではデータベースは存在せず、SGAとバックグラウンド・プロセスのみが新しいデータベース作成に備えて起動する。
Create Database文を実行し、データベースを作る。
(例)
CREATE DATABASE rbdb1
CONTROLFILE REUSE
LOGFILE '/u01/oracle/rbdb1/redo01.log' SIZE 1M REUSE,
'/u01/oracle/rbdb1/redo02.log' SIZE 1M REUSE,
'/u01/oracle/rbdb1/redo03.log' SIZE 1M REUSE,
'/u01/oracle/rbdb1/redo04.log' SIZE 1M REUSE
DATAFILE '/u01/oracle/rbdb1/system01.dbf' SIZE 10M REUSE
AUTOEXTEND ON
NEXT 10M MAXSIZE 200M
CHARACTER SET WE8ISO8859P1;
CREATE DATABASEコマンドの構文
代表的なキーワードとパラメータ
パラメータ名 | 指定内容 |
---|---|
database | 作成するデータベース名 省略値は、パラメータDB_NAMEの名前を使用する。 ※データベース作成後は簡単に変更できない。制御ファイルの再作成が必要。 |
CONTROLFILE | CONTROL_FILESで指定した既存の制御ファイルを再利用する。 |
REUSE | 指定がない場合は、指定した制御ファイルを新規に作成する。 |
LOGFILE GROUP | 作成するREDOログ・ファイルの名前とサイズを指定する。 多重化する場合は、グループ番号も指定する。 |
MAXLOGFILES | 作成可能なREDOログ・ファイル・グループの最大数 |
MAXLOGMEMBERS | 作成可能なREDOログ・ファイル・メンバーの最大数 |
MAXDATAFILES | 作成可能なデータ・ファイルの最大数 |
DATAFILE | SYSTEM表領域のデータ・ファイルの名前とサイズ |
ARCHIVELOG | アーカイブ・ファイルを作成するモード |
NOARCHIVELOG | アーカイブ・ファイルを作成しないモード |
CHARACTER SET | データベースがデータを格納するために使用するキャラクタ・セット ※データベース作成後は変更できない。 |
CREATE DATABASE文を実行すると、Oracleは次のような操作を行なう。
前述の(例)の項目と情報では、次のような特性を持つデータベースが作成される。
Create Database文の実行時に、データベースはオープンされるので、アクセスすることは可能。
ただし、Create Database文による手動作成の場合、必要最低限のデータベース構成なので、作成後に必要なもの追加する必要がある。例えば、表領域はSYSTEM表領域だけなので、用途に応じた表領域を追加する。
また、ロールバック・セグメントも、SYSTEM用だけなので、トランザクション量に応じて追加する。
最後に、完成したデータベースのバックアップを作成し、障害時に備える。
データベース作成失敗時の対応
なんらかの理由でデータベースの作成が失敗した場合、次の手順で対応する。
- インスタンスを停止する。
- 作成されたファイルを削除する。
- 失敗の理由を分析し、問題を解決する。
- 再度データベース作成を行う場合は、インスタンスを起動する。
- Create Database文を実行する。
オペレーティング・システムによっては、Create Database文によるデータベース作成のサンプル・ファイルを提供している。
- パラメータ・ファイルを作成する。
- Oracleに必要な環境変数を設定する。
- インスタンスを起動する。
- 初期データベースを作成する。
- 業務に応じたカスタマイズ作業を行う。
サンプル・ファイルでは、上記の手順 3 〜 5 までを行う。
カスタマイズ作業には、表領域の追加やロールバック・セグメントの作成などが含まれている。
Oracle8 Enterprise Edition 8.0.3 for Solaris2.5 の場合
ファイル名 | 用途 |
---|---|
crdb.orc | インスタンスの起動からCreate Database文実行までを行う。 |
crdb2.orc | 表領域やロールバック・セグメントのカスタマイズを行う。 |