149 DBMS_SPACE_ADMIN

DBMS_SPACE_ADMINパッケージは、ローカルに管理される表領域に対する機能を提供します。

この章のトピックは、次のとおりです:

参照:

DBMS_SPACE_ADMINの使用方法の例および説明の詳細は、『Oracle Database管理者ガイド』を参照してください。

149.1 DBMS_SPACE_ADMINのセキュリティ・モデル

このパッケージは、SYS権限で実行されるため、このパッケージを実行する権限を持つユーザーは、ビットマップも操作できます。

149.2 DBMS_SPACE_ADMINの定数

DBMS_SPACE_ADMINパッケージは、パラメータ値の指定に使用できる定数を提供します。

表149-1 DBMS_SPACE_ADMINの定数

定数 タイプ 説明

SEGMENT_VERIFY_EXTENTS

POSITIVE

1

セグメントが所有する領域の使用状況がビットマップに適切に反映されていることを検証します。

SEGMENT_VERIFY_EXTENTS_GLOBAL

POSITIVE

2

セグメントが所有する領域の使用状況がビットマップに適切に反映されており、この領域が他のセグメントから要求されていないことを検証します。

SEGMENT_MARK_CORRUPT

POSITIVE

3

一時セグメントを破損としてマークします。これにより、ディクショナリからの排除が容易になります(領域の再利用なし)。

SEGMENT_MARK_VALID

POSITIVE

4

破損した一時セグメントを有効としてマークします。これは、セグメントのエクステント・マップまたは他の場所での破損が解決され、セグメントを正常に削除できる場合に役立ちます。

SEGMENT_DUMP_EXTENT_MAP

POSITIVE

5

指定のセグメントのエクステント・マップをダンプします。

TABLESPACE_VERIFY_BITMAP

POSITIVE

6

表領域のビットマップを、その表領域内のセグメントのエクステント・マップを使用して検証し、すべて一致していることを検証します。

TABLESPACE_EXTENT_MAKE_FREE

POSITIVE

7

ブロック範囲(エクステント)を、ビットマップ上で空き領域としてマークします。

TABLESPACE_EXTENT_MAKE_USED

POSITIVE

8

ブロック範囲(エクステント)を、ビットマップ上で使用領域としてマークします。

SEGMENT_VERIFY_BASIC

POSITIVE

9

メタデータの基本的なチェックを実行します。

SEGMENT_VERIFY_DEEP

POSITIVE

10

詳細な検証を実行します。

SEGMENT_VERIFY_SPECIFIC

POSITIVE

11

セグメントに対して特定のチェックを実行します。

HWM_CHECK

POSITIVE

12

最高水位標(HWM)をチェックします。

BMB_CHECK

POSITIVE

13

L1 BMB、L2 BMBおよびL3 BMB(ビットマップ・ブロック)間の整合性をチェックします。

SEG_DICT_CHECK

POSITIVE

14

セグメント・ヘッダーと、対応するSEGエントリ間の一貫性をチェックします。

EXTENT_TS_BITMAP_CHECK

POSITIVE

15

エクステント・マップに対応する表領域ビットマップが使用領域としてマークされているかどうかをチェックします。

DB_BACKPOINTER_CHECK

POSITIVE

16

L1 BMB、L2 BMB、L3 BMBおよびデータ・ブロックが同一の親セグメントを指しているかをチェックします。

EXTENT_SEGMENT_BITMAP_CHECK

POSITIVE

17

ビットマップ・ブロックとエクステント・マップ間に一貫性があるかどうかをチェックします。

BITMAPS_CHECK

POSITIVE

18

ブロックを示すビットマップの状態に一貫性があるかどうかをデータ・ブロックからチェックします。

TS_VERIFY_BITMAPS

POSITIVE

19

表領域ビットマップとその表領域に属するエクステントに一貫性があるかどうかをチェックします。

TS_VERIFY_DEEP

POSITIVE

20

DEEPオプションを指定してTS_VERIFY_BITMAPSおよびTS_VERIFY_SEGMENTSを実行します。

TS_VERIFY_SEGMENTS

POSITIVE

21

表領域内のすべてのセグメントに対してASSM_SEGMENT_VERIFYを実行します。BASICオプションまたはDEEPオプションを使用します。

SEGMENTS_DUMP_BITMAP_SUMMARY

POSITIVE

27

ビットマップ・ブロックの要約のみをダンプします。

149.3 DBMS_SPACE_ADMINの使用上の注意

SYSTEM表領域を移行する前に、特定の条件を満たす必要があります。これらの条件は、コールド・バックアップを除くTABLESPACE_MIGRATE_TO_LOCALプロシージャによって施行されます。

  • データベースに、SYSTEMでないデフォルトの一時表領域があること。

  • ディクショナリ管理表領域には、ロールバック・セグメントを保持できないこと。

  • ローカル管理表領域には、最低1つのオンライン・ロールバック・セグメントがあること。自動UNDO管理を使用している場合は、UNDO表領域がオンラインであること。

  • ロールバック・セグメントまたはUNDO表領域を含む表領域を除くすべての表領域が、読取り専用であること。

  • データベースのコールド・バックアップがあること。

  • システムが制限モードであること。

149.4 DBMS_SPACE_ADMINサブプログラムの要約

この表は、DBMS_SPACE_ADMINサブプログラムを示し、簡単に説明しています。

表149-2 DBMS_SPACE_ADMINパッケージのサブプログラム

サブプログラム 説明

ASSM_SEGMENT_VERIFYプロシージャ

ASSM(自動セグメント領域管理)表領域に作成されたセグメントを検証します。

ASSM_TABLESPACE_VERIFYプロシージャ

ASSM表領域を検証します。

DROP_EMPTY_SEGMENTSプロシージャ

空の表(または表の一部)とその依存オブジェクトからセグメントを削除します。

GET_SEGADV_ATTRIBプロシージャ

DBSM_SPACE_ADMINパッケージの属性の値を戻します。

MATERIALIZE_DEFERRED_SEGMENTSプロシージャ

遅延セグメント作成が設定された表(および表の一部)とその依存オブジェクトに対してセグメントを実体化します。

SEGMENT_CORRUPTプロシージャ

セグメントを破損または有効としてマークし、適切なエラーのリカバリを可能にします。

SEGMENT_DROP_CORRUPTプロシージャ

現在破損としてマークされているセグメントを削除します(領域の再生なし)。

SEGMENT_DUMPプロシージャ

指定セグメントのセグメント・ヘッダーとエクステント・マップをダンプします。

SEGMENT_VERIFYプロシージャ

セグメントのエクステント・マップの一貫性を検証します。

SET_SEGADV_ATTRIBプロシージャ

DBSM_SPACE_ADMINパッケージの属性の値を設定または変更します。

TABLESPACE_FIX_BITMAPSプロシージャ

適切なブロック範囲(エクステント)を、ビットマップ上で空き領域または使用領域としてマークします。

TABLESPACE_FIX_SEGMENT_STATESプロシージャ

移行が異常終了した表領域内のセグメントの状態を修正します。

TABLESPACE_MIGRATE_FROM_LOCALプロシージャ

ローカル管理表領域を、ディクショナリ管理表領域に移行します。

TABLESPACE_MIGRATE_TO_LOCALプロシージャ

表領域を、ディクショナリ管理形式からローカル管理形式に移行します。

TABLESPACE_REBUILD_BITMAPSプロシージャ

適切なビットマップを再作成します。

TABLESPACE_REBUILD_QUOTASプロシージャ

指定の表領域について割当て制限を再作成します。

TABLESPACE_RELOCATE_BITMAPSプロシージャ

指定先にビットマップを再配置します。

TABLESPACE_VERIFYプロシージャ

表領域内のセグメントについて、ビットマップとエクステント・マップが同期していることを検証します。

149.4.1 ASSM_SEGMENT_VERIFYプロシージャ

このプロシージャは、セグメントを指定すると、その領域のメタデータ・ブロックの基本的な一貫性、および領域メタデータとセグメント・データ・ブロックの間の一貫性を検証します。このプロシージャは、自動セグメント領域管理(ASSM)表領域に作成されたセグメントを検証します。

ただし、基本的な検証と詳細な検証の間には次の違いがあります。

  • 基本的な検証には、領域メタデータの一貫性チェックが含まれます。たとえば、レベル1、レベル2、レベル3のビットマップ・ブロック間の整合性、セグメントのエクステント・マップとレベル1のビットマップ範囲との一貫性などがチェックされます。

  • 詳細な検証には、データ・ブロックと領域メタデータ・ブロック間の一貫性チェックが含まれます。たとえば、レベル1の親ビットマップ・ブロックをデータ・ブロックが正しく指しているかどうか、およびデータ・ブロックの空き状態とそのデータ・ブロックに対応するレベル1ビットマップ・ブロックのビットの空き状態に一貫性があるかどうかなどがチェックされます。

構文

DBMS_SPACE_ADMIN.ASSM_SEGMENT_VERIFY (
   segment_owner   IN VARCHAR2,
   segment_name    IN VARCHAR2,
   segment_type    IN VARCHAR2,
   partition_name  IN VARCHAR2,
   verify_option   IN POSITIVE  DEFAULT SEGMENT_VERIFY_BASIC,
   attrib          IN POSITIVE  DEFAULT NULL);

パラメータ

表149-3 ASSM_SEGMENT_VERIFYプロシージャのパラメータ

パラメータ 説明

segment_owner

セグメントを所有するスキーマ。

segment_name

検証するセグメントの名前。

segment_type

セグメントのネームスペースは、TABLETABLE PARTITIONTABLE SUBPARTITIONINDEXINDEX PARTITIONINDEX SUBPARTITIONLOBLOB PARTITIONLOB SUBPARTITIONCLUSTERのいずれかです。

partition_name

パーティションまたはサブパーティションの名前。

verify_option

次のオプションのいずれかです。

  • SEGMENT_VERIFY_BASIC := 9。メタデータの基本的なチェックを実行します(デフォルト)。

  • SEGMENT_VERIFY_DEEP := 10。詳細な検証を実行します。

  • SEGMENT_VERIFY_SPECIFIC := 11。セグメントに対して特定のチェックを実行します。

attrib

SEGMENT_VERIFY_SPECIFICをオプションとして指定する場合、attribは次のいずれかにできます。

  • HWM_CHECK := 12。最高水位標の情報が正確かどうかをチェックします。

  • BMB_CHECK := 13。領域ビットマップ・ブロックにセグメント・ヘッダーへの正しいバックポインタがあるかどうかをチェックします。

  • SEG_DICT_CHECK := 14。セグメントのディクショナリ情報が正確かどうかをチェックします。

  • EXTENT_TS_BITMAP_CHECK := 15。エクステント・マップとファイル・レベルのビットマップで一貫性があるかどうかをチェックします。

  • DB_BACKPOINTER_CHECK := 16。データ・ブロックに領域メタデータ・ブロックへの正しいバックポインタがあるかどうかをチェックします。

  • EXTENT_SEGMENT_BITMAP_CHECK := 17。セグメントのエクステント・マップがセグメントのビットマップと一致しているかどうかをチェックします。

  • BITMAPS_CHECK := 18。領域ビットマップ・ブロックが正確かどうかをチェックします。

使用上の注意

  • このプロシージャを使用するには、SYSDBA権限が必要です。

  • 相対ファイル番号およびヘッダー・ブロック番号(header_relative_fileパラメータおよびheader_blockパラメータ)は、DBA_SEGMENTSを問い合せて決定します。

  • このプロシージャは、sid_ora_process_ID.trcという名前のダンプ・ファイルを、USER_DUMP_DEST初期化パラメータで指定した場所に出力します。

149.4.2 ASSM_TABLESPACE_VERIFYプロシージャ

このプロシージャは、ASSM表領域に作成されたすべてのセグメントを検証します。セグメントごとの検証では、その領域のメタデータ・ブロックの基本的な一貫性チェック、および領域メタデータとセグメント・データ・ブロックの間の一貫性チェックが実行されます。

構文

DBMS_SPACE_ADMIN.ASSM_TABLESPACE_VERIFY (
   tablespace_name   IN VARCHAR2,
   ts_option         IN POSITIVE,
   segment_option    IN POSITIVE DEFAULT NULL);

パラメータ

表149-4 ASSM_TABLESPACE_VERIFYプロシージャのパラメータ

パラメータ 説明

tablespace_name

検証する表領域の名前。この表領域はASSM表領域である必要があります。

ts_option

  • TS_VERIFY_BITMAPS := 19。ビットマップをエクステントと照合して検証します。これによって、使用領域としてマークされているか、または誤って空き領域となっているビットが検出され、エクステントの複数割当てが検出されます。ファイルのメタデータは、file$および制御ファイルと照合されて検証されます。

  • TS_VERIFY_DEEP := 20。このオプションを使用して、ファイルのビットマップを検証し、すべてのセグメントのチェックを実行します。

  • TS_VERIFY_SEGMENTS := 21。このオプションは、表領域内のすべてのセグメントでSEGMENT_VERIFYを起動するために使用します。オプションとして、表領域内のすべてのセグメントを問い合せるスクリプトを作成し、SEGMENT_VERIFYを起動できます。

segment_option

TS_VERIFY_SEGMENTSを指定すると、segment_optionは次のいずれかになります。

  • SEGMENT_VERIFY_BASIC := 9。

  • SEGMENT_VERIFY_DEEP := 10。

TS_VERIFY_DEEPまたはTS_VERIFY_BITMAPSを指定すると、segment_optionの値はNULLになります。

使用上の注意

  • このプロシージャを使用するには、SYSDBA権限が必要です。

  • このプロシージャは、sid_ora_process_ID.trcという名前のダンプ・ファイルを、USER_DUMP_DEST初期化パラメータで指定した場所に出力します。

149.4.3 DROP_EMPTY_SEGMENTSプロシージャ

このプロシージャは、空の表(または表の一部)とその依存オブジェクトからセグメントを削除します。

構文

DBMS_SPACE_ADMIN.DROP_EMPTY_SEGMENTS (
   schema_name       IN     VARCHAR2   DEFAULT NULL,
   table_name        IN     VARCHAR2   DEFAULT NULL,
   partition_name    IN     VARCHAR2   DEFAULT NULL);

パラメータ

表149-5 DROP_EMPTY_SEGMENTSプロシージャのパラメータ

パラメータ 説明

schema_name

スキーマの名前。

table_name

表の名前。

partition_name

パーティションの名前

使用上の注意

スキーマ名が指定されると、このプロシージャはそのスキーマ内のすべての表をスキャンします。各表について、表またはその一部が空であることが検出され、その表が一定の基準を満たしている場合(この制限は遅延セグメント作成の制限に関する項に記載されている制限と同じです)、空の表の一部および関連索引のセグメントは、対応するLOBデータおよび索引のセグメントとともに削除されます。後続の挿入操作では、同じプロパティを持つセグメントが作成されます。

オプションとして次のように設定できます。

  • schema_nameを指定しないと、すべてのスキーマに属している表がスキャンされます。

  • schema_nametable_nameの両方を指定すると、指定した表に対して操作が実行されます。

  • 3つの引数をすべて指定すると、操作は指定したパーティションとその依存オブジェクトに制限されます。

149.4.4 GET_SEGADV_ATTRIBプロシージャ

このプロシージャは、DBMS_SPACE_ADMINパッケージの属性の値を戻します。

構文

DBMS_SPACE_ADMIN.GET_SEGADV_ATTRIB(
   attribute  IN  NUMBER,
   value      OUT NUMBER);

パラメータ

表149-6 GET_SEGADV_ATTRIBプロシージャのパラメータ

パラメータ 説明

attribute

サポートされる属性:

  • COMP_ADVISOR - 自動セグメント・アドバイザの圧縮アドバイザを有効または無効にするオプションを提供します。デフォルトでは、自動セグメント・アドバイザの圧縮アドバイザは有効になっています。

  • COMP_LOB - 自動セグメント・アドバイザの実行中にLOB列を含む表の圧縮アドバイザを有効または無効にするオプションを提供します。デフォルトでは、LOB列を含む表の圧縮アドバイザは有効になっています。

value

サポートされる値:

  • ATTR_ENABLE : 1

  • ATTR_DISABLE : O

149.4.5 MATERIALIZE_DEFERRED_SEGMENTSプロシージャ

このプロシージャは、遅延セグメント作成が設定された表(および表の一部)とその依存オブジェクトに対してセグメントを実体化します。

構文

DBMS_SPACE_ADMIN.MATERIALIZE_DEFERRED_SEGMENTS (
   schema_name       IN     VARCHAR2   DEFAULT NULL,
   table_name        IN     VARCHAR2   DEFAULT NULL,
   partition_name    IN     VARCHAR2   DEFAULT NULL);

パラメータ

表149-7 MATERIALIZE_DEFERRED_SEGMENTSプロシージャのパラメータ

パラメータ 説明

schema_name

スキーマの名前。

table_name

表の名前。

partition_name

パーティションの名前

使用上の注意

スキーマ名が指定されると、このプロシージャはそのスキーマ内のすべての表をスキャンします。各表について、表またはその一部に遅延セグメント・プロパティが設定されている場合、それらの表の一部とその依存オブジェクトに対して新規セグメントが作成されます。

オプションとして次のように設定できます。

  • schema_nameを指定しないと、すべてのスキーマに属している表がスキャンされます。

  • schema_nametable_nameの両方を指定すると、指定した表に対して操作が実行されます。

  • 3つの引数をすべて指定すると、操作は指定したパーティションとその依存オブジェクトに制限されます。

149.4.6 SEGMENT_CORRUPTプロシージャ

このプロシージャは、適切なエラー・リカバリを実行できるように、セグメントを破損または有効としてマークします。

これは、SYSTEM表領域では使用できません。

構文

DBMS_SPACE_ADMIN.SEGMENT_CORRUPT (
   tablespace_name         IN    VARCHAR2,
   header_relative_file    IN    POSITIVE,
   header_block            IN    NUMBER,
   corrupt_option          IN    POSITIVE  DEFAULT SEGMENT_MARK_CORRUPT);

パラメータ

表149-8 SEGMENT_CORRUPTプロシージャのパラメータ

パラメータ 説明

tablespace_name

セグメントが常駐している表領域名。

header_relative_file

セグメント・ヘッダーの相対ファイル番号。

header_block

セグメント・ヘッダーの相対ファイル番号。

corrupt_option

SEGMENT_MARK_CORRUPT(デフォルト)またはSEGMENT_MARK_VALID

使用上の注意

セグメント・ヘッダー・ブロックの相対ファイル番号およびブロック番号(header_relative_fileパラメータおよびheader_blockパラメータ)は、DBA_SEGMENTSを問い合せて決定します。

次の例では、セグメントを破損としてマークします。

EXECUTE DBMS_SPACE_ADMIN.SEGMENT_CORRUPT('USERS', 4, 33, DBMS_SPACE_ADMIN.SEGMENT_MARK_CORRUPT); 

次の例では、破損のセグメントを有効としてマークします。

EXECUTE DBMS_SPACE_ADMIN.SEGMENT_CORRUPT('USERS', 4, 33, DBMS_SPACE_ADMIN.SEGMENT_MARK_VALID); 

149.4.7 SEGMENT_DROP_CORRUPTプロシージャ

このプロシージャは、現在破損としてマークされているセグメントを削除します(領域の再生なし)。

これを実行するには、セグメントが一時的としてマークされている必要があります。破損のセグメントを一時的としてマークするには、セグメントでDROPコマンドを発行します。

構文

DBMS_SPACE_ADMIN.SEGMENT_DROP_CORRUPT (
   tablespace_name         IN    VARCHAR2,
   header_relative_file    IN    POSITIVE,
   header_block            IN    NUMBER);

パラメータ

表149-9 SEGMENT_DROP_CORRUPTプロシージャのパラメータ

パラメータ 説明

tablespace_name

セグメントが常駐している表領域名。

header_relative_file

セグメント・ヘッダーの相対ファイル番号。

header_block

セグメント・ヘッダーの相対ファイル番号。

使用上の注意

  • セグメント用の領域は解放されないため、TABLESPACE_FIX_BITMAPSプロシージャまたはTABLESPACE_REBUILD_BITMAPSプロシージャを使用して調整する必要があります。

  • SYSTEM表領域では使用できません。

  • セグメント・ヘッダー・ブロックの相対ファイル番号およびブロック番号(header_relative_fileパラメータおよびheader_blockパラメータ)は、DBA_SEGMENTSを問い合せて決定します。

EXECUTE DBMS_SPACE_ADMIN.SEGMENT_DROP_CORRUPT('USERS', 4, 33); 

149.4.8 SEGMENT_DUMPプロシージャ

このプロシージャは、特定のセグメントのセグメント・ヘッダーおよびビットマップ・ブロックを、USER_DUMP_DEST初期化パラメータで指定した場所にダンプします。

構文

DBMS_SPACE_ADMIN.SEGMENT_DUMP (
   tablespace_name         IN    VARCHAR2,
   header_relative_file    IN    POSITIVE,
   header_block            IN    NUMBER,
   dump_option             IN    POSITIVE  DEFAULT SEGMENT_DUMP_EXTENT_MAP);

パラメータ

表149-10 SEGMENT_DUMPプロシージャのパラメータ

パラメータ 説明

tablespace_name

セグメントが常駐している表領域名。

header_relative_file

セグメント・ヘッダーの相対ファイル番号。

header_block

セグメント・ヘッダーの相対ファイル番号。

dump_option

次のオプションのいずれかです。

  • SEGMENT_DUMP_EXTENT_MAP

  • SEGMENT_DUMP_BITMAP_SUMMARY

使用上の注意

  • SEGMENT_DUMP_BITMAP_SUMMARYdump_optionパラメータとして渡す場合は、少し簡略化されたダンプ(セグメント・ヘッダーおよびビットマップ・ブロックの要約は含むが、各ブロックの空き領域の割合は含まない)を作成できます。

  • セグメント・ヘッダー・ブロックの相対ファイル番号およびブロック番号(header_relative_fileパラメータおよびheader_blockパラメータ)は、DBA_SEGMENTS.HEADER_FILEを問い合せて決定します。HEADER_FILEが1023よりも大きい場合、DBA_DATA_FILES.RELATIVE_FNOを使用します。

EXECUTE DBMS_SPACE_ADMIN.SEGMENT_DUMP('USERS', 4, 33); 

149.4.9 SEGMENT_VERIFYプロシージャ

このプロシージャは、セグメントのエクステント・マップと表領域のファイル・ビットマップ間の一貫性をチェックします。

構文

DBMS_SPACE_ADMIN.SEGMENT_VERIFY (
   tablespace_name         IN    VARCHAR2,
   header_relative_file    IN    POSITIVE,
   header_block            IN    NUMBER,
   verify_option           IN    POSITIVE  DEFAULT SEGMENT_VERIFY_EXTENTS);

パラメータ

表149-11 SEGMENT_VERIFYプロシージャのパラメータ

パラメータ 説明

tablespace_name

セグメントが常駐している表領域名。

header_relative_file

セグメント・ヘッダーの相対ファイル番号。

header_block

セグメント・ヘッダーの相対ファイル番号。

verify_option

チェックの種類: SEGMENT_VERIFY_EXTENTSまたはSEGMENT_VERIFY_EXTENTS_GLOBAL

使用上の注意

  • すべてのブロック範囲で誤った領域表現として検出された異常は、ブロック範囲、ビットマップ・ブロック、ビットマップ・ブロック範囲、異常情報としてトレース・ファイルに出力されます。レポートされる問題の種類は、空きとみなされない空き領域、空きとみなされた使用領域、および複数のセグメントで使用中とみなされた同一領域です。

  • セグメント・ヘッダー・ブロックの相対ファイル番号およびブロック番号(header_relative_fileパラメータおよびheader_blockパラメータ)は、DBA_SEGMENTSを問い合せて決定します。

次の例では、相対ファイル番号4、ブロック番号33のセグメント・ヘッダーを持つセグメントで、エクステント・マップとビットマップが同期していることを検証します。

EXECUTE DBMS_SPACE_ADMIN.SEGMENT_VERIFY('USERS', 4, 33, DBMS_SPACE_ADMIN.SEGMENT_VERIFY_EXTENTS); 

149.4.10 SET_SEGADV_ATTRIBプロシージャ

このプロシージャは、DBMS_SPACE_ADMINパッケージの属性の値を設定します。

構文

DBMS_SPACE_ADMIN.SET_SEGADV_ATTRIB(
   attribute  IN  NUMBER,
   value      IN  NUMBER);

パラメータ

表149-12 SET_SEGADV_ATTRIBプロシージャのパラメータ

パラメータ 説明

attribute

サポートされる属性:

  • COMP_ADVISOR - 自動セグメント・アドバイザの圧縮アドバイザを有効または無効にするオプションを提供します。デフォルトでは、自動セグメント・アドバイザの圧縮アドバイザは有効になっています。

  • COMP_LOB - 自動セグメント・アドバイザの実行中にLOB列を含む表の圧縮アドバイザを有効または無効にするオプションを提供します。デフォルトでは、LOB列を含む表の圧縮アドバイザは有効になっています。

value

サポートされる値:

  • ATTR_ENABLE : 1

  • ATTR_DISABLE : O

149.4.11 TABLESPACE_FIX_BITMAPSプロシージャ

このプロシージャは、適切なブロック範囲(エクステント)を、ビットマップ上で空きまたは使用中としてマークします。これは、SYSTEM表領域では使用できません。

構文

DBMS_SPACE_ADMIN.TABLESPACE_FIX_BITMAPS (
   tablespace_name         IN    VARCHAR2,
   dbarange_relative_file  IN    POSITIVE,
   dbarange_begin_block    IN    POSITIVE,
   dbarange_end_block      IN    POSITIVE,
   fix_option              IN    POSITIVE);

パラメータ

表149-13 TABLESPACE_FIX_BITMAPSプロシージャのパラメータ

パラメータ 説明

tablespace_name

表領域の名前。

dbarange_relative_file

ブロック範囲(エクステント)の相対ファイル番号。

dbarange_begin_block

エクステントの開始ブロック番号。

dbarange_end_block

エクステントの終了ブロック番号(この番号を含める)。

fix_option

次のオプションのいずれかです。

  • TABLESPACE_EXTENT_MAKE_FREE

  • TABLESPACE_EXTENT_MAKE_USED

次の例では、相対ファイル番号4の、ブロック番号33からブロック番号83までの51ブロックのビットを、ビットマップ内でUSEDとしてマークします。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_FIX_BITMAPS('USERS', 4, 33, 83, DBMS_SPACE_ADMIN.EXTENT_MAKE_USED); 

または、オプションにTABLESPACE_EXTENT_MAKE_FREEを指定して、ビットマップ内でビットを空きとしてマークします。BEGINブロックとENDブロックはエクステント境界内にあり、エクステントの倍数である必要があります(そうでない場合は、エラーが発生します)。

149.4.12 TABLESPACE_FIX_SEGMENT_STATESプロシージャ

このプロシージャは、移行が異常終了した表領域内のセグメントの状態を修正します。

ローカルから、またはローカルへの表領域の移行中、セグメントは一時的な状態に置かれます。移行が異常終了すると、イベント10906の設定時点でセグメントの状態がSMONによって訂正されます。セグメントがこのような一時的な状態にあるデータベースは、ダウングレードできません。このプロシージャは、このようなセグメントの状態を修正するために使用できます。

構文

DBMS_SPACE_ADMIN.TABLESPACE_FIX_SEGMENT_STATES (
   tablespace_name     IN    VARCHAR);

パラメータ

表149-14 TABLESPACE_FIX_SEGMENT_STATESプロシージャのパラメータ

パラメータ名 説明

tablespace_name

セグメントを修正する必要がある表領域の名前。

使用上の注意

このプロシージャをコールしたときは、表領域はオンラインを維持して読込み/書込みを行う必要があります。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_FIX_SEGMENT_STATES('TS1') 

149.4.13 TABLESPACE_MIGRATE_FROM_LOCALプロシージャ

このプロシージャは、ローカルに管理される表領域をディクショナリ管理の表領域に移行します。

構文

DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL (
   tablespace_name         IN    VARCHAR2);

パラメータ

表149-15 TABLESPACE_MIGRATE_FROM_LOCALプロシージャのパラメータ

パラメータ 説明

tablespace_name

表領域の名前。

使用上の注意

移行中、表領域はオンラインを維持して読込み/書込みを行う必要があります。一時表領域の移行とSYSTEM表領域の移行はサポートされていません。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_FROM_LOCAL('USERS'); 

149.4.14 TABLESPACE_MIGRATE_TO_LOCALプロシージャ

このプロシージャは、ディクショナリ管理形式からローカル管理形式に表領域を移行します。ローカル管理形式に移行した表領域は、ユーザーが管理します。

構文

DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL (
   tablespace_name     IN     VARCHAR2,
   unit_size           IN     POSITIVE DEFAULT NULL,
   rfno                IN     POSITIVE DEFAULT NULL);

パラメータ

表149-16 TABLESPACE_MIGRATE_TO_LOCALプロシージャのパラメータ

パラメータ名 説明

tablespace_name

移行する表領域の名前。

unit_size

ブロック数で指定された表領域のビットマップ単位サイズ(割当て可能な領域の最小許容チャンク・サイズ)。

rfno

ビットマップ・ブロックが配置されるファイルの相対ファイル番号。

使用上の注意

  • SYSTEM表領域を移行する前に、読込み/書込みモードで使用するディクショナリ管理の表領域をローカル管理に移行してください。SYSTEM表領域を移行した後で、ディクショナリ管理表領域を読込み/書込みモードに変更することはできません。

  • 移行中、表領域はオンラインを維持して読込み/書込みを行う必要があります。一時表領域は移行できないことに注意してください。

  • 割当て単位はオプションで指定できます。デフォルトは、表領域の全エクステント(使用中または空き)の最大公約数に基づいてシステムで計算されます。この数値は、表領域のMINIMUM EXTENTに基づきさらに減少します(MINIMUM EXTENTが指定されていない場合は5)。したがって、計算された値が表領域のMINIMUM EXTENTを超えることはありません。各ファイルの最後にある空きエクステントは、最大公約数の計算については無視されます。単位サイズを指定する場合は、システムで計算されたunit_sizeの因数とする必要があり、それ以外の場合はエラー・メッセージが戻ります。

  • 相対ファイル番号のパラメータは、目的のファイルにビットマップを配置するために使用されます。ファイルに領域が見つからないと、エラーが発行されます。指定するデータファイルは、移行する表領域の一部である必要があります。データ・フローを指定しない場合、初期ビットマップ・ブロックを配置するデータ・フローはシステムで選択されます。初期ビットマップに必要な領域が見つからないと、エラーになります。

次の例は、最小エクステント・サイズ1MBで2KBのブロック・サイズの表領域'TS1'を移行します。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('TS1', 512, 2);

ビットマップは、相対ファイル番号2のファイルに配置されます。

149.4.15 TABLESPACE_REBUILD_BITMAPSプロシージャ

このプロシージャは、適切なビットマップを再作成します。ビットマップ・ブロックが指定されていない場合は、指定の表領域のすべてのビットマップが再作成されます。

SYSTEM表領域では使用できません。

構文

DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS (
   tablespace_name         IN    VARCHAR2,
   bitmap_relative_file    IN    POSITIVE   DEFAULT NULL,
   bitmap_block            IN    POSITIVE   DEFAULT NULL);

パラメータ

表149-17 TABLESPACE_REBUILD_BITMAPSプロシージャのパラメータ

パラメータ 説明

tablespace_name

表領域の名前。

bitmap_relative_file

再作成するビットマップ・ブロックの相対ファイル番号。

bitmap_block

再作成するビットマップ・ブロックのブロック番号。

使用上の注意

すべてのファイルの再作成のみサポートされます。

次の例では、USERS表領域にあるすべてのファイルについて、ビットマップを再作成します。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_BITMAPS('USERS'); 

149.4.16 TABLESPACE_REBUILD_QUOTASプロシージャ

このプロシージャは、指定の表領域に関する割当て制限を再作成します。

構文

DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_QUOTAS (
   tablespace_name         IN    VARCHAR2);

パラメータ

表149-18 TABLESPACE_REBUILD_QUOTASプロシージャのパラメータ

パラメータ 説明

tablespace_name

表領域の名前。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_REBUILD_QUOTAS('USERS');

149.4.17 TABLESPACE_RELOCATE_BITMAPSプロシージャ

このプロシージャは、指定先にビットマップを再配置します。

構文

DBMS_SPACE_ADMIN.TABLESPACE_RELOCATE_BITMAPS (
   tablespace_name    IN      VARCHAR2,
   filno              IN      POSITIVE,
   blkno              IN      POSITIVE);

パラメータ

表149-19 TABLESPACE_RELOCATE_BITMAPSプロシージャのパラメータ

パラメータ名 説明

tablespace_name

表領域の名前。

filno

宛先ファイルの相対ファイル番号。

blkno

宛先範囲のブロック番号。

使用上の注意

  • 表領域のディクショナリ管理からローカル管理形式への移行を行うと、ビットマップ・ブロックを含んだSPACE HEADERセグメントが作成される場合があります。SPACE HEADERセグメントは、ユーザー・データとして取り扱われます。ユーザーがファイルのサイズを明示的にSPACE HEADERセグメント以下に変更すると、エラーが発行されます。制御情報を別の場所に移してからファイルのサイズを変更する場合は、TABLESPACE_RELOCATE_BITMAPSコマンドを使用します。

  • このプロシージャは、SYSTEM表領域では使用できません。

  • ビットマップの再配置中は、表領域はオンラインを維持して読込み/書込みを行う必要があります。ビットマップの再配置は、移行したローカル管理表領域でのみ実行できます。

EXECUTE  DBMS_SPACE_ADMIN.TABLESPACE_RELOCATE_BITMAPS('TS1', 3, 4);

ビットマップをファイル3、ブロック4に移動します。

注意:

ソース・アドレスと宛先アドレスはオーバーラップできません。宛先ブロック番号は単位の境界まで切り下げられます。宛先位置にユーザー・データが存在すると、エラーになります。

149.4.18 TABLESPACE_VERIFYプロシージャ

このプロシージャは、表領域内のセグメントについて、ビットマップとエクステント・マップが同期していることを検証します。

構文

DBMS_SPACE_ADMIN.TABLESPACE_VERIFY (
   tablespace_name         IN    VARCHAR2,
   verify_option           IN    POSITIVE DEFAULT TABLESPACE_VERIFY_BITMAP);

パラメータ

表149-20 TABLESPACE_VERIFYプロシージャのパラメータ

パラメータ 説明

tablespace_name

表領域の名前。

verify_option

TABLESPACE_VERIFY_BITMAPオプションのみがサポートされます。

EXECUTE DBMS_SPACE_ADMIN.TABLESPACE_VERIFY('USERS');