ORACLEデータベースの手動作成
本ページではデータベースをDBCAによるGUIではなくsqlplusによるCUIベースで手動作成する方法を記載します。 手動作成する手順を覚えておくと、一連の作業をシェル等で自動化したりGUIが使用できない環境でも構築できるようになります。
本手順で作成される環境
本手順のコマンド等は10g以降を対象にしています。(9iまでのバージョンでも基本的な手順はほぼ同一ですがcreate database文等を一部変更する必要があります)インスタンスのSIDやDB_NAME | ORCL112M |
キャラクタセット | JA16SJIS |
ナショナルキャラクタセット | AL16UTF16 |
標準ブロックサイズ | 8K |
エクステント管理方式 | LOCAL管理 |
セグメント管理方式 | フリーリスト管理(SYSAUX以外) |
UNDO管理方式 | 自動UNDO管理 |
追加オプション(JVMやORACLE TEXT)など | なし(最小構成) |
手順概要
1 初期化パラメータファイルの準備2 ディレクトリの作成
3 サービスの登録(Windowsのみ)
4 データベースをNOMOUNTで起動
5 create database文を実行
6 ディクショナリやプロシージャの作成スクリプト実行
1 初期化パラメータファイルの準備
以下のように作成するデータベースの初期化パラメータファイルを$ORACLE_HOME/dbs(Windows以外)または%ORACLE_HOME%\database(Windows)に作成します。 ほとんどのパラメータはDB作成後に変更できますが、compatible、db_block_size、db_name、undo_managementは変更できない可能性があるため気をつけてください。・11gのサンプル
control_files='J:\program\oracle\oradata\ORCL112M\control01.ctl' diagnostic_dest='J:\program\oracle' compatible='11.2.0.1.0' db_block_size=8192 db_domain='' db_file_multiblock_read_count=16 db_name='ORCL112M' processes=150 job_queue_processes=10 nls_language='JAPANESE' nls_territory='JAPAN' open_cursors=300 sga_target=500M pga_aggregate_target=16M workarea_size_policy=AUTO undo_management='AUTO' undo_tablespace='UNDOTBS01' remote_login_passwordfile='EXCLUSIVE'・10gのサンプル
control_files='E:\oracle\oradata\ORCL112M\control01.ctl' user_dump_dest='E:\oracle\admin\ORCL112M\udump' background_dump_dest='E:\oracle\admin\ORCL112M\bdump' core_dump_dest='E:\oracle\admin\ORCL112M\cdump' compatible='10.2.0.1.0' db_block_size=8192 db_domain='' db_file_multiblock_read_count=16 db_name='ORCL112M' instance_name='ORCL112M' processes=150 fast_start_mttr_target=300 open_cursors=300 sga_target=500M pga_aggregate_target=16M workarea_size_policy=AUTO undo_management='AUTO' undo_retention=10800 undo_tablespace='UNDOTBS01' remote_login_passwordfile='EXCLUSIVE'
2 ディレクトリの作成
パラメータで指定しているログが作成されるディレクトリとデータファイルを作成するディレクトリを作成します。例)
mkdir J:\program\oracle\admin\ORCL112M\adump mkdir J:\program\oracle\admin\ORCL112M\bdump mkdir J:\program\oracle\admin\ORCL112M\cdump mkdir J:\program\oracle\admin\ORCL112M\dpdump mkdir J:\program\oracle\admin\ORCL112M\udump mkdir J:\program\oracle\oradata\ORCL112M
3 サービスの登録(Windowsのみ)
Windowsの場合はOS上にインスタンスを起動するサービスをoradimで作成します。 以下のコマンドの場合パスワードファイルも一緒に作成されます。C:\>oradim -new -sid ORCL112M -intpwd change_on_install -pfile 'J:\program\oracle\product\10.2.0\db_1\database\initORCL112M.ora'
4 データベースをNOMOUNTで起動
データベースをNOMOUNTで起動します。起動できない場合はパラメータファイルに誤りがありますので修正します。 また、制御ファイルを読み込んでいない状態では日本語エラーメッセージが文字化けするためNLS_LANGの設定を英語表示に変えておきます。C:\>set ORACLE_SID=ORCL112M C:\>set NLS_LANG=AMERICAN_AMERICA.JA16SJIS C:\>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Sat May 28 01:43:20 2011 Copyright (c) 1982, 2010, Oracle. All rights reserved. Connected to an idle instance. SYS@ORCL112M > startup nomount ORACLE instance started. Total System Global Area 521936896 bytes Fixed Size 2177328 bytes Variable Size 159385296 bytes Database Buffers 352321536 bytes Redo Buffers 8052736 bytes
5 create database文を実行
create database文を実行しデータベースを作成します。作成が終わった段階でOPENモードになります。create database ORCL112M logfile group 1 ('J:\program\oracle\oradata\ORCL112M\REDO01.LOG') SIZE 512M, group 2 ('J:\program\oracle\oradata\ORCL112M\REDO02.LOG') SIZE 512M maxinstances 1 maxlogmembers 3 maxlogfiles 240 maxloghistory 1000 maxdatafiles 512 character set "JA16SJIS" national character set "AL16UTF16" datafile 'J:\program\oracle\oradata\ORCL112M\SYSTEM01.DBF' size 500M EXTENT MANAGEMENT LOCAL sysaux datafile 'J:\program\oracle\oradata\ORCL112M\SYSAUX01.DBF' size 300M DEFAULT TABLESPACE USERS DATAFILE 'J:\program\oracle\oradata\ORCL112M\USERS01.DBF' SIZE 10M DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE 'J:\program\oracle\oradata\ORCL112M\TEMP01.DBF' SIZE 200M UNDO TABLESPACE "UNDOTBS01" DATAFILE 'J:\program\oracle\oradata\ORCL112M\UNDOTBS01.DBF' SIZE 500M;
6 ディクショナリやプロシージャの作成スクリプト実行
SYSで接続しスクリプトを実行してディクショナリやパッケージを作成します。 作成後spoolログとアラーとログにORA-04031の発生等がないか念のため確認します。SQL>spool SQL>conn / as sysdba --カタログ(ディクショナリ)の作成 SQL>@?/rdbms/admin/catalog.sql; --プロシージャの作成く SQL>@?/rdbms/admin/catproc.sql; --以下は必須ではありませんがDBCAでDB作成した場合は実行されるため作成しますく SQL>@?/rdbms/admin/catblock.sql; SQL>@?/rdbms/admin/catoctk.sql; --sqlplusを使用するためには以下のスクリプト実行が必要です SQL>conn system/manager SQL>@?/sqlplus/admin/pupbld.sql SQL>spool off以上で完了です。
補足1 Windows環境でデフォルト接続先データベースを変更する方法
DBCAでDBを作成すると作成したデータベースがローカル接続時のデフォルト接続先に変更されますが、本手順では変更されません。 ローカル接続時にデフォルトで接続するインスタンスはORACLE_HOMEとORACLE_SIDによって決まり、 同じORACLE_HOMEから起動している複数のデータベースがある場合は環境変数ORACLE_SIDが設定してあれば環境変数のSID、設定されていなければレジストリに登録してあるORACLE_SIDへ接続しようとします。 レジストリは通常は以下のようなパスになります。~9i
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\<ORACLE_HOMEのインストール名>\ORACLE_SID
10g~
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<ORACLE_HOMEのインストール名>\ORACLE_SID
レジストリを参照している環境では上記のレジストリのORACLE_SIDの値を作成したDBのSIDに変更することでデフォルト接続先は変更することができます。
補足2 手動管理ベースのデータベースを作成する場合
エクステント管理方式:ディクショナリ管理(SYSAUXは必ずLOCAL)+手動UNDO管理で作成する場合は以下の手順で読み替えることで作成できます。1 初期化パラメータファイルの準備
以下のように自動UNDO管理ではなく手動UNDO管理用のパラメータに変更します。
undo_management='AUTO' undo_tablespace='UNDOTBS01'↓
undo_management='MANUAL' rollback_segments='RBS01,RBS02,RBS03'
5 create database文を実行
以下のcreate database文を実行後、さらにロールバックセグメントの作成、一時表領域の作成等を実行します。
create database ORCL112M logfile group 1 ('J:\program\oracle\oradata\ORCL112M\REDO01.LOG') SIZE 512M, group 2 ('J:\program\oracle\oradata\ORCL112M\REDO02.LOG') SIZE 512M maxinstances 1 maxlogmembers 3 maxlogfiles 240 maxloghistory 1000 maxdatafiles 512 character set "JA16SJIS" national character set "AL16UTF16" datafile 'J:\program\oracle\oradata\ORCL112M\SYSTEM01.DBF' size 500M sysaux datafile 'J:\program\oracle\oradata\ORCL112M\SYSAUX01.DBF' size 300M; ロールバックセグメント用表領域とロールバックセグメントの作成 create tablespace RBS01 datafile 'J:\program\oracle\oradata\ORCL112M\RBS01.DBF' size 200M extent management DICTIONARY; create rollback segment RBS01 TABLESPACE RBS01; create rollback segment RBS02 TABLESPACE RBS01; create rollback segment RBS03 TABLESPACE RBS01; 一時表領域の作成 create tablespace temp DATAFILE 'J:\program\oracle\oradata\ORCL112M\TEMP01.DBF' SIZE 200M extent management DICTIONARY temporary; alter database default temporary tablespace temp; ユーザ表領域の作成 create tablespace users DATAFILE 'J:\program\oracle\oradata\ORCL112M\USERS01.DBF' SIZE 10M extent management DICTIONARY; alter database default tablespace users;
マニュアル
・管理者ガイド10g リリース2(10.2)・SQL リファレンス10g リリース2(10.2)