【ORACLE】データベースを作成・削除するSQL


ここではORACLEデータベースで、データベースを作成・削除するSQLを紹介しています。

データベースのバージョンやグローバル名の変更は↓で紹介していますので参考にしてください。
>>ORACLEバージョンを確認するSQL
>>【ORACLE】グローバルデータベース名を確認・変更するSQL

データベースの作成方法

データベースを作成する方法は2つあります。

1つ目はDBCA(DatabaseConfigrationAssistant)というGUIを使って手順に沿って作成する方法です。

2つ目はCREATE DATABASE文というSQLでデータベースを作成する方法です。

DBCAでデータベースを作成し、スクリプトを保存しておき、データベースを増やすときには保存しておいたスクリプトを利用すると簡単に複製できます。

データベースを作成するSQL

データベースの作成はCREATE DATABASE文を使います。

CREATE DATABASE文の基本構文

CREATE DATABASE データベース名
DATAFILE SYSTEM表領域のパス SIZE サイズ
 [AUTOEXTEND {OFF | ON [NEXT サイズ]}] [MAXSIZE {UNLIMITED | SIZE [NEXT サイズ]}]
SYSAUX DATAFILE SYSAUX表領域のパス SIZE サイズ
 [AUTOEXTEND {OFF | ON [NEXT サイズ]}] [MAXSIZE {UNLIMITED | SIZE [NEXT サイズ]}]
DEFAULT TABLESPACE 表領域名
 TEMPFILE 表領域のパス SIZE サイズ
  [AUTOEXTEND {OFF | ON [NEXT サイズ]}] [MAXSIZE {UNLIMITED | SIZE [NEXT サイズ]}]
DEFAULT TEMPORARY TABLESPACE 一時表領域名
 TEMPFILE 一時表領域のパス SIZE サイズ
  [AUTOEXTEND {OFF | ON [NEXT サイズ]}] [MAXSIZE {UNLIMITED | SIZE [NEXT サイズ]}]
UNDO TABLESPACE UNDO表領域名
 DATAFILE UNDO表領域のパス SIZE サイズ
  [AUTOEXTEND {OFF | ON [NEXT サイズ]}] [MAXSIZE {UNLIMITED | SIZE [NEXT サイズ]}]
[CHARACTER SET キャラクタセット]
[LOGGING | NOLOGGING]
[ARCHIVELOG | NOARCHIVELOG]
LOGFILE GROUP 1(メンバー1のパス,メンバー2のパス・・・) SIZE サイズ,
        GROUP 2(メンバー1のパス,メンバー2のパス・・・) SIZE サイズ,
        GROUP 3(メンバー1のパス,メンバー2のパス・・・) SIZE サイズ
;
パラメータ 内容
DATAFILE システム(SYSTEM)表領域のファイルパス・サイズを指定
SYSAUX DATAFILE SYSAUX表領域のファイルパス・サイズを指定
DEFAULT TABLESPACE デフォルトの表領域のファイルパス・サイズを指定
DEFAULT TEMPORARY TABLESPACE デフォルトの一時表領域のファイルパス・サイズを指定
UNDO TABLESPACE UNDO表領域のファイルパス・サイズを指定
CHARACTER SET データベースの文字コードを指定
LOGGING | NOLOGGING REDOログの処理方法を指定
 LOGGING:REDOログへ記録する
 NOLOGGING:REDOログへ記録しない
ARCHIVELOG | NOARCHIVELOG REDOログのアーカイブモードを指定
 ARCHIVELOG:自動でログをアーカイブする
 NOARCHIVELOG:自動でログをアーカイブしない
LOGFILE GROUP REDOログファイルのグループ、パス、サイズを指定

CREATE DATABASEのSQLサンプル

conn / as sysdba
startup nomount pfile=/tmp/initdb01.ora

CREATE DATABASE db01
DATAFILE '/oradata/db01/system01.dbf' SIZE 500M
 AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SYSAUX DATAFILE '/oradata/db01/sysaux01.dbf' SIZE 500M
 AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TABLESPACE dftbs01
 DATAFILE '/oradata/db01/df01.dbf' SIZE 500M
 AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tmpts01
 TEMPFILE '/oradata/db01/tmp01.dbf' SIZE 500M
 AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
UNDO TABLESPACE undots01
 DATAFILE '/oradata/db01/undots011.dbf' SIZE 500M
 AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
CHARACTER SET AL32UTF8
LOGGING
ARCHIVELOG
LOGFILE GROUP 1('/oradata/db01/redo11.log','/oradata/db01/redo12.log') SIZE 100M,
        GROUP 2('/oradata/db01/redo21.log','/oradata/db01/red22.log') SIZE 100M,
        GROUP 3('/oradata/db01/redo31.log','/oradata/db01/redo32.log') SIZE 100M
;

データベースを削除するSQL

startup restrict mount
DROP DATABASE;

まとめ

データベースの作成はDBCAを使った方法とCREATE DATABASE文を発行して作成する方法があります。

データベースの削除もDBCAを使う方法とDROP DATBASE文を発行する方法があります。