Loading...

We've detected that your browser language is Chinese. Would you like to visit our Chinese website? [ Dismiss ]
By: Emma

Oracleデータベースの作成手順はMySQLやPostgreSQLと大きく異なります。Oracleにおけるデータベースは物理的な記憶構造、バックグラウンドプロセス、制御ファイル、REDOログ、システム表領域、インスタンス全体を動作させる内部メタデータを一式含みます。

そのため、Oracleデータベースの作成には、他のデータベースにおける単純なCREATE DATABASEコマンドよりも多くの事前計画と設定作業が必要となります。

OracleのCREATE DATABASEが実行する処理内容

事前に留意点:既存のOracleインスタンス内にテーブルだけ作成したい場合は、本コマンドを使用する必要はありません。Oracleではスキーマはユーザーと紐付いており、CREATE USERを実行することで、MySQLで言うデータベースに相当する独立した作業領域を作成できます。以下の手順はDBAが完全に新規のOracleインスタンスをゼロから構築する際の内容です。

CREATE DATABASE文はディスク上の物理ファイル構造(データファイル、制御ファイル、REDOログファイル)を初期化します。また、システム内の全ユーザー、オブジェクト、各種メタデータを管理するOracle内部カタログであるデータディクショナリを生成します。

CREATE DATABASEは1つのインスタンスに対して1回限りの実行処理です。一度実行するとデータベースはディスク上に恒久的に存在し、同一インスタンスで再実行するには既存のファイルをすべて削除して再構築する必要があります。

Oracle CREATE DATABASEの処理内容

Oracleデータベースを作成するには、実行前に記憶領域レイアウト、インスタンスパラメータ、アーキテクチャを事前計画し、作成完了後に追加設定作業を実施する必要があります。作成手法は手動スクリプトから完全管理型クラウドサービスまで4種類存在します。

Oracleデータベースの4種類の作成手法

使用する手法は環境と必要な制御粒度に応じて選択します。いずれの手法を実行する前にも、以下の事前計画作業を完了させてください。

事前作業:作成前計画事項

これらの設定項目の一部はデータベース作成後に変更不可能なため、コマンド実行前に計画を確定させます。

  • Oracle SID:インスタンスの一意な識別子。短い大文字の名称を使用します。例:PRODまたはTESTDB
  • 記憶領域レイアウト:I/Oボトルネックを回避するため、REDOログファイルをデータファイルと別のディスクに配置します。
  • 文字セット:特別な理由がない限りAL32UTF8を使用します。作成後に変更できません。
  • 記憶領域サイズ設計:1~2年分のデータ増加量を見込んで見積もります。AUTOEXTENDを有効化しつつ、現実的な初期サイズを設定します。
  • init.oraファイル:$ORACLE_HOME/dbs配下のサンプルファイルをコピーし、init<SID>.oraにリネームした後、インスタンス起動前に設定を記述します。

手法1:手動CREATE DATABASE(ステップバイステップ)

手動手法はデータベース構造の全項目を完全に制御可能です。現在標準的な本番環境ではほとんど使用されませんが、DBCAなどのツール内部で実行される処理を理解するために有用です。

手順1:ORACLE_SIDの設定とディレクトリ作成

環境変数ORACLE_SIDを設定してインスタンスを識別し、サーバー上に必要なディレクトリを作成します。

export ORACLE_SID=testdb
mkdir -p $ORACLE_BASE/admin/testdb/adump
mkdir -p $ORACLE_BASE/oradata/testdb

 

Oracle手動データベース作成 事前準備

手順2:パラメータファイル(init<SID>.ora)の作成・編集

初期化パラメータファイルはインスタンスの動作仕様を定義します。起動前に以下の重要パラメータを設定します。

  • CONTROL_FILES:Oracleが制御ファイルを作成するパスを記述します。
  • DB_BLOCK_SIZE:標準ブロックサイズを指定、通常は8192。作成後変更不可。
  • UNDO_MANAGEMENT:AUTOに設定し、OracleにUNDOデータを自動管理させます。
  • DB_NAME:CREATE DATABASE文に記載するデータベース名と完全一致させます。

手順3:NOMOUNTモードでインスタンス起動

NOMOUNTモードではOracleはパラメータファイルを読み込みメモリ領域を初期化するだけで、ディスク上の既存データベースにアクセスしません。CREATE DATABASE実行に必須の状態です。

sqlplus / as sysdba
STARTUP NOMOUNT;

NOMOUNT起動手順

手順4:CREATE DATABASE文を実行

文を実行する前にOracleバージョンを確認してください。Oracle 21c以降はパラメータENABLE_PLUGGABLE_DATABASEの既定値がTRUEとなり、FALSEに設定するとCREATE DATABASEが失敗します。

Oracle 19c以降を使用する場合は、ENABLE PLUGGABLE DATABASE句を記述してCDBを作成することがOracle推奨です。CDB作成後、CREATE PLUGGABLE DATABASEでプラガブルデータベースを追加できます。

以下のSQL文はOracle 19c用の物理ファイル構造を作成する例です。

CREATE DATABASE testdb
   USER SYS IDENTIFIED BY sys_password
   USER SYSTEM IDENTIFIED BY system_password
   -- トランザクション履歴用REDOロググループ定義
   LOGFILE GROUP 1 ('/u01/oradata/testdb/redo01.log') SIZE 50M BLOCKSIZE 512,
           GROUP 2 ('/u01/oradata/testdb/redo02.log') SIZE 50M BLOCKSIZE 512,
           GROUP 3 ('/u01/oradata/testdb/redo03.log') SIZE 50M BLOCKSIZE 512
   MAXLOGFILES 5
   MAXLOGMEMBERS 5
   MAXDATAFILES 100
   -- 固定文字セット設定
   CHARACTER SET AL32UTF8
   NATIONAL CHARACTER SET AL16UTF16
   EXTENT MANAGEMENT LOCAL
   -- 必須システム表領域定義
   DATAFILE '/u01/oradata/testdb/system01.dbf' SIZE 325M REUSE
   SYSAUX DATAFILE '/u01/oradata/testdb/sysaux01.dbf' SIZE 325M REUSE
   DEFAULT TABLESPACE users
      DATAFILE '/u01/oradata/testdb/users01.dbf'
      SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
   DEFAULT TEMPORARY TABLESPACE temp
      TEMPFILE '/u01/oradata/testdb/temp01.dbf'
      SIZE 20M REUSE
   UNDO TABLESPACE undotbs1
      DATAFILE '/u01/oradata/testdb/undotbs01.dbf'
      SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

 

CREATE DATABASE実行例

手順5:作成後スクリプトを実行

SQL文の実行完了時点でディスク上にデータベースファイルは生成されますが、データディクショナリビューや組み込みパッケージは利用できません。SYSDBA権限で以下2つのスクリプトを実行します。

  • catalog.sql:USER_TABLESDBA_OBJECTSなどのデータディクショナリビューを作成します。
  • catproc.sql:DBMS_OUTPUTDBMS_STATSなどの組み込みPL/SQLパッケージを作成します。
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql

 

注記:両スクリプトの実行には数分を要する場合があるため、処理を中断しないでください

手順6:直ちにデータベースのフルバックアップを取得

アプリケーションデータを登録する前にOracle Recovery Manager(RMAN)でフルバックアップを取得し、クリーンな復旧基準点を作成します。

手法2:DBCAの使用(Oracle推奨手法)

Oracle Database Configuration Assistant(DBCA)はOracle公式の推奨データベース作成ツールです。パラメータファイル作成、ディレクトリ配置、作成後スクリプト実行を自動化し、完了時点で完全設定済みのデータベースを生成します。DBCAはGUIウィザードとして起動するか、コマンドラインからサイレントモードで実行可能です。

  1. DBCA起動:Oracle環境変数を設定した状態でコマンドラインからdbcaを実行します。ディスプレイ環境が存在する場合はGUIウィザードが起動します。
  2. 詳細設定を選択:標準設定は全オプションコンポーネントを含む事前定義テンプレートを使用します。詳細設定を選択すると不要なコンポーネントを除外でき、今後のアップグレードやパッチ適用時の複雑さを低減できます。
  3. 記憶領域と文字セットを選択:標準ファイルシステムまたはASM(自動記憶領域管理)から選択し、文字セットは必ずAL32UTF8に設定します。

自動化・スクリプト実行環境の場合はサイレントモードを使用します。

dbca -silent -createDatabase \
   -templateName General_Purpose.dbc \
   -gdbName testdb \
   -sid testdb \
   -characterSet AL32UTF8 \
   -sysPassword sys_password \
   -systemPassword system_password \
   -datafileDestination /u01/oradata \
   -storageType FS

 

DBCAサイレントモード実行
Tips:サイレントモードは複数環境に一貫してデータベースを構築するDevOpsパイプラインやコードによるインフラ管理ワークフローに適しています。

手法3:DBCAテンプレートによる既存DBからのクローン作成

本手法は本番データベースの構造・設定と完全に一致するステージング環境または開発環境を作成する際に有用です。

  1. テンプレート作成:DBCAを起動し「テンプレート管理」→「既存データベースからテンプレート作成」を選択します。構造のみを出力するかデータを含むかを選択します。
  2. テンプレート配備:DBCAが.dbcファイルと.dbtファイル一式を生成するため、2つのファイルを対象サーバーにコピーします。対象サーバーでDBCAを起動し「データベース作成」を選択後、自作テンプレートを指定します。
  3. インスタンス固有設定の調整:SID、ファイルパス、パスワードを新環境用に変更し、その他の設定は元のデータベースから継承されます。
注記:テンプレートによる作成はフルバックアップの代替にはなりません。データ登録前に必ず新規データベースのRMANバックアップを取得してください。

手法4:Oracle Cloud(DBシステム / 自律型データベース)

Oracle Cloud Infrastructure(OCI)では手動で作成スクリプトを実行する必要がなく、以下2種類のサービスはOCIコンソールからデータベースをプロビジョニングします。

DBシステム事前にOracleソフトウェアがインストールされた仮想マシンまたはベアメタルサーバーを提供します。「Oracleデータベース→DBシステム→DBシステム作成」に進み、インスタンス形状、記憶領域、Oracleバージョン、ネットワーク設定を構成します。OSとデータベースの両方に完全なDBA権限でアクセス可能です。

自律型データベース完全管理型サービスで、パッチ適用、チューニング、バックアップをOracleが自動処理します。「Oracleデータベース→自律型データベース→自律型データベース作成」に進み、「トランザクション処理」などのワークロード種別と管理者認証情報を設定すると、数分でデータベースが利用可能になります。

自律型データベースではOS層やDBCAにアクセスできず、ADMINユーザーとして直接接続し、すぐに業務オブジェクトを作成できます。

Oracleデータベース作成時の一般的なエラーと解決策

Oracleデータベース作成には多くの手順が存在し、パラメータファイルのタイプミスやディレクトリ欠損1つで処理が完全に停止します。頻出エラーと対処法を記載します。

ORA-01501: CREATE DATABASE failed

汎用的なエラーコードで、必ずより詳細な副次エラーコードが併記されます。アラートログを確認し根本原因を特定します。

$ORACLE_BASE/diag/rdbms///trace/alert_.log

ORA-01504: database name does not match DB_NAME parameter

CREATE DATABASE文に記載したDB名とinit.oraのDB_NAMEパラメータ値が不一致しています。双方を同一にするか、SQL文にDB名を記載せずパラメータファイルの値を継承させます。

ORA-01506: missing or illegal database name

SQL文にDB名が記載されておらず、初期化ファイルにDB_NAMEも設定されていません。init.oraにDB_NAME=任意のDB名を追加します。

ORA-01507: database not mounted

インスタンスが必要な状態に遷移する前にコマンドを実行しています。新規作成時はNOMOUNT、保守作業時はMOUNTモードを使用します。

文字セット設定ミス

WE8ISO8859P1などの制限付き文字セットを選択すると、多言語データや特殊文字の格納ができなくなります。この設定はデータベース全体を再構築しなければ変更不可能なため、常にAL32UTF8を使用してください。

作成後スクリプトの実行漏れ

CREATE DATABASEが完了してもUSER_TABLESやDBA_OBJECTSに対するクエリがエラーを返す場合は、作成後スクリプトを実行していません。SYSDBA権限でcatalog.sqlとcatproc.sqlを実行し、データディクショナリビューと組み込みPL/SQLパッケージを作成します。

ORACLE_SIDの未設定または設定ミス

接続時に「プロトコルアダプタエラー」または「ORA-12560」が発生する場合は、環境変数ORACLE_SIDが正しく設定されていません。SQL*Plus起動前に設定を実行します。

# Linux
export ORACLE_SID=任意のSID

# Windows
set ORACLE_SID=任意のSID

Oracleデータベース作成後の確認リスト

データベースを本番環境に移行する前に以下の作業を完了させます。

  1. 手動作成の場合はSYSDBA権限でcatalog.sqlcatproc.sqlを実行。DBCA使用時は自動実行されます。
  2. orapwdユーティリティでパスワードファイルを作成し、リモートからのSYSDBA接続を許可します。
  3. listener.oratnsnames.oraを設定し、アプリケーションがネットワーク経由でデータベースに接続できるようにします。
  4. Linux環境の/etc/oratabにSIDを登録し、Oracle起動・停止スクリプトにデータベースを認識させます。
  5. Fast Recovery Area(FRA)を設定し、RMAN用のバックアップ・アーカイブログ専用領域を確保します。
  6. 直ちにRMANフルバックアップを取得し、クリーンな復旧基準点を作成します。
  7. OSレベルのサービスまたはdbstart/dbshutスクリプトを設定し、サーバー再起動時にデータベースを自動起動・停止させます。

i2Backupによる新規Oracleデータベースの保護手法

データベース作成後に最初に実施すべき作業はバックアップ方針の定義です。Oracle標準のRecovery Manager(RMAN)は優秀なツールですが、スクリプト知識、手動によるスケジュール設定が必要で、複数のデータベース・サーバーを一元管理するコンソールが存在しません。複数のOracleインスタンスを管理する環境では運用負荷が大幅に増加します。

i2BackupはWebベースの一元管理コンソールを搭載したエンタープライズ向けバックアップソリューションで、RMANの保護機能を置き換えることなく、データベースバックアップの運用複雑さを低減します。

i2Backupの主な機能:

  • リアルタイム・スケジュール型データベースバックアップ:REDOログ・アーカイブログを連続的に取得し、RPOをほぼゼロに抑えるほか、毎時・毎日・毎週など業務要件に合わせた柔軟なスケジュールバックアップに対応します。
  • スタンドアロン・クラスタ環境両対応:Oracleインスタンスが単一構成、またはHA、ADG、RACを含むクラスタ環境で動作する場合、追加設定なしで両方に対応可能です。
  • 任意時点復旧:連続バックアップログと複数の復旧ポイントを活用し、意図しないデータ更新やデータ破損から任意の時点まで復旧できます。
  • 複数のバックアップ保存先:ローカルストレージ、NAS、テープライブラリ、クラウドオブジェクトストレージに同時にバックアップを出力可能で、3-2-1バックアップ方針を実装し単一点障害を回避します。
  • 暗号化転送:AES・SM4暗号規格により転送中のデータを保護し、WORM対応ストレージにバックアップを保存することで不正な改ざん・削除を防止します。

バックアップを超えた運用を求める企業向けに、Info2Softは高可用性・災害復旧ソリューションのi2Availability、Oracleを含む40種類以上のデータベースに対応するレプリケーションツールi2Streamも提供しています。これらの製品を組み合わせることで、バックアップから継続的可用性まで全領域のデータ保護を実現します。

60日間無料トライアル

まとめ

Oracleデータベースの作成は単一コマンドで完了する作業ではありません。実行前に記憶領域レイアウト、文字セット、インスタンスパラメータを計画し、作成後にcatalog.sqlcatproc.sqlなどの追加作業を実施して初めて完全に利用可能な状態になります。

適切な作成手法は業務環境に応じて選択します。手動CREATE DATABASEは全項目を細かく制御でき、Oracleのインスタンス初期化処理の理解に役立ちます。DBCAは大半の本番環境に対するOracle推奨手法で、複雑な処理を自動化します。テンプレートによるクローン作成は複数環境に同一設定を複製する際に適しています。Oracle CloudはOS層へのアクセスが不要な企業向けにインフラ管理作業を完全に省略します。

いずれの手法を使用した場合も、アプリケーションデータを登録する前にInfo2softのi2Backupなどのソリューションでバックアップを取得してください。クリーンな復旧基準点は設定ミスや初期段階のデータ損失に対する最も簡単な防衛策となります。

概要は準備中です

関連記事

【3つの方法】Oracleデータベースへ接続する手順
Oracleデータベースへの接続方法は使用するツールや環境によって異なります。本ガイドでは代表的な3種類の接続手法を記載し、Oracleデータベース接続時に発生する一般的なエラーのトラブルシューティング方法を解説します。
記事を読む
Oracle Data Guardの設定方法(手順解説ガイド)
Oracle Data Guardの環境構築は複雑になりがちで、特にスタンバイデータベース、REDOログ転送、リカバリ設定周りの作業が難しいです。本ガイドでは作業手順を分かりやすく段階別に整理し、トラブルや混乱を抑え、安定した高可用性環境を構築できるよう解説します。
記事を読む
Oracle テーブル一覧:USER_TABLES、ALL_TABLES、DBA_TABLES
OracleにはSHOW TABLESという組み込みコマンドが存在しないため、データディクショナリビューに対してクエリを実行してテーブル一覧を取得する必要があります。本ガイドではUSER_TABLES、ALL_TABLES、DBA_TABLESの使用方法に加え、スキーマによる絞り込み、検索クエリ、アクセスに関する一般的なトラブルシューティングを解説します。
記事を読む
SQLデータベース制約とは何か:完全ガイド[2026年]
SQL制約は信頼性が高く正確なデータベースを構築する基盤です。不正なデータが問題を引き起こす前に排除します。本ガイドでは主要なSQL制約の種類を実例、各DB製品の相違点、2026年におけるデータ整合性維持のベストプラクティスと共に解説します。
記事を読む
目次:
最新情報を購読
最新のインサイト、ニュース、限定コンテンツをお届けします。いつでも配信解除が可能です。
購読する
ビジネスデータのセキュリティ強化を始めませんか?
60日間の無料トライアルまたはデモで、Info2softが企業データをどのように保護するかをご確認ください。
フォームにご記入の上、送信してください。担当者より追ってご連絡いたします。
このフォームを送信することにより、 プライバシー通知を読み、同意したことを確認します。
{{ isSubmitting ? '送信中...' : '送信する' }}