用途
ALTER
TABLESPACE
文を使用すると、既存の表領域、1つ以上のデータファイルまたは一時ファイルを変更できます。
この句では、ディクショナリ管理表領域をローカル管理表領域に変換することはできません。変換するには、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』に記載されているDBMS_SPACE_ADMINパッケージを使用してください。
前提条件
SYSAUX
表領域を変更する場合は、SYSDBA
システム権限が必要です。
ALTER
TABLESPACE
システム権限を持っている場合、すべてのALTER
TABLESPACE
操作を実行できます。MANAGE
TABLESPACE
システム権限を持っている場合は、次の操作のみを実行できます。
表領域をオンラインまたはオフラインにする。
バックアップを開始または終了する。
表領域を読取り専用または読み書き両用にする。
表領域の状態をPERMANENT
またはTEMPORARY
に変更する。
表領域のデフォルト・ロギング・モードをLOGGING
またはNOLOGGING
に設定する。
表領域で強制ロギング・モードを有効または無効にする。
表領域または表領域データ・ファイルの名前を変更する。
UNDO表領域に対するRETENTION
GUARANTEE
またはRETENTION
NOGUARANTEE
を指定する。
表領域のデータ・ファイルのサイズを変更する。
表領域内のデータ・ファイルに対する自動拡張を使用可能または使用禁止にする。
一時表領域または一時ファイルによって使用される領域の大きさを縮小する。
表領域を読取り専用にする場合、次の条件が満たされている必要があります。
表領域がオンラインになっている。
表領域にアクティブなロールバック・セグメントがない。SYSTEM
表領域にはSYSTEM
ロールバック・セグメントがあるため、読取り専用にはできません。また、読取り専用表領域のロールバック・セグメントにはアクセスできないため、ロールバック・セグメントを削除してから、表領域を読取り専用にすることをお薦めします。
表領域がオープン・バックアップに使用されていない。バックアップの終わりに表領域内のすべてのデータファイルのヘッダー・ファイルが更新されるためです。
これらの条件を満たすために、制限モードでこの機能を実行すると有効です。制限モードでは、RESTRICTED
SESSION
システム権限を持つユーザーのみがログインできます。
構文
alter_tablespace::=
注意: DEFAULT 句を指定する場合、table_compression 、inmemory_clause 、ilm_clause またはstorage_clause 句のいずれかを指定する必要があります。 |
(table_compression ::=—ALTER
TABLE
の一部、inmemory_clause::=—CREATE
TABLESPACE
の一部、ilm_clause::=—ALTER
TABLE
の一部、storage_clause::=、size_clause::=、datafile_tempfile_clauses ::=、tablespace_logging_clauses ::=、tablespace_group_clause::=、tablespace_state_clauses::=、autoextend_clause ::=、flashback_mode_clause ::=、tablespace_retention_clause::=を参照)
(file_specification::=を参照)。
tablespace_logging_clauses ::=
(logging_clause::=を参照)
(size_clause::=を参照)
maxsize_clause::=
(size_clause::=を参照)
tablespace_retention_clause::=
セマンティクス
tablespace
変更する表領域の名前を指定します。
表領域の変更の制限事項: 表領域の変更には、次の制限事項があります。
tablespace
がUNDO表領域の場合、この文ではADD
DATAFILE
、RENAME
DATAFILE
、RENAME
TO
(表領域の名前の変更)、DATAFILE
... ONLINE
、DATAFILE
... OFFLINE
、BEGIN
BACKUP
およびEND
BACKUP
のみが指定可能です。
SYSTEM
表領域を、読取り専用または一時表領域にしたり、オフラインにすることはできません。
ローカル管理の一時表領域に対してこの文で指定できるのは、ADD
句のみです。
関連項目: 自動UNDO管理およびUNDO表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。 |
この句を使用すると、表領域の新しいデフォルト・パラメータを指定できます。新しいデフォルト・パラメータは、後で表領域に作成されるオブジェクトに適用されます。
table_compression
、inmemory_clause
、ilm_clause
およびstorage_clause
句は、CREATE
TABLESPACE
およびALTER
TABLESPACE
と同じセマンティクスを持ちます。これらの句の詳細は、CREATE TABLESPACE
の「DEFAULT句」
を参照してください。
この句は、永続的なディクショナリ管理表領域に対してのみ有効です。MINIMUM
EXTENT
句を指定すると、表領域内のすべての使用済エクステントまたは未使用エクステントの大きさが、size_clause
で指定したサイズ以上であること、およびその倍数であることが保証され、表領域における空き領域の断片化を制御できます。
MINIMUM EXTENTの制限事項: この句は、ローカル管理の表領域またはディクショナリ管理の一時表領域に対して指定できません。
関連項目: この句の詳細は、「size_clause」を参照してください。MINIMUM EXTENTを使用した領域の断片化の制御の詳細は、 『Oracle Database管理者ガイド』 を参照してください。 |
この句が有効であるのは、bigfile表領域に対してのみです。1つのデータファイルのサイズを指定のサイズまで拡張または縮小できます。K
、M
、G
またはT
を使用して、それぞれKB、MB、GBまたはTB単位で指定することもできます。
smallfile表領域に新しく追加されたデータファイルまたは一時ファイルのサイズを変更するには、ALTER
DATABASE
... autoextend_clause
を使用します(「database_file_clauses」を参照)。
この句を使用すると、表領域内の各データファイルで、連続する未使用エクステントをすべて結合し、連続するより大きいエクステントを作成します。
この句が有効であるのは、一時表領域に対してのみです。表領域に使用される領域の大きさを縮小できます。任意指定のKEEP
句では、size_clause
で表領域の縮小後サイズの下限を定義します。これは、自動拡張可能な表領域のMAXSIZE
とは逆の機能です。KEEP
句を省略した場合は、表領域は他の記憶域属性が満たされることを条件として可能なかぎり縮小されます。
この句を指定すると、tablespace
の名前を変更できます。この句は、tablespace
およびそのすべてのデータファイルがオンラインで、COMPATIBLE
パラメータが10.0.0以上に設定されている場合にのみ有効です。名前の変更は、永続表領域および一時表領域の両方に対して実行できます。
tablespace
が読取り専用の場合、データファイルのヘッダーは更新されず、新しい名前は反映されません。アラート・ログに、データファイルのヘッダーが更新されなかったことが記録されます。
注意: バックアップからリストアしたデータファイルを使用して制御ファイルを再作成する場合、データファイルのヘッダーに古い表領域の名前が反映されていると、再作成された制御ファイルにも古い表領域の名前が反映されます。ただし、データベースが完全にリカバリされた後は、制御ファイルに新しい名前が反映されます。 |
tablespace
が、Oracle Real Application Clusters(Oracle RAC)環境のインスタンスに対するUNDO表領域として指定されており、データベースの起動にサーバー・パラメータ・ファイルが使用されている場合、そのサーバー・パラメータ・ファイル(SPFILE
)で、インスタンスに対するUNDO_TABLESPACE
パラメータの値は、新しい表領域の名前を反映するように変更されます。単一インスタンス・データベースで、spfileのかわりにパラメータ・ファイル(pfile)が使用されている場合、データベース管理者にpfile内の値を手動で変更することを推奨するメッセージがアラート・ログに書き込まれます。
注意: RENAME 句は、実行中のインスタンスのUNDO_TABLESPACE パラメータの値を変更しません。これはUNDO表領域の機能に影響しませんが、次の文を発行してインスタンスの実行中にUNDO_TABLESPACE の値を新しい表領域名に手動で変更することをお薦めします。
ALTER SYSTEM SET UNDO_TABLESPACE = new_tablespace_name SCOPE = MEMORY;
この文は一度だけ発行する必要があります。 |
表領域の名前の変更の制限事項: SYSTEM
表領域またはSYSAUX
表領域の名前は変更できません。
BACKUP句
この句を使用すると、表領域のすべてのデータファイルをオンライン(ホット)・バックアップ・モードにしたり、このモードから戻すことができます。
関連項目:
|
BEGIN
BACKUP
を指定すると、表領域を構成するデータファイルのオープン・バックアップを実行することを示すことができます。この句を指定することによって、ユーザーがこの表領域にアクセスできなくなることはありません。オープン・バックアップを開始する前に、この句を指定してください。
表領域のバックアップ開始の制限事項: 表領域のバックアップ開始には、次の制限事項があります。
この句は、読取り専用の表領域またはローカル管理の一時表領域に対して指定できません。
バックアップ中は、表領域のオフラインへの正常な切替え、インスタンスの停止または表領域の別のバックアップ処理の開始は実行できません。
END
BACKUP
を指定すると、表領域のオンライン・バックアップが完了したことを示すことができます。オンライン・バックアップの完了後、できるだけ早くこの句を指定してください。インスタンスに障害またはSHUTDOWN
ABORT
が発生した場合、次のインスタンス起動時にメディア・リカバリ(必要に応じて、アーカイブREDOログも)が必要であるとみなされます。
表領域のバックアップ終了の制限事項: この句は、読取り専用表領域に対して使用できません。
datafile_tempfile_clausesを使用すると、データファイルまたは一時ファイルを追加および変更できます。
ADD句
ADD
を指定すると、file_specification
によって指定されたデータファイルまたは一時ファイルを表領域に追加できます。オペレーティング・システムのファイル・システム内の標準データファイルと一時ファイル、またはOracle Automatic Storage Managementディスク・グループのファイルを指定するには、file_specification
のdatafile_tempfile_spec
書式(「file_specification」を参照)を使用します。
この句は、ローカル管理の一時表領域に対して、どんな場合でも指定できる唯一の句です。
file_specification
を指定しないと、AUTOEXTEND
が有効になった100MBのOracle管理ファイルが作成されます。
データファイルまたは一時ファイルを、オンラインのローカル管理表領域、またはオンラインまたはオフラインのディクショナリ管理表領域に追加できます。なお、そのデータファイルが別のデータベースで使用中でないことを確認してください。
データファイルおよび一時ファイルの追加における制限事項: データファイルまたは一時ファイルを1つしか含まない表領域など、bigfile(単一ファイル)表領域にはこの句を指定できません。
注意: オペレーティング・システムによっては、一時ファイルのブロックが実際にアクセスされるまで、一時ファイル用の領域が割り当てられない場合があります。領域の割当ての遅延のため、一時ファイルの作成およびサイズ変更が速くなります。ただし、後で一時ファイルが使用されるときに、十分なディスク領域を使用可能にする必要があります。問題を回避するには、一時ファイルの作成またはサイズ変更の前に、ディスクの空き領域が、新しく作成する一時ファイルまたはサイズ変更後の一時ファイルのサイズよりも大きいことを確認してください。ディスク領域に余裕を持たせておくと、関連のない操作による、予期されるディスク使用量の増加にも対応できます。その後で、作成またはサイズ変更操作を実行してください。 |
DROP
を指定すると、filename
やfile_number
によって指定された空のデータファイルまたは一時ファイルを表領域から削除できます。この句は、データファイルまたは一時ファイルをデータ・ディクショナリから削除し、オペレーティング・システムから削除します。この句を指定するときには、データベースがオープンしている必要があります。
ALTER
TABLESPACE
... DROP
TEMPFILE
文は、ALTER
DATABASE
TEMPFILE
... DROP
INCLUDING
DATAFILES
を指定することと同じです。
ファイル削除の制限事項: データファイルまたは一時ファイルを削除するには、ファイルが次の条件を満たしている必要があります。
空であること。
表領域内で最初に作成されたファイルではないこと。この場合、かわりに表領域が削除されます。
ローカル管理されるディクショナリから移行された読取り専用表領域でないこと。他のすべての読取り専用表領域からのデータファイルの削除はサポートされています。
オフラインでないこと。
関連項目:
|
この句が有効であるのは、一時表領域を変更する場合のみです。指定した一時ファイルに使用される領域の大きさを縮小できます。任意指定のKEEP
句では、size_clause
で一時ファイルの縮小後サイズの下限を定義します。これは、自動拡張可能な表領域のMAXSIZE
とは逆の機能です。KEEP
句を省略した場合は、一時ファイルは他の記憶域属性が満たされることを条件として可能なかぎり縮小されます。
RENAME DATAFILE句
RENAME
DATAFILE
を指定すると、表領域の1つ以上のデータファイルの名前を変更できます。データベースをオープンしておくこと、および名前の変更前に表領域をオフラインにすることが必要です。それぞれのfilename
には、ご使用のオペレーティング・システムのファイル名の表記規則に従って、データファイル名を完全に指定してください。
この句では、表領域を古いファイルではなく新しいファイルに対応付けます。オペレーティング・システムのファイル名は実際には変更されません。このため、オペレーティング・システム上でこのファイル名を変更する必要があります。
ONLINE | OFFLINE句
これらの句を使用すると、表領域のすべてのデータファイルまたは一時ファイルを、オフラインまたはオンラインにできます。これらの句は、表領域のONLINE
またはOFFLINE
状態には影響しません。
データベースは、マウントされている必要があります。tablespace
がSYSTEM
、UNDO表領域、またはデフォルトの一時表領域の場合、データベースをオープンしないでおく必要があります。
tablespace_logging_clauses
この句を使用すると、表領域のロギング特性を設定または変更できます。
LOGGING
を指定すると、表領域内のすべての表、索引およびパーティションのロギング属性を指定できます。表レベル、索引レベルおよびパーティション・レベルでのロギング指定によって、表領域レベルのロギング属性を上書きできます。
既存の表領域のロギング属性をALTER
TABLESPACE
文によって変更した場合、この文の実行後に作成されたすべての表、索引およびパーティションに、新しいデフォルトのロギング属性(これは後で上書きもできます)が適用されます。既存のオブジェクトのロギング属性は変更されません。
FORCE
LOGGING
モードの表領域がある場合、この文でNOLOGGING
を指定すると、表領域のデフォルト・ロギング・モードをNOLOGGING
に設定できます。ただし、この設定によって表領域のFORCE
LOGGING
モードは解除されません。
この句を使用すると、表領域で強制ロギング・モードを有効または無効にできます。データベースをオープンし、READ
WRITE
モードにしておく必要があります。この設定により、表領域のデフォルトLOGGING
モードまたはNOLOGGING
モードは変更されません。
強制ロギング・モードの制限事項: FORCE
LOGGING
は、UNDO表領域および一時表領域に対して指定できません。
tablespace_group_clause
この句は、ローカル管理の一時表領域に対してのみ有効です。この句を使用すると、tablespace_group_name
表領域グループに対してtablespace
を追加または削除できます。
グループ名を指定すると、tablespace
がその表領域グループのメンバーであることを示すことができます。tablespace_group_name
が存在しない場合、表領域を変更して表領域グループのメンバーにすると、その表領域グループが暗黙的に作成されます。
空の文字列(' ')を指定すると、tablespace_group_name
表領域グループからtablespace
を削除できます。
表領域グループの制限事項: 表領域グループは、永続表領域またはディクショナリ管理の一時表領域には指定できません。
tablespace_state_clauses
この句を使用すると、表領域の状態を設定または変更できます。
ONLINE
を指定すると、表領域をオンラインにできます。OFFLINE
を指定すると、表領域をオフラインにし、そのセグメントへの後続のアクセスを禁止できます。表領域をオフラインにすると、そのすべてのデータファイルもオフラインになります。
提案: 表領域を長期間オフラインにする前に、デフォルト表領域または一時表領域としてその表領域が割り当てられているユーザーに対して、表領域の割当てを変更することを検討します。表領域をオフラインにしている間は、これらのユーザーは、その表領域内でオブジェクトに対して領域を割り当てたり、領域をソートすることはできません。ユーザーへの表領域の割当ての詳細は、「ALTER USER」を参照してください。 |
表領域をオフラインにする場合の制限事項: 一時表領域はオフラインにできません。
OFFLINE NORMAL NORMAL
を指定すると、システム・グローバル領域(SGA)以外にある表領域のすべてのデータファイルにあるすべてのブロックをフラッシュできます。データファイルをオンラインに戻す前に、表領域のメディア・リカバリを行う必要はありません。これはデフォルトです。
OFFLINE TEMPORARY TEMPORARY
を指定すると、Oracle Databaseは表領域内のすべてのオンライン・データファイルに対してチェックポイントを実行しますが、すべてのファイルに対して書込みを実行できるかどうかは保証しません。この文の発行時にオフラインであったファイルは、表領域をオンラインに戻す前に、メディア・リカバリを行う必要があります。
OFFLINE IMMEDIATE IMMEDIATE
を指定した場合は、表領域のファイルが使用可能であることは保証されず、チェックポイントも実行されません。表領域をオンラインに戻す前に、メディア・リカバリを行う必要があります。
注意: ALTER TABLESPACE ... OFFLINE に対するFOR RECOVER 設定は、非推奨になっています。この構文は、下位互換性を保つためにのみサポートされています。ただし、表領域のリカバリにはトランスポータブル表領域機能を使用することをお薦めします。 |
関連項目: メディア・リカバリを実行するトランスポータブル表領域の使用の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
READ
ONLY
を指定すると、表領域を読取り専用遷移モードに設定できます。この状態では、既存のトランザクションは完了(コミットまたはロールバック)できますが、表領域内のブロックを変更した既存のトランザクションをロールバックすること以外は、その表領域に対してさらにDML操作を行うことはできません。SYSAUX
、SYSTEM
または一時表領域は、READ
ONLY
に設定できません。
表領域が読取り専用の場合は、そのファイルを読取り専用メディアにコピーできます。その場合、SQL文のALTER
DATABASE
... RENAME
を使用して、新しいファイル位置を示すように制御ファイル内のデータファイルの名前を変更する必要があります。
READ
WRITE
を指定すると、読取り専用に指定されている表領域に対して書込み操作を実行できるようになります。
PERMANENT
を指定すると、一時表領域を永続表領域に変換できます。永続表領域とは、永続的なデータベース・オブジェクトを格納できる場所です。表領域を作成するときのデフォルトです。
TEMPORARY
を指定すると、永続表領域を一時表領域に変換できます。一時表領域とは、永続的なデータベース・オブジェクトを格納できない表領域です。一時表領域の中のオブジェクトはセッション中のみ保持されます。
一時表領域の制限事項: 一時表領域には、次の制限事項があります。
SYSAUX
表領域には、TEMPORARY
を指定できません。
tablespace
を標準的なブロック・サイズで作成しなかった場合、永続表領域を一時表領域に変換できません。
FORCE
LOGGING
モードでは、表領域に対してTEMPORARY
を指定できません。
autoextend_clause
この句は、bigfile(単一ファイル)表領域に対してのみ有効です。この句を使用すると、表領域内の単一のデータファイルに対して自動拡張を使用可能または使用禁止にできます。smallfile表領域に新しく追加されたデータファイルまたは一時ファイルの自動拡張を使用可能または使用禁止にするには、ALTER DATABASE
文でautoextend_clauseを使用します(「database_file_clauses
」
を参照)。
関連項目:
|
この句を使用すると、後続のFLASHBACK
DATABASE
操作でこの表領域を使用するかどうかを指定できます。
FLASHBACK
モードをオンにするには、データベースはマウント済で、クローズ状態である必要があります。
FLASHBACK
モードをオフにするには、データベースはマウント済(READ
WRITE
のオープン状態またはクローズ状態)である必要があります。
この句は一時表領域では無効です。
この句の詳細は、「CREATE TABLESPACE」を参照してください。
関連項目: データベースのフラッシュバックの詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
この句のセマンティクスは、CREATE
TABLESPACE
文およびALTER
TABLESPACE
文で同じです。「CREATE TABLESPACE」の「tablespace_retention_clause
」
を参照してください。
例
表領域のバックアップ例: 次の文は、バックアップの開始をデータベースに通知します。
ALTER TABLESPACE tbs_01 BEGIN BACKUP;
次の文は、バックアップが終了したことをデータベースに通知します。
ALTER TABLESPACE tbs_01 END BACKUP;
表領域の移動および名前の変更例: 次の例は、tbs_02
表領域(「表領域の自動拡張を使用可能にする場合の例:」で作成)に関連付けられたデータファイルを、diskb:tbs_f5.dbf
からdiska:tbs_f5.dbf
に移動して、名前を変更します。
OFFLINE
句を指定したALTER
TABLESPACE
文を使用して、この表領域をオフラインにします。
ALTER TABLESPACE tbs_02 OFFLINE NORMAL;
オペレーティング・システムのコマンドを使用して、このファイルをdiskb:tbs_f5.dbf
からdiska:tbs_f5.dbf
にコピーします。
RENAME
DATAFILE
句を指定したALTER
TABLESPACE
文を使用して、このデータファイルの名前を変更します。
ALTER TABLESPACE tbs_02 RENAME DATAFILE 'diskb:tbs_f5.dbf' TO 'diska:tbs_f5.dbf';
ONLINE
句を指定したALTER
TABLESPACE
文を使用して、この表領域をオンラインに戻します。
ALTER TABLESPACE tbs_02 ONLINE;
データファイルおよび一時ファイルの追加例と削除例: 次の文は、表領域にデータファイルを追加します。さらに多くの領域が必要な場合、10KBの新しいエクステントが最大100KBまで追加されます。
ALTER TABLESPACE tbs_03 ADD DATAFILE 'tbs_f04.dbf' SIZE 100K AUTOEXTEND ON NEXT 10K MAXSIZE 100K;
次の文は、空のデータファイルを削除します。
ALTER TABLESPACE tbs_03 DROP DATAFILE 'tbs_f04.dbf';
次の文は、「一時表領域の作成例:」で作成された一時表領域に一時ファイルを追加してから削除します。
ALTER TABLESPACE temp_demo ADD TEMPFILE 'temp05.dbf' SIZE 5 AUTOEXTEND ON; ALTER TABLESPACE temp_demo DROP TEMPFILE 'temp05.dbf';
一時表領域の領域の管理例: 次の文では、「一時表領域の作成例:」で作成した一時表領域の領域を、SHRINK
SPACE
句を使用して管理します。KEEP
句が省略されているので、表領域の大きさは、表領域の他の記憶域属性を満たしていることを条件として可能なかぎり縮小されます。
ALTER TABLESPACE temp_demo SHRINK SPACE;
Oracle Managed Filesのデータファイルの追加例: 次の例は、Oracle Managed Filesのデータファイルをomf_ts1
表領域に追加します(この表領域の作成の詳細は、「Oracle Managed Filesの作成例:」を参照してください)。新しいデータファイルは100MBで、最大サイズが制限なしで自動拡張されます。
ALTER TABLESPACE omf_ts1 ADD DATAFILE;
表領域のロギング属性の変更例: 次の例は、表領域のデフォルトのロギング属性をNOLOGGING
に変更します。
ALTER TABLESPACE tbs_03 NOLOGGING;
表領域のロギング属性を変更した場合でも、その表領域内の既存のスキーマ・オブジェクトのロギング属性には影響しません。表レベル、索引レベルおよびパーティション・レベルでのロギング指定によって、表領域レベルのロギング属性を上書きできます。
UNDOデータの保持の変更例: 次の文は、undots1
表領域のUNDOデータの保持を、通常のUNDOデータの動作に変更します。
ALTER TABLESPACE undots1 RETENTION NOGUARANTEE;
次の文は、undots1
表領域のUNDOデータの保持を、期限が切れていないUNDOデータを保持する動作に変更します。
ALTER TABLESPACE undots1 RETENTION GUARANTEE;