手動データベース作成手順(Oracle 10g)

作成環境:
CentOS5.3
Oracle10gR2
一、データベース作成計画
1、DB表と索引を計画し、領域を見積る
2、OSファイルレイアウト計画:物理ファイルのI/O分散、ストライプ化
3、OSファイルの作成と管理:ASMを検討する
4、グローバル・データベース名を決定する。初期化パラメータDB_NAMEとDB_DOAMINを設定する
5、初期化パラメータを理解する。特にサーバ・パラメータ・ファイルの理解。
6、データベース・キャラクタ・セットを選択する。
7、サポート要のタイムゾーンを検討する。
  デフォルトタイムゾーンファイル:timezonelrg.dat、又はtimezone.dat
8、データベースの標準ブロックサイズを選択する。
  初期化パラメータDB_BLOCK_SIZEで指定し、作成後変更不可。
  表領域作成時、最大4つ非標準ブロックサイズを指定可能。
9、SYSAUX表領域の初期サイズを決定する。
10、SYSTEM以外のユーザはデフォルト表領域を使用し、DBオブジェクトをSYSTEM表領域に保存されないようにする。
11、UNDO表領域を使用する。
12、バックアップ&リカバリ計画を作成する。
   例:多重化により制御ファイルの保護、適切なバックアップモード、オンラインREDOログとアーカイブREDOログ管理。
13、インスタンスの起動と停止。(三段階を理解する)
二、作成の前提条件
1、必要なOracleソフトウェアがインストールされていること。OS環境変数、DBディレクトリ構造も含む
2、システム権限があること。
3、インスタンス起動するための十分なメモリが使用可能たること。
4、十分なディスク記憶域が使用可能たること。
三、作成開始

手順1: インスタンス識別子(SID)の決定
export ORACLE_SID=ManualDB


手順2: DBAの認証方式の設定
orapwd file=/u01/oracle/app/oracle/product/10.2.0/db_1/dbs/orapwManualDB password=oracle force=y

手順3:新DB用ディレクトリ作成
mkdir -p /u01/oracle/app/oradata/new/
mkdir -p /u01/oracle/app/admin/new/bdump
mkdir -p /u01/oracle/app/admin/new/cdump
mkdir -p /u01/oracle/app/admin/new/udump
mkdir -p /u01/oracle/app/admin/new/adump
mkdir -p /u01/oracle/app/admin/new/pfile

手順4: 初期化パラメータ・ファイルの作成(/u01/oracle/app/admin/new/pfile/newinit.ora)
# DB
db_name=ManualDB
db_block_size = 16384
instance_name = ManualDB
db_files = 255
db_file_multiblock_read_count = 32
# SGA Auto Management
sga_target = 1024M
db_cache_size = 300M
log_checkpoint_interval = 100000
processes = 400
log_buffer = 52428800
dml_locks = 200
pga_aggregate_target = 256M
timed_statistics = false
max_dump_file_size = 5M
# no archive log
#log_archive_start = true
#log_archive_dest = disk$rdbms:[oracle.archive]
#log_archive_format = "%s_%r_%t.ARC"
# Control files
control_files = ( 
  /u01/oracle/app/oradata/new/new_ctrl_01.ctl,
  /u01/oracle/app/oradata/new/new_ctrl_02.ctl,
  /u01/oracle/app/oradata/new/new_ctrl_03.ctl)
compatible = 10.2.0.1.0
open_cursors = 1024
# Use undo management
undo_management = AUTO
undo_tablespace = RBS
undo_retention = 1800
job_queue_processes = 10
background_dump_dest = /u01/oracle/app/admin/new/bdump
core_dump_dest = /u01/oracle/app/admin/new/cdump
user_dump_dest = /u01/oracle/app/admin/new/udump
# Diva orignal Parameter
RECYCLEBIN=OFF
# NLS
nls_length_semantics=CHAR
audit_trail = OS
audit_file_dest=/u01/oracle/app/admin/new/adump

手順5: インスタンスへの接続
sqlplus /nolog
conn / as sysdba

手順6: サーバー・パラメータ・ファイルの作成(推奨)
create 
 spfile='/u01/oracle/app/oracle/product/10.2.0/db_1/dbs/spfileManualDB.ora' 
from 
 pfile='/u01/oracle/app/admin/new/pfile/newinit.ora';

注:作成したファイル名はデフォルト場所のspfile.oraとする。

手順7: インスタンスの起動
startup nomount pfile='/u01/oracle/app/admin/new/pfile/newinit.ora'

手順8: CREATE DATABASE文の発行
例:
CREATE DATABASE ManualDB
USER SYS IDENTIFIED BY oracle
USER SYSTEM IDENTIFIED BY oracle
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
NOARCHIVELOG
LOGFILE
GROUP 1 ('/u01/oracle/app/oradata/new/new_REDO_1_1.log',
'/u01/oracle/app/oradata/new/new_REDO_1_2.log') SIZE 50M,
GROUP 2 ('/u01/oracle/app/oradata/new/new_REDO_2_1.log',
'/u01/oracle/app/oradata/new/new_REDO_2_2.log') SIZE 50M,
GROUP 3 ('/u01/oracle/app/oradata/new/new_REDO_3_1.log',
'/u01/oracle/app/oradata/new/new_REDO_3_2.log') SIZE 50M,
GROUP 4 ('/u01/oracle/app/oradata/new/new_REDO_4_1.log',
'/u01/oracle/app/oradata/new/new_REDO_4_2.log') SIZE 50M,
GROUP 5 ('/u01/oracle/app/oradata/new/new_REDO_5_1.log',
'/u01/oracle/app/oradata/new/new_REDO_5_2.log') SIZE 50M
CHARACTER set AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE '/u01/oracle/app/oradata/new/new_SYSTEM_01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/u01/oracle/app/oradata/new/new_SYSAUX_01.dbf' SIZE 500M
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/u01/oracle/app/oradata/new/new_TEMP_01.dbf' SIZE 1000M
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M
UNDO TABLESPACE RBS DATAFILE '/u01/oracle/app/oradata/new/new_UNDO_01.dbf' SIZE 1000M 
REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;


手順9: 追加の表領域の作成(ユーザ表領域とインデックス表領域)
例:
1. create a user tablespace to be assigned as the default tablespace for users
CREATE TABLESPACE users LOGGING 
     DATAFILE '/u01/oracle/app/oradata/new/new_users01.dbf' 
     SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;
2. create a tablespace for indexes, separate from user tablespace
CREATE TABLESPACE indx LOGGING 
     DATAFILE '/u01/oracle/app/oradata/new/new_indx01.dbf' 
     SIZE 25M REUSE AUTOEXTEND ON NEXT  1280K MAXSIZE UNLIMITED 
     EXTENT MANAGEMENT LOCAL;

手順10: スクリプトの実行によるデータ・ディクショナリ・ビューの作成
必須:
@/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catalog.sql
@/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catproc.sql
 オプション:
 @/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catblock.sql;
 @/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/catoctk.sql;
 @/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/dbmspool.sql;
 @/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/owminst.plb;
 @/u01/oracle/app/oracle/product/10.2.0/db_1/rdbms/admin/prvtpool.plb
 grant execute on dbms_shared_pool to public;
 grant execute on dbms_pipe to public;
 connect system/oracle
 @/u01/oracle/app/oracle/product/10.2.0/db_1/sqlplus/admin/pupbld.sql
 @/u01/oracle/app/oracle/product/10.2.0/db_1/sqlplus/admin/help/hlpbld.sql helpus.sql

*:
CATALOG.SQL:
 データ・ディクショナリ表のビューおよびパブリック・シノニムを作成します。シノニムにPUBLICアクセスを付与します。  
CATPROC.SQL:
 PL/SQLに必要なスクリプトPL/SQLとともに使用されるスクリプトをすべて実行します。 

手順11: スクリプトの実行による追加オプションのインストール(オプション)
CREATE USER oracle IDENTIFIED BY oracle
DEFAULT TABLESPACE users
TEMPORARY TABLESPACE temp
QUOTA UNLIMITED ON users
QUOTA UNLIMITED ON indx;

GRANT
CONNECT,
RESOURCE,
DROP ANY TABLE,
ANALYZE ANY,
ALTER SESSION,
CREATE DATABASE LINK,
CREATE SYNONYM,
CREATE VIEW
,Create Sequence
,Execute Any PROCEDURE
,Create TABLE
,Create Any INDEX
TO oracle;

手順12: データベースのバックアップ
rman target /
backup database plus archivelog delete input;

四、データベース作成失敗の対処:
1、アラートログを参照し原因を究明する。
2、インスタンスを停止する。
shutdown immediate
3、CREATE DATABASE文によって生成されたファイルの削除
4、データベースを再作成する
EM使用する場合、再構成:
[oracle@sst new]$ emca -config dbcontrol db -repos create

EMCAの開始: 2009/04/22 14:29:39
EMコンフィギュレーション・アシスタント, リリース10.2.0.1.0製品
Copyright (c) 2003, 2005, Oracle.  All rights reserved.

次の情報を入力してください:
データベースのSID: ManualDB
リスナーのポート番号: 1521
SYSユーザーのパスワード:
DBSNMPユーザーのパスワード:
SYSMANユーザーのパスワード:
通知用の電子メール・アドレス (オプション):
通知用の送信メール(SMTP)サーバー (オプション):
                                                                                                                                • -
次の設定が指定されています データベースのORACLE_HOME ................ /u01/oracle/app/oracle/product/10.2.0/db_1 データベース・ホスト名 ................ xxx.yyy.zzz リスナーのポート番号 ................ 1521 データベースのSID ................ ManualDB 通知用の電子メール・アドレス ............... 通知用の送信メール(SMTP)サーバー ...............
                                                                                                                                • -
続行しますか。 [はい(Y)/いいえ(N)]: Y 2009/04/22 14:30:18 oracle.sysman.emcp.EMConfig perform 情報: この操作は/u01/oracle/app/oracle/product/10.2.0/db_1/cfgtoollogs/emca/ManualDB/ emca_2009-04-22_02-29-39-午 後.logでロギングされています。 2009/04/22 14:30:20 oracle.sysman.emcp.EMReposConfig createRepository 情報: EMリポジトリの作成中(少し時間がかかります)... 2009/04/22 14:34:12 oracle.sysman.emcp.EMReposConfig invoke 情報: リポジトリは正常に作成されました 2009/04/22 14:34:20 oracle.sysman.emcp.util.DBControlUtil startOMS 情報: Database Controlの起動中(少し時間がかかります)... 2009/04/22 14:36:03 oracle.sysman.emcp.EMDBPostConfig performConfiguration 情報: Database Controlは正常に起動されました 2009/04/22 14:36:03 oracle.sysman.emcp.EMDBPostConfig performConfiguration 情報: >>>>>>>>>>> Database ControlのURLはhttp://xxx.yyy.zzz:5500/emです <<<<<<<<<<< Enterprise Managerの構成が正常に完了しました EMCAの終了: 2009/04/22 14:36:03