|
注意: この文を実行すると、データベースの初期設定が行われ、指定ファイル内の現行のデータは消去されます。そのことを十分理解したうえで、この文を使用してください。 |
|
セキュリティの強化に関する注意: Oracle Databaseの今回のリリース以降では、デフォルトのデータベース・ユーザー・アカウントのセキュリティ機能が強化されています。今回のリリースのセキュリティ・チェックリストは、『Oracle Databaseセキュリティ・ガイド』を参照してください。このチェックリストに従ってデータベースを構成することをお薦めします。 |
用途
CREATE DATABASE文を使用すると、汎用的なデータベースを作成できます。
この文を実行すると、データベースの初期使用に備えて、指定した既存のデータファイル上のデータがすべて消去されます。したがって、既存のデータベースに対してこの文を実行した場合、データファイル上のすべてのデータが失われます。
この文を指定した場合、データベースの作成後、データベースは排他モードまたはパラレル・モード(初期化パラメータCLUSTER_DATABASEの値に依存する)でマウントおよびオープンされ、通常の用途に使用可能になります。その後、データベースの表領域を作成できます。
|
関連項目:
|
前提条件
データベースを作成する場合は、SYSDBAシステム権限が必要です。作成するデータベースの名前を持つ初期化パラメータ・ファイルが使用可能である必要があります。また、STARTUP NOMOUNTモードになっている必要があります。
構文
create_database::=

(database_logging_clauses::=、tablespace_clauses::=、set_time_zone_clause ::=を参照)


(file_specification::=、default_tablespace ::=、default_temp_tablespace ::=、undo_tablespace ::=を参照)



(size_clause::=を参照)


セマンティクス
database
作成するデータベースの名前を指定します。名前は、DB_NAME初期化パラメータの値と一致する必要があります。名前の長さは最大8バイトです。データベース名には、ASCII文字のみを指定できます。Oracle Databaseは、この名前を制御ファイルに書き込みます。後で、データベース名を明示的に指定するALTER DATABASE文を発行すると、制御ファイル内の名前に基づいて、そのデータベース名が検証されます。
データベース名は、大文字と小文字が区別されず、大文字のASCII文字で保存されます。データベース名を引用識別子として指定した場合、引用符は特に警告もなく無視されます。
|
注意: データベース名には、ヨーロッパやアジアのキャラクタ・セットの中の特殊文字は使用できません。たとえば、ウムラウト付きの文字は使用できません。 |
CREATE DATABASE文でデータベース名を指定しない場合、DB_NAME初期化パラメータで指定した名前が採用されます。DB_NAME初期化パラメータは、データベースの初期化パラメータ・ファイルに設定する必要があります。そのパラメータの値とは異なる名前を指定した場合、データベースはエラーを戻します。データベース名のその他の規則については、「データベース・オブジェクトのネーミング規則」を参照してください。
これらの句を使用すると、SYSおよびSYSTEMユーザーのパスワードを設定できます。これらの句は今回のリリースでは必須ではありません。ただし、いずれか一方の句を指定した場合は、もう一方の句も指定する必要があります。
これらの句を指定しない場合、Oracle Databaseは、デフォルト・パスワードとして、ユーザーSYSにはchange_on_installを、ユーザーSYSTEMにはmanagerを作成します。これらのパスワードは、後でALTER USER文を使用して変更できます。また、データベース作成後に、ALTER USERを使用してパスワード管理属性を追加することもできます。
CONTROLFILE REUSEを指定すると、初期化パラメータCONTROL_FILESによって特定される既存の制御ファイルを再利用可能にできます。このとき、それらの制御ファイルに現在格納されている情報は上書きされます。通常、この句は、初めてデータベースを作成する際ではなく、データベースを再作成する際に使用します。データベースを初めて作成する場合、制御ファイルはデフォルトの格納先に作成されます。この場所は、いくつかの初期化パラメータの値によって決まります。「CREATE CONTROLFILE」の「セマンティクス」を参照してください。
制御ファイルを既存のファイルより大きくするためのパラメータ値もあわせて指定する場合、この句は使用できません。MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXDATAFILESおよびMAXINSTANCESがこのようなパラメータです。
この句を指定しないと、CONTROL_FILESで指定した制御ファイルのいずれかがすでに存在する場合、エラーが戻ります。
CREATE DATABASEまたはCREATE CONTROLFILE実行時の、制御ファイルのデータファイル・セクションの初期サイズを指定します。値がMAXDATAFILESより大きく、DB_FILES以下のファイルを追加した場合、データファイル・セクションにさらに多くのファイルを格納できるように、Oracle Databaseの制御ファイルが自動的に拡張されます。
インスタンスでアクセスできるデータファイルの数は、初期化パラメータDB_FILESの制限を受けます。
データベースを同時にマウントおよびオープンできるインスタンスの最大数を指定します。この値は、初期化パラメータINSTANCESの値より優先されます。最小値は1です。最大値は1055です。デフォルトは、使用するオペレーティング・システムによって異なります。
データベースにデータを格納するときのキャラクタ・セットを指定します。サポートされているキャラクタ・セットおよびこのパラメータのデフォルト値は、使用するオペレーティング・システムによって異なります。
CHARACTER SETの制限事項: AL16UTF16キャラクタ・セットは、データベース・キャラクタ・セットとして指定できません。
|
関連項目: キャラクタ・セットの選択の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
データ型がNCHAR、NCLOBまたはNVARCHAR2として定義された列にデータを格納する際に使用する各国語キャラクタ・セットを指定します。有効な値は、AL16UTF16およびUTF8です。デフォルトはAL16UTF16です。
|
関連項目: Unicodeデータ型のサポートについては、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。 |
この句を使用すると、以降に作成される表領域、およびSYSTEMとSYSAUX表領域のデフォルトの型を指定できます。以降に作成される表領域のデフォルトの型をbigfileまたはsmallfileに設定するには、BIGFILEまたはSMALLFILEを指定します。
bigfile表領域に格納されるのは、1つのデータファイルまたは一時ファイルのみであり、このファイルには最大約40億(232)ブロックを格納できます。データファイルまたは一時ファイル1つ当たりの最大サイズは、32Kブロックの表領域の場合は128TB、8Kブロックの表領域の場合は32TBです。
smallfile表領域は、Oracleの従来の表領域であり、1022のデータファイルまたは一時ファイルを含めることができます。それぞれのファイルは、最大で約400万(222)のブロックを格納できます。
この句を指定しない場合、デフォルトでsmallfile表領域が作成されます。
database_logging_clauses
database_logging_clausesを使用すると、データベースのREDOログ・ファイルの処理方法を指定できます。
REDOログ・ファイルとして使用する1つ以上のファイルを指定します。オペレーティング・システムのファイル・システム内の標準REDOログ・ファイル、またはOracle ASMディスク・グループのREDOログ・ファイルを作成するには、file_specificationのredo_log_file_spec書式を使用します。ASM_filenameの書式を使用する場合、redo_log_file_specのautoextend_clauseは指定できません。
redo_log_file_spec句には、1つ以上のREDOログ・ファイルのメンバー(コピー)を含むREDOログ・ファイル・グループを指定します。CREATE DATABASE文に指定したすべてのREDOログ・ファイルは、REDOログのスレッド番号1に追加されます。
LOGFILE句を指定しない場合、Oracle Managed Filesのログ・ファイル・メンバーは、(優先度の高い順に示している)次のいずれかのとおり、デフォルトの格納先に作成されます。
DB_CREATE_ONLINE_LOG_DEST_nを設定している場合、指定した各ディレクトリに、MAXLOGMEMBERS初期化パラメータの値までログ・ファイル・メンバーが作成されます。
DB_CREATE_ONLINE_LOG_DEST_nパラメータを設定しておらず、DB_CREATE_FILE_DESTおよびDB_RECOVERY_FILE_DEST初期化パラメータの両方を設定している場合、それぞれの場所に1つのOracle Managed Filesのログ・ファイル・メンバーが作成されます。DB_CREATE_FILE_DESTに指定している場所のログ・ファイルが最初のメンバーです。
DB_CREATE_FILE_DEST初期化パラメータのみを指定している場合、その場所にログ・ファイル・メンバーが作成されます。
DB_RECOVERY_FILE_DEST初期化パラメータのみを指定している場合、その場所にログ・ファイル・メンバーが作成されます。
いずれの場合でも、パラメータ設定では、オペレーティング・システムのファイル名または作成書式Oracle ASMのファイル名を正確に指定する必要があります。
これらのパラメータのいずれにも値を設定していない場合、データベースが稼働しているオペレーティング・システムのデフォルトの場所にログ・ファイルが作成されます。このログ・ファイルはOracle Managed Fileではありません。
GROUP integer REDOログ・ファイル・グループの識別番号を指定します。integerの値は1からMAXLOGFILESパラメータの値の範囲です。データベースには、2つ以上のREDOログ・ファイル・グループが必要です。同一のGROUP値を持つREDOログ・ファイル・グループは複数指定できません。このパラメータを指定しない場合、値が自動的に生成されます。REDOログ・ファイル・グループのGROUP値は、動的パフォーマンス・ビューV$LOGで確認できます。
データベースに対して作成可能なREDOログ・ファイル・グループの最大数を指定します。Oracle Databaseは、この値を基にして、制御ファイル内でREDOログ・ファイル名に割り当てる領域の量を決定します。デフォルト値、最小値および最大値は、使用するオペレーティング・システムによって異なります。
REDOログ・ファイル・グループのメンバー(コピー)の最大数を指定します。Oracle Databaseは、この値を基にして、制御ファイル内でREDOログ・ファイル名に割り当てる領域の量を決定します。最小値は1です。最大値およびデフォルト値は、使用するオペレーティング・システムによって異なります。
このパラメータが有用なのは、Oracle Real Application Clusters(Oracle RAC)でOracle DatabaseをARCHIVELOGモードで使用している場合のみです。Oracle RACの自動メディア・リカバリに使用するアーカイブREDOログ・ファイルの最大数を指定します。この値を基にして、制御ファイル内でアーカイブREDOログ・ファイル名に割り当てられる領域が決定されます。最小値は0(ゼロ)です。デフォルト値はMAXINSTANCES値の倍数で、使用するオペレーティング・システムによって異なります。最大値は、制御ファイルの最大サイズの制限のみを受けます。
ARCHIVELOGを指定すると、REDOログ・ファイル・グループを再利用する前に、グループの内容をアーカイブできます。この句を指定すると、メディア・リカバリを実行できるようになります。
NOARCHIVELOGを指定すると、REDOログ・ファイル・グループを再利用する前に、グループの内容がアーカイブされません。この句を指定した場合、メディア・リカバリは実行できません。
デフォルトはNOARCHIVELOGモードです。データベースの作成後に、ALTER DATABASE文を使用して、ARCHIVELOGモードとNOARCHIVELOGモードを切り替えることができます。
この句を使用すると、データベースをFORCE LOGGINGモードにできます。一時表領域および一時セグメントへの変更以外のすべてのデータベース内の変更が記録されます。この設定は、各表領域で指定するNOLOGGINGまたはFORCE LOGGING設定、および各データベース・オブジェクトで指定するNOLOGGING設定より優先され、これらの設定には影響されません。
FORCE LOGGINGモードは、データベースのインスタンスで永続的です。データベースを停止し、再起動しても、データベースはFORCE LOGGINGモードのままです。ただし、制御ファイルを再作成した場合は、CREATE CONTROLFILE文でFORCE LOGGINGを指定しないかぎり、データベースはFORCE LOGGINGモードではなくなります。
|
注意: FORCE LOGGINGモードは、パフォーマンスに影響する場合があります。この設定を使用する状況の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
tablespace_clauses
tablespace_clausesを使用すると、SYSTEMおよびSYSAUX表領域を構成したり、デフォルトの一時表領域とUNDO表領域を指定することができます。
この句を使用すると、ローカル管理SYSTEM表領域を作成できます。この句を指定しない場合、SYSTEM表領域はディクショナリ管理となります。
|
注意: ローカル管理SYSTEM表領域を作成すると、この表領域をディクショナリ管理に変更することはできません。このデータベース内に別のディクショナリ管理表領域を作成することもできません。 |
この句を指定した場合、ローカル管理のSYSTEM表領域には一時セグメントを格納できないため、データベースにデフォルトの一時表領域が必要になります。
EXTENT MANAGEMENT LOCALを指定して、DATAFILE句を指定しない場合は、default_temp_tablespace句を省略できます。Oracle Databaseは、データファイル・サイズが10MBで、自動拡張を使用禁止にした状態で、TEMPという一時表領域を作成します。
EXTENT MANAGEMENT LOCALおよびDATAFILE句の両方を指定する場合は、default_temp_tablespace句も指定し、その一時表領域の一時ファイルを明示的に指定する必要があります。
インスタンスを自動UNDOモードでオープンしている場合も、データベースUNDO表領域には同様の要件があります。
EXTENT MANAGEMENT LOCALを指定して、DATAFILE句を指定しない場合は、undo_tablespace句を省略できます。Oracle Databaseは、SYS_UNDOTBSというUNDO表領域を作成します。
EXTENT MANAGEMENT LOCALおよびDATAFILEの両方の句を指定する場合は、undo_tablespaceを指定し、その表領域のデータファイルを明示的に指定する必要があります。
|
関連項目: ローカル管理表領域およびディクショナリ管理表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
データファイルとして使用する1つ以上のファイルを指定します。ファイルは、すべてSYSTEM表領域の一部となります。オペレーティング・システムのファイル・システム内の標準データファイルと一時ファイル、またはOracle ASMディスク・グループのファイルを作成するには、file_specificationのfile_tempfile_spec書式を使用します。
|
注意: undo_tablespace句のDATAFILE句と同様に、この句はオプションです。したがって、あいまいさを回避するために、この句でSYSTEM表領域のデータファイルを指定する場合は、オプションのDATAFILE句を含まないundo_tablespace句の直後にこの句を指定しないでください。指定した場合、Oracle DatabaseはDATAFILE句をundo_tablespace句の一部と認識します。 |
SYSTEM表領域のデータファイルを指定する構文は、ファイルをOracle ASMを使用して格納するか、ファイル・システムまたはRAWデバイスに格納するかにかかわらず、CREATE TABLESPACE文を使用して表領域の作成時にデータファイルを指定する構文と同じです。
自動UNDOモードでデータベースを実行し、SYSTEM表領域のデータファイル名を指定した場合、すべての表領域に対してデータファイルを生成するものとみなされます。Oracle Managed Filesを使用する場合(DB_CREATE_FILE_DEST初期化パラメータに値を設定している場合)、データファイルは自動的に生成されます。ただし、Oracle Managed Filesを使用しないでこの句を指定する場合は、undo_tablespace句およびdefault_temp_tablespace句も指定する必要があります。
この句を指定しない場合、次のようになります。
DB_CREATE_FILE_DEST初期化パラメータを設定している場合、このパラメータで指定したデフォルトのファイル格納先に、サイズが100MBでシステムが生成する名前を持つ、Oracle Managed Filesのデータファイルが作成されます。
DB_CREATE_FILE_DEST初期化パラメータを設定していない場合、1つのデータファイルが作成されます。そのファイル名およびサイズは、使用するオペレーティング・システムによって異なります。
Oracle Databaseは、すべてのデータベースに、SYSTEMとSYSAUXの両方の表領域を作成します。Oracle Managed Filesを使用しておらず、SYSAUX表領域の1つ以上のデータファイルを指定する場合、この句を使用します。
DATAFILE句を使用してSYSTEM表領域の1つ以上のデータファイルを指定した場合は、この句を指定する必要があります。Oracle Managed Filesを使用している場合、この句を指定しないと、SYSAUXデータファイルがOracle Managed Filesに設定されたデフォルトの場所に作成されます。
Oracle Managed Filesを使用可能にした場合にSYSAUX句を省略すると、SYSAUX表領域が、オンライン表領域、永続表領域およびローカル管理表領域として作成されます。この表領域は、100MBの1つのデータファイルを持ち、ロギングおよび自動セグメント領域管理が有効になっています。
SYSAUX表領域のデータファイルを指定する構文は、ファイルをOracle ASMを使用して格納するか、ファイル・システムまたはRAWデバイスに格納するかにかかわらず、CREATE TABLESPACE文を使用して表領域の作成時にデータファイルを指定する構文と同じです。
|
関連項目:
|
この句を指定すると、データベースのデフォルトの永続表領域を作成できます。Oracle Databaseは、smallfile表領域を作成し、その後、この表領域に対して、別の永続表領域を指定していない、SYSTEM以外のユーザーを割り当てます。この句を指定しない場合、SYSTEM以外のユーザーに対するデフォルトの永続表領域はSYSTEM表領域です。
DATAFILE句およびextent_management_clauseは、CREATE TABLESPACE文で同じセマンティクスを持ちます。これらの句の詳細は、「DATAFILE | TEMPFILE句」および「extent_management_clause」を参照してください。
この句を指定すると、データベースのデフォルトの一時表領域を作成できます。Oracle Databaseは、この一時表領域に対して、別の一時表領域を指定していないユーザーを割り当てます。この句を指定しないと、データベースがローカル管理のSYSTEM表領域の作成時に、デフォルトの一時表領域を自動的に作成しない場合、SYSTEM表領域がデフォルトの一時表領域になります。
デフォルトの一時表領域がbigfileかsmallfileかを指定するには、BIGFILEまたはSMALLFILEを指定します。これらの句は、「SET DEFAULT TABLESPACE句」と同じセマンティクスを持ちます。
DB_CREATE_FILE_DEST初期化パラメータを設定してOracle Managed Filesを使用可能にした場合、この句のTEMPFILE句の部分はオプションです。このパラメータの値を指定していない場合は、TEMPFILE句を指定する必要があります。BIGFILEを指定した場合、この句で指定できるのは1つの一時ファイルのみです。
デフォルトの一時表領域の一時ファイルを指定する構文は、ファイルをOracle ASMを使用して格納するか、ファイル・システムまたはRAWデバイスに格納するかにかかわらず、CREATE TABLESPACE文を使用して一時表領域の作成時に一時ファイルを指定する構文と同じです。
|
注意: オペレーティング・システムによっては、一時ファイルのブロックが実際にアクセスされるまで、一時ファイル用の領域が割り当てられない場合があります。領域の割当ての遅延のため、一時ファイルの作成およびサイズ変更が速くなります。ただし、後で一時ファイルが使用されるときに、十分なディスク領域を使用可能にする必要があります。問題を回避するには、一時ファイルの作成またはサイズ変更の前に、ディスクの空き領域が、新しく作成する一時ファイルまたはサイズ変更後の一時ファイルのサイズよりも大きいことを確認してください。ディスク領域に余裕を持たせておくと、関連のない操作による、予期されるディスク使用量の増加にも対応できます。その後で、作成またはサイズ変更操作を実行してください。 |
デフォルトの一時表領域の制限事項: デフォルトの一時表領域には、次の制限事項があります。
この句では、SYSTEM表領域を指定できません。
デフォルトの一時表領域は、標準的なブロック・サイズである必要があります。
extent_management_clause句のセマンティクスは、CREATE DATABASEおよびCREATE TABLESPACE文で同じです。この句の詳細は、「CREATE TABLESPACE」の「extent_management_clause」を参照してください。
インスタンスを自動UNDOモードでオープンした場合(UNDO_MANAGEMENT初期化パラメータをデフォルトのAUTOに設定した場合)、undo_tablespaceを指定して、UNDOデータで使用する表領域を作成できます。自動UNDOモードを使用することをお薦めします。ただし、UNDO領域管理をロールバック・セグメントによって処理する場合、この句は指定しないでください。UNDO_TABLESPACE初期化パラメータの値を設定した場合も、この句を省略できます。パラメータが設定されており、この句を指定した場合、tablespaceはそのパラメータ値と同じである必要があります。
UNDO表領域をbigfile表領域にする場合は、BIGFILEを指定します。bigfile表領域には、1つのデータファイルのみが含まれます。このファイルの最大サイズは8EB(8,000,000TB)です。
UNDO表領域をsmallfile表領域にする場合は、SMALLFILEを指定します。smallfile表領域は、Oracle Databaseの従来の表領域であり、1022のデータファイルまたは一時ファイルを含めることができます。それぞれのファイルは、最大で約400万(222)のブロックを格納できます。
DB_CREATE_FILE_DEST初期化パラメータを設定してOracle Managed Filesを使用可能にした場合、この句のDATAFILE句の部分はオプションです。このパラメータの値を指定していない場合は、DATAFILE句を指定する必要があります。BIGFILEを指定した場合、この句で指定できるのは1つのデータファイルのみです。
UNDO表領域のデータファイルを指定する構文は、ファイルをOracle ASMを使用して格納するか、ファイル・システムまたはRAWデバイスに格納するかにかかわらず、CREATE TABLESPACE文を使用して表領域の作成時にデータファイルを指定する構文と同じです。
この句を指定すると、tablespaceという名前のUNDO表領域、およびUNDO表領域の一部として指定したデータファイルが作成され、インスタンスのUNDO表領域としてこの表領域が割り当てられます。Oracle Databaseは、このUNDO表領域を使用してUNDOデータを管理します。この句のDATAFILE句は、「DATAFILE句」と同様に動作します。
初期化パラメータ・ファイル内のUNDO_TABLESPACE初期化パラメータの値を指定している場合は、データベースをマウントする前に、この句で同じ名前を指定する必要があります。この名前が異なると、データベースのオープン時にエラーが戻されます。
この句を指定しないと、SYS_UNDOTBSという名前のデフォルトのsmallfileのUNDO表領域を持つデフォルトのデータベースが作成され、インスタンスのUNDO表領域としてこのデフォルトの表領域が割り当てられます。このUNDO表領域は、CREATE DATABASE文で使用するデフォルトのファイルから、初期エクステントが10MBのディスク領域を割り当てます。Oracle Databaseは、システムが生成したデータファイルを処理します(「DATAFILE句」を参照)。Oracle DatabaseがUNDO表領域を作成できない場合、CREATE DATABASE操作全体が失敗します。
|
関連項目:
|
SET TIME_ZONE句を使用すると、データベースのタイムゾーンを設定できます。次の2つ方法でタイムゾーンを設定します。
UTC(協定世界時、以前のグリニッジ標準時)からの時差を指定。hh:miの有効範囲は、-12:00から+14:00です。
タイムゾーン地域を指定。有効なタイムゾーン地域名を表示するには、V$TIMEZONE_NAMES動的パフォーマンス・ビューのTZNAME列を問い合せます。
|
注意: データベースのタイムゾーンをUTC(0:00)に設定することをお薦めします。これによって、タイムゾーンの変換が不要になるため、特にデータベース間のパフォーマンスを向上できます。 |
|
関連項目: 動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 |
すべてのTIMESTAMP WITH LOCAL TIME ZONEデータは、ディスクに格納されるときにデータベースのタイムゾーンに正規化されます。SET TIME_ZONE句を指定しない場合、サーバーのオペレーティング・システムのタイムゾーンが使用されます。オペレーティング・システムのタイムゾーンがOracle Databaseで有効でない場合、データベースのタイムゾーンは、デフォルトでUTCになります。
例
データベースの作成例: 次の文は、すべての引数を指定してデータベースを作成します。
CREATE DATABASE sample
CONTROLFILE REUSE
LOGFILE
GROUP 1 ('diskx:log1.log', 'disky:log1.log') SIZE 50K,
GROUP 2 ('diskx:log2.log', 'disky:log2.log') SIZE 50K
MAXLOGFILES 5
MAXLOGHISTORY 100
MAXDATAFILES 10
MAXINSTANCES 2
ARCHIVELOG
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE
'disk1:df1.dbf' AUTOEXTEND ON,
'disk2:df2.dbf' AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp_ts
UNDO TABLESPACE undo_ts
SET TIME_ZONE = '+02:00';
この例では、初期化パラメータ・ファイルのDB_CREATE_FILE_DESTパラメータに値を設定して、Oracle Managed Filesを使用可能にしている状態を想定しています。したがって、DEFAULT TEMPORARY TABLESPACEおよびUNDO TABLESPACE句にファイル指定は必要ありません。