データベースの作成 Oracle9iR2版

 OracleDatabaseをインストールしたら、テスト用にデータベースを作成する。一応OracleMasterを狙っているので、DatabaseConfigurationAssistantなんてものは使わず、CREATE DATABASEコマンドを発行して作りたい。
 Oracleの操作は全てoracleユーザで行うため、oracleユーザでログインする。

1.ディレクトリの準備

 データベースファイルやパラメータファイル、ログファイル、各種トレースファイルなどを格納するディレクトリを、OFAに準拠した形で作成する。(Oracle9iR2のOFAはインストールのページを参照)。
 作成はoracleユーザで次のように行う。

$ mkdir $ORACLE_BASE/admin
$ mkdir $ORACLE_BASE/admin/ora920
$ mkdir $ORACLE_BASE/admin/ora920/bdump
$ mkdir $ORACLE_BASE/admin/ora920/cdump
$ mkdir $ORACLE_BASE/admin/ora920/create
$ mkdir $ORACLE_BASE/admin/ora920/pfile
$ mkdir $ORACLE_BASE/admin/ora920/udump
$ mkdir /home/oracle/oradata
$ mkdir /home/oracle/oradata/ora920

2.CREATE DATABASE文の作成

 次のようなデータベースを作成する。各ファイルの分散などは一切考えず、とりあえず1つのディレクトリに全て配置する。

ORACLE_SIDora920
初期データベース格納先/home/oracle/oradata/ora920
SYSTEM表領域system01.dbf 100MB
Redoログファイル2グループ作成し、各グループにファイルは1つ
/home/oracle/oradata/ora920/log1a.rdo、/home/oracle/oradata/ora920/log2a.rdo
UNDO表領域undotbs01.dbf 50MB
TEMPORARY表領域temp01.dbf 100MB
キャラクタセットJA16EUC ※
各国語キャラクタ・セットAL16UTF16

※OSがLINUXなので、内部データをEUCに統一する。クライアント側はEUCでもSJISでもOK。

 上記の要件を満たすCREATE DATABASE文は次のようになる。

CREATE DATABASE ora920
	DATAFILE '/home/oracle/oradata/ora920/system01.dbf' SIZE 100M
		AUTOEXTEND ON MAXSIZE UNLIMITED
	LOGFILE
		GROUP 1 ('/home/oracle/oradata/ora920/log1a.rdo') SIZE 1M,
		GROUP 2 ('/home/oracle/oradata/ora920/log2a.rdo') SIZE 1M
	UNDO TABLESPACE undotbs
		DATAFILE '/home/oracle/oradata/ora920/undotbs01.dbf' SIZE 50M
		AUTOEXTEND ON MAXSIZE UNLIMITED
	DEFAULT TEMPORARY TABLESPACE temp
		TEMPFILE '/home/oracle/oradata/ora920/temp01.dbf' SIZE 100M
		AUTOEXTEND ON MAXSIZE UNLIMITED
	CHARACTER SET ja16euc
	NATIONAL CHARACTER SET al16utf16;

 SQL*Plusを起動してこのコマンドを入力してもよいが、面倒なのでファイルとして保存する。(例、$ORACLE_BASE/admin/ora920/create/createdb.sql)

3.パラメータファイルの準備

 Oracleの起動にはパラメータファイルが必要である。サンプルのinit.oraファイルを、作成したいインスタンス用に用意する。

$ cd $ORACLE_HOME/dbs
$ cp init.ora $ORACLE_BASE/admin/ora920/pfile/initora920.ora

 作成したパラメータファイルをviで開き、編集する。

$ vi $ORACLE_BASE/admin/ora920/pfile/initora920.ora

 変更・追加するパラメータは次のとおり。

db_name=ora920
db_domain = localdomain
control_files = ('/home/oracle/oradata/ora920/control01.ctl','/home/oracle/oradata/ora920/control02.ctl')
remote_login_passwordfile = none
background_dump_dest='/opt/oracle/admin/ora920/bdump'
user_dump_dest='/opt/oracle/admin/ora920/udump'
core_dump_dest='/opt/oracle/admin/ora920/cdump'
undo_management = AUTO
undo_tablespace = undotbs
fast_start_mttr_target = 300
compatible = 9.2.0.1.0

 ※コメントも外すこと。

Linuxの場合、データベース起動時に「$ORACLE_HOME/dbs」からパラメータファイルを探す。よって、ここに「initora920.ora」というシンボリックリンクを作成する。

$ ln -s /opt/oracle/admin/ora920/pfile/initora920.ora /opt/oracle/product/9.2.0/dbs/initora920.ora

4.Oracleデータベースの作成

  各種ディレクトリ、データベース作成スクリプト、初期化パラメータファイルを作成したら、いよいよデータベースの作成である。
  oracleユーザでSQL*Plusを次のように起動する。

# sqlplus /nolog

 SYSDBA権限でOracleに接続する。

SQL> connect / as sysdba

 インスタンスをNOMOUNTで起動させる。

SQL> startup nomount

 「ORACLEインスタンスが起動しました」というメッセージが出れば成功。CREATE DATABASE文を発行する。

SQL> @$ORACLE_BASE/admin/ora920/create/createdb

 「データベースが作成されました」というメッセージが出れば成功。作成と同時にオープンされているので、パラメータを確認してみよう。

SQL> show parameter
・・・パラメータファイルの変更が反映されていることが確認できる・・・

5.データベース作成後の作業

 データベースは作成しただけでは使えず、データ・ディクショナリ・ビューと標準パッケージを作成しなければならない。
 データ・ディクショナリ・ビューはcatalog.sqlを、標準パッケージはcatproc.sqlを実行すると作成されるので、SQL*Plusで次のように実行する。

SQL> @$ORACLE_HOME/rdbms/admin/catalog.sql
SQL> @$ORACLE_HOME/rdbms/admin/catproc.sql

 また、SQL*Plusを使ってクライアントマシンから接続する場合、systemユーザになってから以下のようにスクリプトを実行しておく。

SQL> @$ORACLE_HOME/sqlplus/admin/pupbld.sql

[ TOP ]