ヘッダーをスキップ

Oracle Database SQLリファレンス
10g リリース2(10.2)

B19201-02
目次
目次
索引
索引

戻る 次へ

10 SQL文: ALTER CLUSTER〜ALTER JAVA

この章では、様々なSQL文についてアルファベット順に説明します。その他のSQL文については、第11章第19章を参照してください。

この章では、次の内容を説明します。

様々な種類のSQL文

次の項にあるリストは、SQL文の機能の概要について、次のカテゴリに分類して説明しています。

データ定義言語(DDL)文

データ定義言語(DDL)文によって、次のタスクを実行できます。

CREATEALTERおよびDROPコマンドは、特定のオブジェクトに対して排他的アクセスを必要とします。たとえば、別のユーザーが特定の表でトランザクションをオープンしている場合、ALTER TABLE文は実行できません。

GRANTREVOKEANALYZEAUDITおよびCOMMENTコマンドは、特定のオブジェクトに対する排他的アクセスを必要としません。たとえば、他のユーザーが表を更新しているときでも、その表を分析できます。

Oracleデータベースは、暗黙的にすべてのDDL文の前後で現在のトランザクションをコミットします。

DDL文の多くは、Oracleデータベースにスキーマ・オブジェクトを再コンパイルまたは再認可させることができます。Oracleデータベースがスキーマ・オブジェクトを再コンパイルまたは再認可する方法、およびDDL文によってそれを実行する環境については、『Oracle Database概要』を参照してください。

DDL文は、DBMS_SQLパッケージを使用したPL/SQLによってサポートされます。

参照:

『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』 

次に、DDL文を示します。

ALTER ... (ALTERで始まるすべての文)
ANALYZE
ASSOCIATE STATISTICS
AUDIT
COMMENT
CREATE ... (CREATEで始まるすべての文)
DISASSOCIATE STATISTICS
DROP ... (DROPで始まるすべての文)
FLASHBACK ... (FLASHBACKで始まるすべての文)
GRANT
NOAUDIT
PURGE
RENAME
REVOKE
TRUNCATE

データ操作言語(DML)文

データ操作言語(DML)文は、既存スキーマ・オブジェクトのデータにアクセスし、操作します。次の文は、現在のトランザクションを暗黙的にコミットしません。次に、データ操作言語文を示します。

CALL
DELETE
EXPLAIN PLAN
INSERT
LOCK TABLE
MERGE
SELECT
UPDATE

SELECT文は、DML文の制限された形式であり、データベース内のデータへのアクセスのみが可能です。アクセスしたデータを操作してから問合せの結果を戻すことはできますが、データベース内のデータを操作することはできません。

CALLおよびEXPLAIN PLAN文は、動的に実行されるときにのみPL/SQLでサポートされます。他のすべてのDML文は、PL/SQLで完全にサポートされます。

トランザクション制御文

トランザクション制御文は、DML文で行った変更を管理します。次に、トランザクション制御文を示します。

COMMIT
ROLLBACK
SAVEPOINT
SET TRANSACTION

COMMITおよびROLLBACKコマンドの特定書式以外のトランザクション制御文は、PL/SQLでサポートされます。制限については、「COMMIT」および「ROLLBACK」を参照してください。

セッション制御文

セッション制御文は、ユーザー・セッションのプロパティを動的に管理します。次の文は、現在のトランザクションを暗黙的にコミットしません。

PL/SQLは、セッション制御文をサポートしません。次に、セッション制御文を示します。

ALTER SESSION
SET ROLE

システム制御文

単一システム制御文ALTER SYSTEMは、Oracleデータベース・インスタンスのプロパティを動的に管理します。この文は、現在のトランザクションを暗黙的にコミットしません。また、PL/SQLではサポートされません。

埋込みSQL文

埋込みSQL文は、DDL、DMLおよびトランザクション制御文を手続き型言語プログラム内に入れます。埋込みSQLは、Oracleプリコンパイラでサポートされており、次のマニュアルに記載されています。

SQL文に関する章の構成

この章および第11章第19章のすべてのSQL文は、次の項で編成されています。

構文

構文図には、文を構成するキーワードおよびパラメータを示します。


注意:

すべてのキーワードおよびパラメータがあらゆる環境において有効なわけではありません。構文の制限事項については、文および句の「セマンティクス」を参照してください。 


用途

文の基本的な使用方法を説明します。

前提条件

文の実行に必要な権限と、文を使用する前に実行する手順を示します。特に指定がないかぎり、ご使用のインスタンスでデータベースがオープンされている必要があります。

セマンティクス

構文を構成するキーワード、パラメータおよび句の用途について説明します。また、制限事項およびその他の注意事項についても説明します。(この章および第11章〜第19章で使用するキーワードおよびパラメータの表記規則の詳細は、「はじめに」を参照してください。)

文の様々な句およびパラメータの使用方法を示します。


ALTER CLUSTER

用途

ALTER CLUSTER文を使用すると、クラスタの記憶特性および並列特性を再定義できます。


注意:

クラスタ・キーの列番号および列名を変更するためにこの文を使用することはできません。また、クラスタを格納する表領域を変更することはできません。 


参照:

クラスタの作成については、「CREATE CLUSTER」を参照してください。クラスタからの表の削除については、「DROP CLUSTER」および「DROP TABLE」を参照してください。クラスタへの表の追加については、「CREATE TABLE」「physical_properties」を参照してください。 

前提条件

クラスタが自分のスキーマ内にあるか、またはALTER ANY CLUSTERシステム権限が必要です。

構文

alter_cluster::=

画像の説明

physical_attributes_clause::=size_clause::=allocate_extent_clause::=deallocate_unused_clause::=parallel_clause::=を参照)

physical_attributes_clause::=

画像の説明

storage_clause::=を参照)

allocate_extent_clause::=

画像の説明

size_clause::=を参照)

deallocate_unused_clause::=

画像の説明

size_clause::=を参照)

parallel_clause::=

画像の説明

セマンティクス

schema

クラスタが含まれているスキーマを指定します。schemaを指定しない場合、そのクラスタは自分のスキーマにあるとみなされます。

cluster

変更するクラスタの名前を指定します。

physical_attributes_clause

クラスタのPCTUSEDパラメータ、PCTFREEパラメータおよびINITRANSパラメータの値を変更します。

クラスタの記憶特性を変更するには、STORAGE句を使用します。

参照:

 

物理属性の制限事項:

クラスタの記憶域パラメータINITIALおよびMINEXTENTSの値は変更できません。

SIZE integer

SIZE句を使用すると、クラスタに割り当てられたデータ・ブロック中に格納されるクラスタ・キーの数を指定できます。

SIZEの制限事項:

ハッシュ・クラスタではなく、索引クラスタのSIZEパラメータのみを変更できます。

参照:

SIZEパラメータについては、「CREATE CLUSTER」および「クラスタの変更例:」を参照してください。 

allocate_extent_clause

allocate_extent_clauseを指定すると、クラスタの新しいエクステントを明示的に割り当てることができます。

この句で明示的にエクステントを割り当てる場合、Oracleデータベースは、クラスタの記憶域パラメータを評価しません。割り当てられる新しいエクステントの新しいサイズも決定しません(表を作成する際に行います)。したがって、Oracleデータベースがデフォルト値を使用しないようにするには、SIZEを指定してください。

エクステントの割当ての制限事項:

ハッシュ・クラスタではなく、索引クラスタのみに新しいエクステントを割り当てることができます。

参照:

この句の詳細は、「allocate_extent_clause」および「未使用領域の解放例:」を参照してください。 

deallocate_unused_clause

deallocate_unused_clause句を使用すると、クラスタの終わりの未使用領域の割当てを明示的に解除し、解放された領域が他のセグメントで使用可能になります。

参照:

この句の詳細は、「deallocate_unused_clause」を参照してください。 

CACHE | NOCACHE

この句の動作は、CREATE CLUSTER文およびALTER CLUSTER文で同じです。

参照:

この句の詳細は、「CACHE | NOCACHE」を参照してください。 

parallel_clause

parallel_clauseを指定すると、クラスタのDMLおよび問合せのデフォルト並列度を変更できます。

並列化するクラスタの制限事項:

clusterの表がLOB型またはユーザー定義オブジェクト型の列を含む場合、clusterでその後に行うINSERTUPDATEまたはDELETE操作と同様、この文は通知なしに逐次実行されます。

参照:

この句の詳細は、「CREATE TABLE」の「parallel_clause」を参照してください。 

次に、「CREATE CLUSTER」の「例」で作成したクラスタを変更する例を示します。

クラスタの変更例:

次の文は、personnelクラスタを変更します。

ALTER CLUSTER personnel
   SIZE 1024 CACHE;

この結果、各クラスタ・キー値に1024バイトが割り当てられ、CACHE属性が有効になります。データ・ブロックのサイズを2KBと想定した場合、このクラスタ内の今後のデータ・ブロックには、各ブロックに2つのクラスタ・キー(2KBを1024バイトで割った値)が含まれます。

未使用領域の解放例:

次の文は、languageクラスタから未使用領域の割当てを解除し、後で使用できるように30KBの未使用領域を保持します。

ALTER CLUSTER language 
   DEALLOCATE UNUSED KEEP 30 K;

ALTER DATABASE

用途

ALTER DATABASE文を使用すると、既存のデータベースを変更、メンテナンスまたはリカバリできます。


注意:

以前のバージョンのOracleデータベースでは、ALTER DATABASEを使用して次の2種類の変換操作を実行できました。

  • RESET COMPATIBILITY句: 次のインスタンス起動時に、データベースを以前のバージョンにリセットします。

  • CONVERT句: Oracle7のデータ・ディクショナリを、Oracle8iまたはOracle9iのデータ・ディクショナリにアップグレードします。

今回のバージョンでは、これらの句はサポートされていません。移行や相互運用性の問題については、『Oracle Databaseアップグレード・ガイド』を参照してください。 


参照:

  • メディア・リカバリの実行例については、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。

  • スタンバイ・データベースをメンテナンスするためにALTER DATABASE文を使用する場合の詳細は、『Oracle Data Guard概要および管理』を参照してください。

  • データベースの作成の詳細は、「CREATE DATABASE」を参照してください。

 

前提条件

ALTER DATABASEシステム権限が必要です。

RECOVER句を指定する場合は、SYSDBAシステム権限が必要です。

構文

alter_database::=

画像の説明

ALTER DATABASE構文のグループは、次のとおりです。
startup_clauses::=

画像の説明

recovery_clauses::=

画像の説明

general_recovery::=managed_standby_recovery::=を参照)

general_recovery::=

画像の説明

full_database_recovery::=partial_database_recovery::=を参照)

full_database_recovery::=

画像の説明

partial_database_recovery::=

画像の説明

parallel_clause::=

画像の説明

managed_standby_recovery::=

画像の説明

redo_apply_clauses::=cancel_clause::=finish_clause::=を参照)

redo_apply_clauses::=

画像の説明


注意:

redo_apply_clausesのいくつかの副次句は、不要でありその使用は推奨されません。これらの副次句は、前掲の図にも記載されていません。「redo_apply_clauses」のセマンティクスを参照してください。 


finish_clause::=

画像の説明

cancel_clause::=

画像の説明

database_file_clauses::=

画像の説明

create_datafile_clause::=alter_datafile_clause::=alter_tempfile_clause::=を参照)

create_datafile_clause::=

画像の説明

file_specification::=を参照)

alter_datafile_clause::=

画像の説明

autoextend_clause::=size_clause::=を参照)

alter_tempfile_clause::=

画像の説明

autoextend_clause::=size_clause::=を参照)

autoextend_clause::=

画像の説明

maxsize_clause::=

画像の説明

size_clause::=を参照)

logfile_clauses::=

画像の説明

logfile_descriptor::=add_logfile_clauses::=drop_logfile_clauses::=supplemental_db_logging::=を参照)

add_logfile_clauses::=

画像の説明

redo_log_file_spec::=logfile_descriptor::=を参照)

drop_logfile_clauses::=

画像の説明

logfile_descriptor::=を参照)

supplemental_db_logging::=

画像の説明

supplemental_id_key_clause::=を参照)

supplemental_id_key_clause::=

画像の説明

logfile_descriptor::=

画像の説明

controlfile_clauses::=

画像の説明

trace_file_clause::=を参照)

trace_file_clause::=

画像の説明

standby_database_clauses::=

画像の説明

activate_standby_db_clause::=maximize_standby_db_clause::=register_logfile_clause::=commit_switchover_clause::=start_standby_clause::=stop_standby_clause::=convert_standby_clause::=parallel_clause::=を参照)

activate_standby_db_clause::=

画像の説明

maximize_standby_db_clause::=

画像の説明

register_logfile_clause::=

画像の説明

file_specification::=を参照)

commit_switchover_clause::=

画像の説明

start_standby_clause::=

画像の説明

stop_standby_clause::=

画像の説明

convert_standby_clause::=

画像の説明

default_settings_clauses::=

画像の説明

flashback_mode_clause::=set_time_zone_clause::=を参照)

set_time_zone_clause::=

画像の説明

flashback_mode_clause::=

画像の説明

instance_clauses::=

画像の説明

security_clause::=

画像の説明

セマンティクス

database

変更するデータベースの名前を指定します。データベース名にはASCII文字のみが使用できます。データベース名を指定しないと、初期化パラメータDB_NAMEに指定されているデータベースが変更されます。なお、データベースの制御ファイルが初期化パラメータCONTROL_FILESに指定されている場合にのみ、そのデータベースを変更できます。データベース識別子は、Oracle Netのデータベース指定とは関係ありません。

startup_clauses

startup_clausesを使用すると、データベースをマウントおよびオープンして、アクセス可能にできます。

MOUNT句

MOUNT句を使用すると、データベースをマウントできます。データベースがすでにマウントされている場合、この句は使用できません。

MOUNT STANDBY DATABASE

MOUNT STANDBY DATABASEを指定すると、物理スタンバイ・データベースをマウントできます。キーワードSTANDBY DATABASEはオプションです。Oracleデータベースは、マウント対象のデータベースがプライマリ・データベースかスタンバイ・データベースかを自動的に判別します。この文の実行直後、スタンバイ・インスタンスはプライマリ・インスタンスからアーカイブREDOログを受信し、ログをSTANDBY_ARCHIVE_DESTで指定された位置にアーカイブできるようになります。

参照:

スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。 

MOUNT CLONE DATABASE

MOUNT CLONE DATABASEを指定すると、クローン・データベースをマウントできます。

OPEN句

OPEN句を使用すると、データベースを使用可能な状態にできます。データベースをオープンするには、マウントしておく必要があります。

OPENを他のキーワードを指定せずに単独で指定した場合のデフォルトは、プライマリ・データベースではOPEN READ WRITE NORESETLOGS、スタンバイ・データベースではOPEN READ ONLYです。

OPEN READ WRITE

OPEN READ WRITEを指定すると、読取り/書込みモードでデータベースがオープンされ、ユーザーはREDOログを生成できるようになります。これは、プライマリ・データベースをオープンするときのデフォルトです。この句は、物理スタンバイ・データベースに対しては指定できません。

参照:

「READ ONLY | READ WRITEの例:」 

RESETLOGS | NORESETLOGS

現行のログ順序番号を1にリセットし、アーカイブされていないログ(現行のログを含む)をアーカイブして、リカバリ時に適用されなかったREDO情報を今後適用されないように破棄するかどうかを指定します。Oracleデータベースは、この句の設定が必要な次の状況を除き、NORESETLOGSを自動的に使用します。

UPGRADE | DOWNGRADE

データベースをアップグレードまたはダウングレードする場合にかぎり、これらのOPEN句パラメータを使用します。この句は、Oracleデータベースに対して、アップグレードとダウングレードにそれぞれ必要なシステム・パラメータを動的に変更するように指示します。SQL*PlusのSTARTUP UPGRADEコマンドまたはSTARTUP DOWNGRADEコマンドでも、同じ結果が得られます。

参照:

  • データベースをあるリリースから別のリリースにアップグレードまたはダウングレードする手順については、『Oracle Databaseアップグレード・ガイド』を参照してください。

  • SQL*PlusのSTARTUPコマンドの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。

 

OPEN READ ONLY

OPEN READ ONLYを指定すると、トランザクションが読取り専用に制限され、ユーザーはREDOログを生成できなくなります。この設定は、物理スタンバイ・データベースをオープンするときのデフォルトです。プライマリ・データベース・サイトからのアーカイブ・ログのコピー中でも、物理スタンバイ・データベースが問合せに使用可能になります。

データベースのオープンの制限事項:

データベースのオープンには、次の制限事項があります。

recovery_clauses

recovery_clausesを使用すると、バックアップ後の操作を指定できます。これらすべての句では、Oracleデータベースは、現行の制御ファイルが認識しているデータ・ファイルおよびログ・ファイルのインカネーションを使用して、データベースをリカバリします。

参照:

データベースのバックアップの詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』および「データベースのリカバリ例:」を参照してください。 

general_recovery

general_recovery句を指定すると、データベース、スタンバイ・データベース、または指定した表領域やファイルのメディア・リカバリを制御できます。インスタンスで、データベースがマウント済(オープン状態またはクローズ状態)の場合、関連ファイルが使用中でなければ、この句を使用できます。


注意:

全体的または部分的なデータベース・リカバリおよびログファイルのリカバリでは、デフォルトでパラレル化が有効になっています。これらの操作でのパラレル化は、それぞれの構文図に示されているようにNOPARALLELを指定して無効にできます。 


一般的なデータベース・リカバリの制限事項:

一般的なリカバリには、次の制限事項があります。

AUTOMATIC

AUTOMATICを指定すると、リカバリ操作を続けるために必要な新規アーカイブREDOログ・ファイルの名前が自動的に生成されます。LOG_ARCHIVE_DEST_nパラメータが定義されている場合、最初のローカル接続先に対して有効で使用可能なパラメータがスキャンされます。その接続先はLOG_ARCHIVE_FORMATと結合して使用され、ターゲットのREDOログ・ファイル名が生成されます。LOG_ARCHIVE_DEST_nが定義されていない場合は、かわりにLOG_ARCHIVE_DESTパラメータ値が使用されます。

ファイルが検出されると、そのファイルに含まれているREDOが適用されます。ファイルが検出されない場合は、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。

AUTOMATICLOGFILEも指定しない場合、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。この場合、生成されたファイル名を受け入れるか、または完全修飾されたファイル名に置き換えます。生成されるファイル名とアーカイブ済のファイル名が異なることがわかっている場合、LOGFILE句を使用することによって時間を節約できます。

FROM 'location'

FROM 'location'を指定すると、アーカイブREDOログ・ファイル・グループを読み取る位置を指定できます。locationには、使用するオペレーティング・システムの表記規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しないと、そのアーカイブREDOログ・グループは、初期化パラメータLOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DEST_1に指定された位置にあるとみなされます。

full_database_recovery

full_database_recovery句を指定すると、データベース全体をリカバリできます。

DATABASE

DATABASE句を指定すると、データベース全体をリカバリできます。これはデフォルトです。データベースがクローズされている場合にのみ、このオプションを使用できます。

STANDBY DATABASE

STANDBY DATABASE句を指定すると、プライマリ・データベースからコピーされたアーカイブREDOログ・ファイルおよび制御ファイルを使用して、物理スタンバイ・データベースを手動でリカバリできます。スタンバイ・データベースは、マウントされているがオープンされていない状態である必要があります。

この句は、オンライン・データ・ファイルのみをリカバリします。

partial_database_recovery

partial_database_recovery句を指定すると、個々の表領域およびデータ・ファイルをリカバリできます。

TABLESPACE

TABLESPACE句を指定すると、指定した表領域のみをリカバリできます。リカバリの対象となる表領域がオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。

参照:

「パラレル・リカバリ処理の使用例:」 

DATAFILE

DATAFILE句を指定すると、指定したデータ・ファイルをリカバリできます。リカバリ対象のデータ・ファイルがオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。

データ・ファイルは、名前または番号で識別できます。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。

STANDBY TABLESPACE

STANDBY TABLESPACEを指定すると、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブREDOログ・ファイルを使用して、スタンバイ・データベース内に損失または破損した表領域を再構成できます。

STANDBY DATAFILE

STANDBY DATAFILEを指定すると、プライマリ・データベースおよび制御ファイルからコピーされたアーカイブREDOログ・ファイルを使用して、損失または破損したデータ・ファイルを物理スタンバイ・データベース内で手動で再構成できます。DATAFILE句と同様、ファイルは、名前または番号で識別できます。

旧スタンバイ・データ・ファイルまたは表領域のリカバリに、現行のスタンバイ・データベースの制御ファイルを使用する場合、UNTIL [CONSISTENT WITH] CONTROLFILEを指定します。ただし、スタンバイ制御ファイルに反映されていないREDOログ・ファイルの内容は適用されません。キーワードCONSISTENT WITHはオプションであり、意味を明確にするためのものです。

LOGFILE

LOGFILE 'filename'を指定すると、指定したREDOログ・ファイルを使用して、メディア・リカバリを続行できます。

TEST

TEST句を使用すると、試行リカバリを実行できます。試行リカバリは、通常のリカバリ手順に問題があった場合に有効です。REDOストリームを見ると、続いて発生する可能性のある問題を検出することができます。試行リカバリは、通常のリカバリと同様にREDOを適用しますが、ディスクに変更を書き込みません。変更は、試行リカバリの最後にロールバックされます。

この句を使用できるのは、最後のRESETLOGS操作以降に取ったバックアップをリストアする場合のみです。そうでない場合は、エラーが戻ります。

ALLOW ... CORRUPTION

ALLOW integer CORRUPTION句を指定すると、ログ・ファイルが破損した場合に、許容リカバリの続行で許容する破損ブロックの数を指定することができます。

試行リカバリでこの句を使用する(TEST句と結合する)場合は、integerに2以上の数値を指定できます。通常のリカバリでこの句を使用する場合は、integerに2以上の数値を指定できません。

参照:

  • 一般的なデータベースのリカバリの詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。

  • スタンバイ・データベースの管理リカバリの詳細は、『Oracle Data Guard概要および管理』を参照してください。

 

CONTINUE

CONTINUEを指定すると、スレッドを使用禁止にするために中断されていた複数インスタンス・リカバリを再開できます。

CONTINUE DEFAULTを指定すると、他に指定されたログ・ファイルがない場合、自動的に生成されたREDOログ・ファイルを使用して、リカバリが再開されます。ファイル名の入力を求めるプロンプトが表示されないこと以外は、AUTOMATICの指定と同じです。

CANCEL

CANCELを指定すると、取消しベースのリカバリを終了できます。

managed_standby_recovery

managed_standby_recovery句を使用すると、物理スタンバイ・データベースでのREDO Applyを開始および停止できます。REDO Applyは、プライマリ・データベースから受け取るREDOを継続的に適用することで、スタンバイ・データベースとプライマリ・データベースでのトランザクションの一貫性を確保します。

プライマリ・データベースは、そのREDOデータをスタンバイ・サイトに転送します。REDOデータが、物理スタンバイ・サイトのREDOログ・ファイルに書き込まれると、REDO Applyでそのログ・ファイルを使用できるようになります。managed_standby_recovery句は、インスタンスにデータベースがマウントされているか、またはインスタンスが読取り専用でオープンされている場合にのみ使用できます。後者の場合は、データベースが暗黙的に閉じられてから、REDO Applyが開始されます。

管理スタンバイ・リカバリの制限事項:

この句には、「general_recovery」に記載されている内容と同じ制限が適用されます。

参照:

この句のパラメータの詳細は、『Oracle Data Guard概要および管理』および「管理スタンバイ・データベースのリカバリ例:」を参照してください。 

redo_apply_clauses

この句を使用すると、REDO Applyの詳細を指定できます。


注意:

REDO Apply時のパラレル化は、デフォルトで有効になっています。これらの操作でのパラレル化は、それぞれの構文図に示されているようにNOPARALLELを指定して無効にできます。 


USING CURRENT LOGFILE句

USING CURRENT LOGFILEを指定すると、リアルタイム適用を開始できます。これによって、スタンバイREDOログ・ファイルに書込みが行われると、このファイルからすぐにリカバリが実行されます。このとき、REDOファイルを物理スタンバイ・データベースにアーカイブしておく必要はありません。

参照:

リアルタイム適用の詳細は、『Oracle Data Guard概要および管理』を参照してください。 

DISCONNECT

DISCONNECTを指定すると、REDO Applyをバックグラウンドで実行するよう指示できます。これによって、現行のセッションが他のタスクで使用可能になります。FROM SESSIONキーワードはオプションであり、意味を明確にするためのものです。

NODELAY

NODELAY句は、プライマリ・データベースのLOG_ARCHIVE_DEST_nパラメータのDELAY属性より優先されます。NODELAY句を指定しない場合は、LOG_ARCHIVE_DEST_n設定のDELAY属性に従って、アーカイブREDOログ・ファイルの適用が遅延されます(属性が設定されている場合)。このパラメータにDELAY属性が指定されていない場合、アーカイブREDOログ・ファイルは、すぐにスタンバイ・データベースに適用されます。

UNTIL CHANGE句

この句を使用すると、特定のシステム変更番号より前のREDOデータをリカバリするようREDO Applyに指示できます。

cancel_clause

CANCELを指定すると、現在のREDOログ・ファイルが完全に適用された後で、REDO Applyを停止できます。CANCELキーワードのみを指定した場合、セッション制御はREDO Applyが実際に停止した時点で戻ります。

finish_clause

FINISHを指定すると、フェイルオーバー用に準備されている使用可能なすべてのREDOデータを完全に適用できます。FINISH句には、オプションで、次のキーワードを含めることができます。

FINISH句は、プライマリ・データベースに障害が発生した場合にのみ使用してください。この句は、設定済のいずれの遅延間隔より優先され、使用可能なすべてのREDOが即座に適用されます。FINISHコマンドが完了すると、このデータベースをスタンバイ・データベース・ロールで実行することができなくなります。このデータベースは、ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY文を発行してプライマリ・データベースに変換する必要があります。

TO LOGICAL STANDBY句

この句を使用すると、物理スタンバイ・データベースを論理スタンバイ・データベースに変換できます。データベース名を指定して、新しい論理スタンバイ・データベースを識別する必要があります。この文を発行するときにサーバー・パラメータ・ファイル(spfile)を使用する場合は、新しい論理スタンバイ・データベースの情報でファイルが適切に更新されます。spfileを使用しない場合は、データベースのシャットダウン後にDB_NAMEパラメータの名前を設定するように求めるメッセージが発行されます。さらに、この句をスタンバイ・データベースで使用する前に、プライマリ・データベースでDBMS_LOGSTDBY.BUILD PL/SQLプロシージャを起動する必要もあります。

参照:

DBMS_LOGSTDBY.BUILDプロシージャの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。 

廃止予定のREDO Apply句

以前のリリースの構文には、次の句が記載されていました。これらの句は、廃止される予定です。これらの句は使用しないことをお薦めします。推奨される代替手段は、表10-1と、それに続く廃止予定の句の説明中に示してあります。

表10-1    廃止予定のREDO Apply句 
廃止予定の構文  推奨される代替手段 

DEFAULT DELAY | DELAY integer 

初期化パラメータLOG_ARCHIVE_DEST_nDELAY属性を使用します。 

NEXT integer 

UNTIL CHANGE句を使用します。 

EXPIRE integer | NO EXPIRE 

CANCEL句を使用してREDO Applyを停止します。 

TIMEOUT integer | NO TIMEOUT 

CANCEL句を使用してREDO Applyを停止します。 

DEFAULT DELAY | DELAY integer

DELAY integer句およびDEFAULT DELAY句は廃止される予定です。かわりに、初期化パラメータLOG_ARCHIVE_DEST_nDELAY属性の使用をお薦めします。このパラメータの詳細は、『Oracle Data Guard概要および管理』を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。

NEXT integer

NEXT句は、廃止される予定です。かわりに、UNTIL CHANGE integer構文を使用することをお薦めします。「UNTIL CHANGE句」を参照してください。ここでは下位互換性のために、この句の動作について説明します。

NEXT句を使用すると、指定された数のアーカイブREDOログ・ファイルは、アーカイブ後に可能なかぎり早く適用されます。この句は、プライマリ・データベースの初期化パラメータLOG_ARCHIVE_DEST_nで指定されたDELAY属性、および先行するALTER DATABASE文のmanaged_standby_recovery句で指定されたDELAY値を一時的に無視します。integerで指定した数のアーカイブREDOログが処理されると、それまでに指定されていた遅延が再び有効になります。

EXPIRE integer | NOEXPIRE

EXPIRE句およびNOEXPIRE句は、廃止される予定です。REDO Applyを停止する場合は、EXPIREではなく、CANCEL句を使用することをお薦めします。「cancel_clause」を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。

終了時刻は、REDO Applyの開始時刻ではなく、常に、現行の文が発行された時刻に基づいて決定されます。既存のREDO Applyプロセスを終了するには、CANCEL句を使用します。

TIMEOUT integer | NOTIMEOUT

TIMEOUT句およびNOTIMEOUT句は、廃止される予定です。REDO Applyを停止する場合は、TIMEOUTではなく、CANCEL句を使用することをお薦めします。「cancel_clause」を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。

TIMEOUTおよびDISCONNECT[FROM SESSION]は同時に指定できません。DISCONNECT句はバックグラウンドのリカバリ操作を開始しますが、TIMEOUTはフォアグラウンドのリカバリ操作のみを適用対象とします。

BACKUP句

この句を使用すると、データベース内のすべてのデータ・ファイルをオンライン・バックアップ・モード(ホット・バックアップ・モードともいう)にしたり、このモードから戻すことができます。

参照:

個々の表領域のすべてのデータ・ファイルに対するオンライン・バックアップ・モードの設定または解除の詳細は、「ALTER TABLESPACE」を参照してください。 

BEGIN BACKUP句

BEGIN BACKUPを指定すると、データベース内のすべてのデータ・ファイルをオンライン・バックアップ・モードに設定できます。データベースをマウントしてオープンしておく必要があります。また、メディア・リカバリを使用可能にする(データベースをARCHIVELOGモードにする)必要があります。

データベースがオンライン・バックアップ・モードになっている間は、インスタンスの通常停止、個々の表領域のバックアップの開始、表領域のオフラインへの切替え、または表領域の読取り専用設定は実行できません。

この句は、オフラインまたは読取り専用の表領域のデータ・ファイルには影響しません。

END BACKUP句

END BACKUP指定すると、オンライン・バックアップ・モードの現行のデータベースにあるすべてのデータ・ファイルが、オンライン・バックアップ・モードから戻されます。この操作を実行するとき、データベースはマウント済(オープン状態またはクローズ状態)である必要があります。

システム障害、インスタンス障害、またはSHUTDOWN ABORT操作の後は、オンライン・バックアップ・モードのファイルがシステム・クラッシュ時のファイルと一致するかどうかは識別されません。ファイルに一貫性がある場合、個々のデータ・ファイル、またはすべてのデータ・ファイルをオンライン・バックアップ・モードから戻すことができます。これによって、起動時にファイルのメディア・リカバリを回避できます。

database_file_clauses

database_file_clausesを指定すると、データ・ファイルおよび一時ファイルを変更できます。インスタンスで、データベースがマウント済(オープン状態またはクローズ状態)の場合、関連ファイルが使用中でなければ、次の句はどれでも使用できます。

RENAME FILE句

RENAME FILE句を使用すると、データ・ファイル、一時ファイルまたはREDOログ・ファイル・メンバーの名前を変更できます。この句を指定する前に、オペレーティング・システムのファイル名の表記規則に従って、各ファイル名を指定してください。

この句は、制御ファイルのファイル名のみを変更します。オペレーティング・システムのファイルの名前は、実際には変更されません。オペレーティング・システムのファイル名は存在したままですが、使用されません。

参照:

 

create_datafile_clause

CREATE DATAFILE句を使用すると、元のデータ・ファイルのかわりに新しい空のデータ・ファイルを作成できます。この句を使用すると、バックアップを取らずに失われたデータ・ファイルを再作成できます。filenameまたはfilenumberには、データベースの一部であるファイルまたは以前一部であったファイルを指定します。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。

元のファイル(filenameまたはfilenumber)が既存のOracle Managed Filesのデータ・ファイルの場合、Oracleデータベースは新しいファイルを作成した後、元のファイルを削除しようとします。元のファイルが既存のユーザー管理データ・ファイルの場合、Oracleデータベースは元のファイルを削除しません。

AS句を指定しない場合、Oracleデータベースによって、filenameまたはfilenumberに指定したファイルと同じ名前およびサイズのファイルが新しく作成されます。

リカバリ時には、元のデータ・ファイルの作成後に書き込まれたアーカイブREDOログを、失われたデータ・ファイルにかわる新しい空のデータ・ファイルに適用する必要があります。

新しいファイルは、元のファイルの作成時と同じ状態で作成されます。新しいファイルを元のファイルが失われた時点の状態に戻すには、メディア・リカバリを行ってください。

データ・ファイルの新規作成の制限事項:

新規データ・ファイルの作成には、次の制限事項があります。

alter_datafile_clause

DATAFILE句を使用すると、名前または番号で識別するファイルを操作できます。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。DATAFILE句を使用すると、次のようにデータベース・ファイルを変更できます。

ONLINE

ONLINEを指定すると、データ・ファイルをオンラインにできます。

OFFLINE

OFFLINEを指定すると、データ・ファイルをオフラインにできます。データベースがオープンされている場合、データ・ファイルをオンラインに戻す前に、データ・ファイルのメディア・リカバリを行う必要があります。これは、データ・ファイルがオフラインになる前に、チェックポイントが実行されないためです。

FOR DROP

データベースがNOARCHIVELOGモードの場合は、FOR DROP句を指定して、データ・ファイルをオフラインにする必要があります。ただし、この句は、データベースからデータ・ファイルを削除しません。そのため、オペレーティング・システムのコマンドを使用するか、またはデータ・ファイルが存在する表領域を削除する必要があります。削除するまで、データ・ファイルはRECOVERまたはOFFLINEの状態でデータ・ディクショナリに残ります。

データベースがARCHIVELOGモードの場合は、FOR DROP句は無視されます。

RESIZE

RESIZEを指定すると、データ・ファイルのサイズを、指定した絶対サイズ(バイト単位)まで増やしたり減らすことができます。デフォルト値はないため、必ずサイズを指定してください。

増やしたサイズに対して十分なディスク領域がない場合、または減らしたサイズを超えるデータがファイルに含まれる場合、エラー・メッセージが戻されます。

参照:

「データ・ファイルのサイズの変更例:」 

END BACKUP

END BACKUPを指定すると、データ・ファイルがオンライン・バックアップ・モードから戻されます。END BACKUP句の詳細は、ALTER DATABASE構文の最上位で説明しています。「END BACKUP句」を参照してください。

alter_tempfile_clause

TEMPFILE句を使用すると、一時データ・ファイルのサイズを変更できます。また、autoextend_clauseを指定すると、永続データ・ファイルと同じ効果を持たせることができます。データベースは、オープンされている必要があります。一時ファイルは、名前または番号で識別します。番号で識別した場合、filenumberは、V$TEMPFILE動的パフォーマンス・ビューのFILE#列の数を表す整数です。


注意:

オペレーティング・システムによっては、一時ファイルのブロックが実際にアクセスされるまで、一時ファイル用の領域が割り当てられない場合があります。領域の割当ての遅延のため、一時ファイルの作成およびサイズ変更が速くなります。ただし、後で一時ファイルが使用されるときに、十分なディスク領域を使用可能にする必要があります。発生する可能性がある問題を回避するには、一時ファイルを作成またはサイズ変更する前に、ディスク領域が、新しく作成する一時ファイルまたはサイズ変更後の一時ファイルのサイズより大きいことを確認してください。ディスク領域に余裕を持たせることによって、関連のない操作が原因で増加が予想されるディスク使用量に対応できます。十分な領域があることを確認した後で、作成またはサイズ変更操作を実行してください。 


DROP

DROPを指定すると、データベースから一時ファイルを削除できます。表領域はそのまま残ります。

INCLUDING DATAFILESを指定すると、関連付けられたオペレーティング・システム・ファイルは削除され、削除された各ファイルのメッセージがアラート・ログに書き込まれます。同じ結果は、ALTER TABLESPACE ... DROP TEMPFILE文を使用しても得られます。詳細は、「ALTER TABLESPACE」の「DROP句」を参照してください。

autoextend_clause

autoextend_clauseを使用すると、新規または既存のデータ・ファイルまたは一時ファイルの自動拡張を使用可能または使用禁止にできます。この句の詳細は、「file_specification」を参照してください。

logfile_clauses

logfile_clausesを指定すると、ログ・ファイルを追加、削除または変更できます。

ARCHIVELOG

ARCHIVELOGを指定すると、REDOログ・ファイル・グループを再利用する前に、グループの内容をアーカイブできます。このモードでは、メディア・リカバリができるようになります。この句は、エラーなしの通常終了または即時終了でインスタンスを停止して再起動した後に、データベースをマウントした場合にのみ指定できます。Real Application Clustersは使用禁止にする必要があります。

MANUAL

MANUALを指定すると、Oracleデータベースによって作成されたREDOログ・ファイルのアーカイブを、ユーザーが制御することができます。この句は、テープに直接アーカイブするユーザーなどに対して、下位互換性を保つために提供されています。MANUALを指定する場合、次のことに注意します。

この句を指定しない場合、REDOログ・ファイルは、初期化パラメータLOG_ARCHIVE_DEST_nに指定された宛先に自動的にアーカイブされます。

NOARCHIVELOG

REDOログ・ファイル・グループを再利用する前に、内容をアーカイブする必要がない場合は、NOARCHIVELOGを指定します。このモードでは、メディア障害後のリカバリはできません。この句は、インスタンスでデータベースがマウントされているがオープンされていない場合にのみ使用できます。Real Application Clustersは使用禁止にする必要があります。

[NO] FORCE LOGGING

この句を使用すると、データベースをFORCE LOGGINGモードにしたり、このモードから戻すことができます。データベースは、マウントまたはオープンされている必要があります。

FORCE LOGGINGモードでは、一時表領域および一時セグメントの変更を除くデータベースのすべての変更が記録されます。この設定は、各表領域で指定するNOLOGGINGまたはFORCE LOGGING設定、および各データベース・オブジェクトで指定するNOLOGGING設定より優先され、これらの設定には影響されません。

FORCE LOGGINGを指定すると、Oracleデータベースは、まだ記録されていない実行中のすべての操作が終了するまで待機します。

参照:

FORCE LOGGINGモードの使用の詳細は、『Oracle Database管理者ガイド』を参照してください。 

RENAME FILE句

ログ・ファイルに対するこの句の機能は、データ・ファイルおよび一時ファイルの場合と同じです。「RENAME FILE句」を参照してください。

CLEAR LOGFILE句

CLEAR LOGFILE句を使用すると、オンラインREDOログを再初期化できます。REDOログをアーカイブしないオプションもあります。CLEAR LOGFILEは、REDOログの追加および削除と似ていますが、スレッドに2つ以外ログがない場合や、クローズ状態のスレッドの現行のREDOログ・ファイルに対しても発行できます。

スタンバイ・データベースでは、STANDBY_FILE_MANAGEMENT初期化パラメータがAUTOに設定されており、いずれかのログ・ファイルがOracle Managed Filesである場合、Oracleデータベースによって、制御ファイル内のファイルと同数のOracle Managed Filesのログ・ファイルが作成されます。ログ・ファイル・メンバーは、ログ・ファイルの現行のデフォルト宛先に格納されます。

add_logfile_clauses

この句を使用すると、データベースにREDOログ・ファイル・グループを追加したり、既存のREDOログ・ファイル・グループに新しいメンバーを追加することができます。

ADD LOGFILE句

ADD LOGFILE句を使用すると、指定したスレッドまたはインスタンスに1つ以上のREDOログ・ファイル・グループが追加され、そのスレッドが割り当てられているインスタンスで、そのグループを使用できるようになります。

ログ・ファイルがオンライン用、スタンバイ・データベース用のどちらに設計されたかを確認するには、V$LOGFILE動的パフォーマンス・ビューのTYPE列を問い合せます。

参照:

  • 新しいログ・ファイル・グループ名を指定しない場合にこの句によってOracle Managed Filesに戻される結果の詳細は、「CREATE DATABASE」の「LOGFILE句」を参照してください。

  • 「REDOログ・ファイル・グループの追加例:」

  • V$LOGFILEの詳細は、『Oracle Databaseリファレンス』を参照してください。

 

INSTANCE

INSTANCE句は、パラレル・モードのReal Application ClustersでOracleデータベースを使用している場合にのみ適用可能です。ログ・ファイルを追加するインスタンス名を指定します。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップするスレッドはOracleデータベースによって自動的に使用されます。指定されたインスタンスにスレッドがマップされていない場合、Oracleデータベースはマップされていない使用可能なスレッドを取得して、そのインスタンスに割り当てます。この句もTHREAD句も指定しない場合、Oracleデータベースは、現行のインスタンスを指定した場合と同じコマンドを実行します。指定されたインスタンスにマップされた現行のスレッドが存在せず、マップされていない使用可能なスレッドも存在しない場合、エラーが戻されます。

GROUP

GROUP句を指定すると、すべてのスレッドのすべてのグループ間で、REDOログ・ファイル・グループを一意に識別できます。この値は、1からCREATE DATABASE文のMAXLOGFILESに指定された値までの範囲で指定できます。同一のGROUP値を持つREDOログ・ファイル・グループは、複数追加できません。このパラメータを指定しない場合、値が自動的に生成されます。REDOログ・ファイル・グループのGROUP値は、動的パフォーマンス・ビューV$LOGで確認できます。

redo_log_file_spec

redo_log_file_specには、1つ以上のメンバー(1つ以上のコピー)で構成されるREDOログ・ファイル・グループを指定します。新しいログ・ファイルにファイル名を指定しない場合、「CREATE DATABASE」の「LOGFILE句」に示すルールに従って、Oracle Managed Filesが作成されます。

参照:

  • 「file_specification」

  • 動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。

 

ADD [STANDBY] LOGFILE MEMBER句

ADD LOGFILE MEMBER句を使用すると、既存のREDOログ・ファイル・グループに新しいメンバーを追加できます。新しいメンバーをそれぞれ'filename'に指定します。すでにファイルが存在する場合、追加するメンバーはグループ内の他のメンバーと同じサイズである必要があり、REUSEを指定する必要があります。ファイルが存在しない場合、適切なサイズのファイルが作成されます。メディア障害によってグループのすべてのメンバーを失った場合は、そのグループにメンバーを追加することはできません。

STANDBYを指定すると、ログ・ファイル・メンバーが物理スタンバイ・データベースのみで使用可能になります。ただし、このキーワードは必須ではありません。グループintegerがスタンバイ・データベース用に追加された場合は、すべてのメンバーも同様にスタンバイ・データベースのみに使用されます。

次のいずれかの方法で、既存のREDOログ・ファイル・グループを指定できます。

GROUP integer

integerにはREDOログ・ファイル・グループを識別するGROUPパラメータの値を指定します。

filename

REDOログ・ファイル・グループのすべてのメンバーを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。

参照:

 

drop_logfile_clauses

この句を使用すると、REDOログ・ファイル・グループまたはREDOログ・ファイル・メンバーを削除できます。

DROP LOGFILE句

DROP LOGFILE句を使用すると、REDOログ・ファイル・グループのすべてのメンバーを削除できます。この句を使用してOracle Managed Filesを削除する場合、ディスクからもすべてのログ・ファイル・メンバーが削除されます。ADD LOGFILE MEMBER句と同様に、REDOログ・ファイル・グループを指定します。

DROP LOGFILE MEMBER句

DROP LOGFILE MEMBER句を使用すると、1つ以上のREDOログ・ファイル・メンバーを削除できます。各'filename'には、ご使用のオペレーティング・システムのファイル名の表記規則に従って、メンバーを完全に指定する必要があります。

supplemental_db_logging

この句を使用すると、ログ・ストリームへのサプリメンタル・データの追加を実行または停止するようにOracleデータベースに指示できます。

ADD SUPPLEMENTAL LOG句

ADD SUPPLEMENTAL LOG DATAを指定すると、最小サプリメンタル・ロギングを使用可能にできます。最小サプリメンタル・ロギングに加え、列データ・ロギングを使用可能にする場合、ADD SUPPLEMENTAL LOG supplemental_id_key_clauseを指定します。デフォルトでは、最小サプリメンタル・ロギングもサプリメンタル・ロギングも使用できません。

最小サプリメンタル・ロギングによって、LogMiner(およびLogMinerの技術に基づいた製品)には、連鎖行および様々な記憶域構成(クラスタ表など)をサポートするために十分な情報が確保されます。

あるデータベースで生成されたREDOが、別のデータベースでの変更の基となる(マイニングおよび適用される)場合(論理スタンバイ・データベースなど)、ROWIDではなく列データを使用して、影響を受ける行を識別する必要があります。この場合、supplemental_id_key_clauseを指定する必要があります。

サプリメンタル・ロギングが使用可能になっているかどうかを確認するには、V$DATABASEビューの適切な列を問い合せます。

データベースのオープン時にこの文を発行できます。ただし、パフォーマンスに影響するカーソル・キャッシュのすべてのDMLカーソルが、キャッシュが再移入されるまで無効になります。

supplemental_id_clauseの詳細は、「CREATE TABLE」の「supplemental_id_key_clause」を参照してください。

参照:

論理スタンバイ・データベースをサポートするためのプライマリ・データベースでのサプリメンタル・ロギングの詳細は、『Oracle Data Guard概要および管理』を参照してください。 

DROP SUPPLEMENTAL LOG句

この句を使用すると、サプリメンタル・ロギングを停止できます。

controlfile_clauses

controlfile_clausesを指定すると、制御ファイルを作成またはバックアップできます。

CREATE STANDBY CONTROLFILE句

CREATE STANDBY CONTROLFILE句を使用すると、物理または論理スタンバイ・データベースを管理するための制御ファイルを作成できます。ファイルがすでに存在している場合は、REUSEを指定してください。

参照:

『Oracle Data Guard概要および管理』 

BACKUP CONTROLFILE句

BACKUP CONTROLFILE句を使用すると、現行の制御ファイルのバックアップを取ることができます。この句を使用するとき、データベースをオープンまたはマウントしておく必要があります。

TO 'filename'

filenameには制御ファイルのバックアップ先ファイルを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。指定したファイルがすでに存在している場合は、REUSEを指定します。

TO TRACE

TO TRACEを指定すると、制御ファイルの物理バックアップが取られるのではなく、トレース・ファイルにSQL文が書き込まれます。トレース・ファイルに記述されたSQL文を使用すると、データベースの起動、制御ファイルの再作成、データベースのリカバリやオープンなどの操作を、作成した制御ファイルに基づいて正しく実行できます。ブロック・チェンジ・トラッキングを使用可能にしているときにALTER DATABASE BACKUP CONTROLFILE TO TRACE文を発行すると、生成されるスクリプトには、ブロック・チェンジ・トラッキングを再度使用可能にするコマンドが記述されます。

この文は暗黙的なALTER DATABASE REGISTER LOGFILE文を発行します。アーカイブ・ログ・ファイルが現行のアーカイブ・ログの宛先に存在する場合、この文によって、インカネーション・レコードが作成されます。

制御ファイルのコピーがすべて失われた場合(または、制御ファイルのサイズを変更する場合)は、トレース・ファイルからスクリプト・ファイルに文をコピーし、必要に応じて文を編集できます。

オンライン・ログの今後の状態が予測できない場合は、RESETLOGSNORESETLOGSも指定しないでください。この場合、両方のバージョンのスクリプトがトレース・ファイルに入れられるため、スクリプトが必要になった時点で、適切なバージョンを選択できます。

standby_database_clauses

この句を使用すると、スタンバイ・データベースをアクティブにする、または保護モードと非保護モードのいずれかを指定することができます。

参照:

物理および論理スタンバイ・データベース、およびスタンバイ・データベースの管理と使用の詳細は、『Oracle Data Guard概要および管理』を参照してください。 

activate_standby_db_clause

ACTIVATE STANDBY DATABASE句を使用すると、スタンバイ・データベースをプライマリ・データベースに変換できます。


注意:

このコマンドを使用する前に、『Oracle Data Guard概要および管理』を参照して使用方法を確認してください。 


PHYSICAL

PHYSICALを指定すると、物理スタンバイ・データベースをアクティブにできます。これはデフォルトです。

LOGICAL

LOGICALを指定すると、論理スタンバイ・データベースをアクティブにできます。論理スタンバイ・データベースが複数ある場合は、すべてのスタンバイ・システムで同じログ・データが使用可能であることを確認する必要があります。

FINISH APPLY

この句は、論理スタンバイ・データベースのみに適用されます。この句は、ターミナル適用を開始するために使用します(ターミナル適用を実行すると、残りのREDOが適用され、論理スタンバイ・データベースがプライマリ・データベースと同じ状態になります)。ターミナル適用が完了すると、データベースは、論理スタンバイからプライマリ・データベースへのスイッチオーバーを完了します。

データの消失があってもデータベースをすぐにリストアする必要がある場合は、この句を指定しないでください。データベースは、ターミナル適用を行わずに、論理スタンバイからプライマリ・データベースへのスイッチオーバーを実行します。

maximize_standby_db_clause

この句を使用すると、データベース環境でのデータの保護レベルを指定できます。この句は、プライマリ・データベースから指定します。この場合、プライマリ・データベースはマウントされている状態で、オープンされていない状態である必要があります。


注意:

PROTECTEDおよびUNPROTECTEDキーワードは、意味を明確にするために変更されていますが、引き続きサポートされています。PROTECTEDは、TO MAXIMIZE PROTECTIONと同等です。UNPROTECTEDは、TO MAXIMIZE PERFORMANCEと同等です。 


TO MAXIMIZE PROTECTION

この設定は、最大保護モードを確立し、最高レベルのデータ保護を実現します。トランザクションのリカバリに必要なすべてのデータが、SYNCログ転送モードを使用するように構成された1つ以上の物理スタンバイ・データベースに書き込まれるまで、そのトランザクションはコミットされません。1つ以上のスタンバイ・データベースにREDOレコードを書き込めない場合、プライマリ・データベースは停止します。このモードでは、データ非消失は保証されますが、プライマリ・データベースのパフォーマンスおよび可用性に最大の影響を与える可能性があります。

TO MAXIMIZE AVAILABILITY

この設定は、最大可用性モードを確立し、2番目に高いレベルのデータ保護を実現します。トランザクションのリカバリに必要なすべてのデータが、SYNCログ転送モードを使用するように構成された1つ以上の物理または論理スタンバイ・データベースに書き込まれるまで、そのトランザクションはコミットされません。最大保護モードとは異なり、1つ以上のスタンバイ・データベースにREDOレコードを書き込めない場合でも、プライマリ・データベースは停止しません。障害が修正され、スタンバイ・データベースがプライマリ・データベースと同一になるまで、データ保護レベルは最大パフォーマンス・モードまで下げられます。最大パフォーマンス・モードのプライマリ・データベースに障害が発生しないかぎり、このモードによってデータ非消失が保証されます。最大可用性モードは、プライマリ・データベースの可用性に影響を与えずに、最大レベルのデータ保護を実現します。

TO MAXIMIZE PERFORMANCE

この設定は、最大パフォーマンス・モードを確立します。これがデフォルトの設定です。トランザクションのリカバリに必要なデータが、スタンバイ・データベースにすべて書き込まれる前に、トランザクションはコミットされます。そのため、プライマリ・データベースに障害が発生し、プライマリ・データベースからREDOレコードをリカバリできない場合は、一部のトランザクションが失われることがあります。このモードは、プライマリ・データベースのパフォーマンスに影響を与えずに、最大レベルのデータ保護を実現します。

データベースの現行モードを確認するには、V$DATABASE動的パフォーマンス・ビューのPROTECTION_MODE列を問い合せます。

参照:

スタンバイ・データベースのこれらの設定については、『Oracle Data Guard概要および管理』を参照してください。 

register_logfile_clause

スタンバイ・データベースでREGISTER LOGFILE句を指定すると、障害が発生したプライマリ・データベースからログ・ファイルを手動で登録することができます。オペレーティング・システムのファイル・システム内の標準REDOログ・ファイル、または自動ストレージ管理ディスク・グループのREDOログ・ファイルをリスト表示するには、file_specificationredo_log_file_spec書式(「file_specification」を参照)を使用します。

ログ・ファイルのインカーネーションが不明である場合、REGISTER LOGFILE句は、インカネーション・レコードをV$DATABASE_INCARNATIONビューに追加します。新しく登録されたログ・ファイルのインカネーションが現行のRECOVERY_TARGET_INCARNATION#よりも高いRESETLOGS_TIMEを保持している場合、REGISTER LOGFILE句は、新しく追加されたインカネーション・レコードに対応するようにRECOVERY_TARGET_INCARNATION#も変更します。

OR REPLACE

OR REPLACEを指定すると、たとえば位置やファイル指定が変更された場合に、スタンバイ・データベースの既存のアーカイブ・ログ・エントリが更新されます。エントリのシステム変更番号は、正確に一致している必要があります。また、元のエントリは、管理スタンバイ・ログの送信メカニズムによって作成される必要があります。

FOR logminer_session_name

この句は、Streams環境で便利です。この句によって、指定した1つのLogMinerセッションで、ログ・ファイルを登録できます。

commit_switchover_clause

この句を使用すると、スイッチオーバーが実行され、現行のプライマリ・データベースがスタンバイ状態になり、1つのスタンバイ・データベースがプライマリ・データベースになります。Real Application Clusters環境では、この文を発行するインスタンス以外のすべてのインスタンスが正常に停止する必要があります。

プライマリ・データベースが使用できないために正常なスイッチオーバーを実行できない場合は、この句ではなくactivate_standby_db_clauseを使用してください。

PREPARE TO SWITCHOVER

PREPARE TO SWITCHOVER句を指定すると、スイッチオーバーの前にログ・ファイルの交換を開始できるように、プライマリおよびスタンバイ・データベースを準備できます。

COMMIT TO SWITCHOVER

COMMIT TO SWITCHOVERを指定すると、スイッチオーバー操作を実行できます。

CANCEL

CANCELを指定すると、プライマリ・データベースからスタンバイ・データベースへのスイッチオーバーを取り消すことができます。この句は論理スタンバイ・データベースからプライマリ・データベースへのログ・ファイルの送信を停止するために必要です。

参照:

プライマリ・データベースとスタンバイ・データベース間のスイッチオーバーの詳細は、『Oracle Data Guard概要および管理』を参照してください。 

start_standby_clause

START LOGICAL STANDBY APPLY句を指定すると、論理スタンバイ・データベースへのREDOログの適用を開始できます。

stop_standby_clause

この句を使用すると、ログ適用サービスを停止できます。この句は、物理スタンバイ・データベースではなく、論理スタンバイ・データベースのみに適用されます。STOP句を使用すると、適用が正常に停止されます。

convert_standby_clause

この句を使用すると、Data Guard環境外にあるプライマリ・データベースを物理スタンバイ・データベースに変換できます。この操作によって、データベースをData Guard環境に結合することが可能になります。このALTER DATABASE文の発行後には、データベースを停止して再起動する必要があります。

参照:

データベースのData Guard環境への組入れの詳細は、『Oracle Data Guard概要および管理』を参照してください。 

default_settings_clauses

データベースのデフォルト設定を変更できます。

CHARACTER SET、NATIONAL CHARACTER SET

ALTER DATABASE文を使用して、データベース・キャラクタ・セットまたは各国語キャラクタ・セットを変更することはできなくなりました。データベース・キャラクタ・セットの移行の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。

SET DEFAULT TABLESPACE句

この句を使用すると、以降に作成する表領域のデフォルト・タイプを指定または変更できます。表領域がbigfileかsmallfileかを指定するには、BIGFILEまたはSMALLFILEを指定します。

DEFAULT TABLESPACE句

この句を使用すると、データベースのデフォルトの永続表領域を構築または変更できます。作成済の表領域を指定する必要があります。この操作の完了後、すべての非SYSTEMユーザーに、新しいデフォルトの一時表領域が再度割り当てられます。これらのユーザーがこれ以降作成するすべてのオブジェクトは、デフォルトで、新しいデフォルトの表領域に格納されます。以前に指定したデフォルトの表領域を置き換える場合、以前作成したオブジェクトを古いデフォルトの表領域から新しいデフォルトの表領域に移動した後で、必要に応じて古いデフォルトの表領域を削除することができます。

DEFAULT TEMPORARY TABLESPACE句

この句を使用すると、データベースのデフォルトの一時表領域を、新しい表領域または表領域グループに変更できます。

現行のデフォルトの一時表領域またはデフォルトの一時表領域グループの名前を確認するには、ALL_DBA-またはUSER_USERSデータ・ディクショナリ・ビューのTEMPORARY_TABLESPACE列を問い合せます。

デフォルトの一時表領域の制限事項:

デフォルトの一時表領域には、次の制限事項があります。

instance_clauses

Oracle Real Application Clusters環境において、ENABLE INSTANCEを指定すると、指定したデータベース・インスタンスにマップされたスレッドを使用可能にできます。使用可能にできるスレッドは、2つ以上のREDOログ・ファイル・グループを持つスレッドのみです。また、データベースはオープンされている必要があります。

DISABLE INSTANCEを指定すると、指定したデータベース・インスタンスにマップされたスレッドを使用禁止にできます。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップされているスレッドがない場合、エラーが戻されます。データベースは、オープンされている必要がありますが、指定したスレッドを使用しているインスタンスでデータベースをマウント済の場合は、そのスレッドを使用禁止にできません。

以前のリリースでは、スレッドを使用可能/使用禁止にすることができました。この句は現在使用されていません。同じ目的のためにENABLE | DISABLE INSTANCE句を使用でき、使用方法も簡単なためです。ENABLE | DISABLE THREAD句は、下位互換性を保つためにのみサポートされています。

参照:

インスタンスを使用可能または使用禁止にする場合の詳細は、『Oracle Database Oracle ClusterwareおよびOracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。 

RENAME GLOBAL_NAME句

RENAME GLOBAL_NAMEを指定すると、データベースのグローバル名を変更できます。databaseには、データベースの新しい名前を8バイト以内の長さで指定します。オプションのdomainには、ネットワーク階層におけるデータベースの有効な位置を指定します。データベースは、オープンされている必要があります。


注意:

データベース名を変更しても、リモート・データベース内の既存のデータベース・リンク、シノニム、ストアド・プロシージャ、ストアド・ファンクションからのユーザーのデータベースに対するグローバル参照は変更されません。これらの参照を変更するのは、リモート・データベース管理者の責任です。 


参照:

グローバル名の詳細は、『Oracle Database Heterogeneous Connectivity管理者ガイド』および「グローバル・データベース名の変更例:」を参照してください。 

BLOCK CHANGE TRACKING句

ブロック・チェンジ・トラッキング機能を使用すると、Oracleデータベースは、すべてのデータベース更新の物理的な場所を追跡できます。この情報は、ブロック・チェンジ・トラッキング・ファイルという別のファイルに保持されます。Oracle Managed Filesを使用している場合、Oracleデータベースは、DB_CREATE_FILE_DESTで指定した場所にブロック・チェンジ・トラッキング・ファイルを自動的に作成します。Oracle Managed Filesを使用していない場合、チェンジ・トラッキング・ファイルの名前を指定する必要があります。Oracleデータベースは、増分バックアップのパフォーマンス向上などの内部タスクのために、チェンジ・トラッキング・データを使用します。ブロック・チェンジ・トラッキングを使用可能にする場合、データベースは、ARCHIVELOGモードまたはNONARCHIVELOGモードで、オープンされているかマウント済である必要があります。

ENABLE BLOCK CHANGE TRACKING

この句を指定すると、ブロック・チェンジ・トラッキングが使用可能になり、Oracleデータベースによってブロック・チェンジ・トラッキング・ファイルが作成されます。

DISABLE BLOCK CHANGE TRACKING

この句を指定すると、Oracleデータベースによるチェンジ・トラッキングを停止し、既存のブロック・チェンジ・トラッキング・ファイルを削除できます。

参照:

ブロック・チェンジ・トラッキングの設定の詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』および「ブロック・チェンジ・トラッキングを使用可能および使用禁止にする例:」を参照してください。 

flashback_mode_clause

この句を使用すると、データベースをFLASHBACKモードにしたり、そのモードから戻すことができます。この句を指定できるのは、データベースがARCHIVELOGモードであり、データベースのフラッシュ・リカバリ領域をすでに準備している場合のみです。この句は、データベースがマウントされているがオープンされていない場合に指定できます。

参照:

フラッシュバック操作のためのフラッシュ・リカバリ領域の準備の詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』を参照してください。 

FLASHBACK ON

この句を使用すると、データベースはFLASHBACKモードになります。データベースがFLASHBACKモードのとき、Oracleデータベースは、フラッシュ・リカバリ領域に自動的にフラッシュバック・データベース・ログを作成し、これを管理します。その後、SYSDBAシステム権限を持つユーザーは、FLASHBACK DATABASE文を発行できます。

FLASHBACK OFF

この句を使用すると、データベースはFLASHBACKモードから戻されます。Oracleデータベースは、フラッシュバック・データのロギングを停止し、既存のすべてのフラッシュバック・データベース・ログを削除します。FLASHBACK DATABASEを発行すると、エラーが発生して実行できません。

set_time_zone_clause

この句のセマンティクスは、CREATE DATABASE文およびALTER DATABASE文で同じです。この句をALTER DATABASEと併用すると、データベースのタイムゾーンがリセットされます。データベースのタイムゾーンを確認するには、組込み関数DBTIMEZONEを問い合せます(「DBTIMEZONE」を参照)。この句を使用してタイムゾーンを設定または変更した後、新しいタイムゾーンを有効にするためにデータベースを再起動する必要があります。

すべての新しいTIMESTAMP WITH LOCAL TIME ZONEデータは、ディスクに格納されるときにデータベースのタイムゾーンに正規化されます。データベースの既存のデータは、自動的に新しいタイムゾーンに更新されません。したがって、データベースにTIMESTAMP WITH LOCAL TIME ZONEデータが存在する場合、データベースのタイムゾーンをリセットすることはできません。データベースのタイムゾーンをリセットするには、まずTIMESTAMP WITH LOCAL TIME ZONEデータを削除またはエクスポートする必要があります。そのため、データを格納しているデータベースのタイムゾーンを変更しないことをお薦めします。

この句の詳細は、「CREATE DATABASE」の「set_time_zone_clause」を参照してください。

security_clause

security_clauseGUARD)を使用すると、データベースのデータが変更されないように保護できます。現行のセッションでこの設定を上書きするには、ALTER SESSION DISABLE GUARD文を使用します。詳細は、「ALTER SESSION」を参照してください。

ALL

ALLを指定すると、SYS以外のすべてのユーザーが、データベースの内容を変更できなくなります。

STANDBY

STANDBYを指定すると、SYS以外のすべてのユーザーは、論理スタンバイで管理されるデータベース・オブジェクトを変更できなくなります。この設定は、論理スタンバイによってレプリケートされる前に、データをレポート操作によって変更できるようにする場合に便利です。

参照:

論理スタンバイの詳細は、『Oracle Data Guard概要および管理』を参照してください。 

NONE

NONEを指定すると、データベースのすべてのデータについて、通常のセキュリティを設定できます。


注意:

論理スタンバイ・データベースには、この設定をできるだけ使用しないでください。 


READ ONLY | READ WRITEの例:

次の文は、データベースを読取り専用モードでオープンします。

ALTER DATABASE OPEN READ ONLY;

次の文は、データベースを読み書き両用モードでオープンし、オンラインREDOログを消去します。

ALTER DATABASE OPEN READ WRITE RESETLOGS;
パラレル・リカバリ処理の使用例:

次の文は、パラレル・リカバリ処理を使用して表領域のリカバリを行います。

ALTER DATABASE
   RECOVER TABLESPACE tbs_03
   PARALLEL;
REDOログ・ファイル・グループの追加例:

次の文は、2つのメンバーを含むREDOログ・ファイル・グループを追加し、GROUPパラメータの値に3を指定してこのグループを識別します。

ALTER DATABASE
  ADD LOGFILE GROUP 3 
    ('diska:log3.log' ,  
     'diskb:log3.log') SIZE 50K; 

次の文は、2つのメンバーを含むREDOログ・ファイル・グループをスレッド5(Real Application Clusters環境内)に追加して、このグループにGROUPパラメータ値4を割り当てます。

ALTER DATABASE  
    ADD LOGFILE THREAD 5 GROUP 4  
        ('diska:log4.log', 
         'diskb:log4:log'); 
REDOログ・ファイル・グループ・メンバーの追加例:

次の文は、前述の例で追加したREDOログ・ファイル・グループに1つのメンバーを追加します。

ALTER DATABASE   
   ADD LOGFILE MEMBER 'diskc:log3.log'  
   TO GROUP 3; 
ログ・ファイル・メンバーの削除例:

次の文は、前述の例で追加したREDOログ・ファイル・メンバーの1つを削除します。

ALTER DATABASE
    DROP LOGFILE MEMBER 'diskb:log3.log'; 

次の文は、REDOログ・ファイル・グループ3のすべてのメンバーを削除します。

ALTER DATABASE DROP LOGFILE GROUP 3; 
ログ・ファイル・メンバーの名前の変更例:

次の文は、REDOログ・ファイル・メンバーの名前を変更します。

ALTER DATABASE   
    RENAME FILE 'diskc:log3.log' TO 'diskb:log3.log'; 

この例では、REDOログ・グループ・メンバーのファイルが、別のファイルに変更されただけです。ファイル名が、実際にdiskc:log3.logからdiskb:log3.logに変更されたわけではありません。この文を発行する前に、オペレーティング・システムでこのファイル名を変更する必要があります。

表領域のデフォルト・タイプの設定例:

次の文は、これ以降作成される表領域の種類がデフォルトでbigfile表領域になるように指定します。

ALTER DATABASE
    SET DEFAULT BIGFILE TABLESPACE;
デフォルトの一時表領域の変更例:

次の文は、tbs_5「一時表領域の作成例:」で作成)をデータベースのデフォルトの一時表領域にします。この文は、作成時に何も指定されていない場合にデフォルトの一時表領域を作成するか、既存のデフォルトの一時表領域をtbs_05に置き換えます。

ALTER DATABASE 
   DEFAULT TEMPORARY TABLESPACE tbs_05;

または、表領域グループを使用して、表領域グループをデフォルトの一時表領域に定義することもできます。次の文は、表領域グループtbs_group_01の表領域(「表領域グループへの一時表領域の追加例:」で作成)をデータベースのデフォルトの一時表領域にします。

ALTER DATABASE
   DEFAULT TEMPORARY TABLESPACE tbs_grp_01;
新しいデータ・ファイルの作成例:

次の文は、ファイルtbs_f03.dbfを基に、新しいデータ・ファイルtbs_f04.dbfを作成します。新しいデータ・ファイルを作成する前に、既存のデータ・ファイル(またはこのデータ・ファイルが存在する表領域)をオフラインにする必要があります。

ALTER DATABASE 
    CREATE DATAFILE 'tbs_f03.dbf' 
                 AS 'tbs_f04.dbf'; 
一時ファイルの操作例:

次の例では、「データ・ファイルおよび一時ファイルの追加例と削除例:」で作成された一時ファイルtemp02.dbfをオフラインにして、名前を変更します。

ALTER DATABASE TEMPFILE 'temp02.dbf' OFFLINE;

ALTER DATABASE RENAME FILE 'temp02.dbf' TO 'temp03.dbf';

一時ファイルの名前を変更する文では、まずファイルtemp03.dbfをオペレーティング・システム上に作成する必要があります。

グローバル・データベース名の変更例:

次の文は、データベースのグローバル名を変更し、データベース名とドメインの両方を指定します。

ALTER DATABASE  
    RENAME GLOBAL_NAME TO demo.world.oracle.com; 
ブロック・チェンジ・トラッキングを使用可能および使用禁止にする例:

次の文は、ブロック・チェンジ・トラッキングを使用可能にし、tracking_fileというブロック・チェンジ・トラッキング・ファイルを作成(すでに存在する場合は上書き)します。

ALTER DATABASE
  ENABLE BLOCK CHANGE TRACKING
    USING FILE 'tracking_file' REUSE;

次の文は、ブロック・チェンジ・トラッキングを使用禁止にし、既存のブロック・チェンジ・トラッキング・ファイルを削除します。

ALTER DATABASE
  DISABLE BLOCK CHANGE TRACKING;
データ・ファイルのサイズの変更例:

次の文は、データ・ファイルdiskb:tbs_f5.datのサイズを変更します。

ALTER DATABASE  
    DATAFILE 'diskb:tbs_f5.dat' RESIZE 10 M;
ログ・ファイルの消去例:

次の文は、ログ・ファイルを消去します。

ALTER DATABASE  
    CLEAR LOGFILE 'diskc:log3.log';
データベースのリカバリ例:

次の文は、データベース全体を完全にリカバリし、必要な新しいアーカイブREDOログ・ファイル名を生成します。

ALTER DATABASE 
  RECOVER AUTOMATIC DATABASE; 

次の文は、Oracleデータベースが適用するREDOログ・ファイル名を明示的に指定します。

ALTER DATABASE 
    RECOVER LOGFILE 'diskc:log3.log'; 

次の文は、元のスタンバイ・データベース内の対応するデータ・ファイル、関連するアーカイブ・ログおよび現行のスタンバイ・データベース制御ファイルを使用して、スタンバイ・データ・ファイル/finance/stbs_21.fをリカバリします。

ALTER DATABASE  
   RECOVER STANDBY DATAFILE '/finance/stbs_21.f' 
   UNTIL CONTROLFILE;

次の文は、時間ベースのデータベース・リカバリを実行します。

ALTER DATABASE 
    RECOVER AUTOMATIC UNTIL TIME '2001-10-27:14:00:00'; 

データベースは、2001年10月27日の午後2時の状態にリカバリされます。

表領域のリカバリ例は、「パラレル・リカバリ処理の使用例:」を参照してください。

管理スタンバイ・データベースのリカバリ例:

次の文は、管理スタンバイ・リカバリ・モードでスタンバイ・データベースをリカバリします。

ALTER DATABASE 
   RECOVER MANAGED STANDBY DATABASE;

次の文は、データベースを管理スタンバイ・リカバリ・モードにします。管理リカバリ処理は、次のアーカイブ・ログまで最長60分間待ち状態になります。

ALTER DATABASE 
   RECOVER MANAGED STANDBY DATABASE TIMEOUT 60;

後続のログがその前のログから60分以内に作成される場合、手動で終了しないかぎり、リカバリが継続されます。

次の文は、管理リカバリ操作を終了します。

ALTER DATABASE 
   RECOVER MANAGED STANDBY DATABASE CANCEL IMMEDIATE;

管理リカバリ操作は、現行のREDOログ・ファイルからREDOの次のグループが読み取られる前に終了します。メディア・リカバリは、現行のREDOログ・ファイルからREDOを適用している間に終了します。


ALTER DIMENSION

用途

ALTER DIMENSION文を使用すると、ディメンションの階層関係またはディメンション属性を変更できます。

参照:

「CREATE DIMENSION」および「DROP DIMENSION」を参照してください。 

前提条件

ディメンションが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY DIMENSIONシステム権限が必要です。

ディメンションは、常に所有者の権限で変更されます。

構文

alter_dimension::=

画像の説明

level_clause::=hierarchy_clause::=attribute_clause::=extended_attribute_clause::=を参照)

level_clause::=

画像の説明

hierarchy_clause::=

画像の説明

dimension_join_clause::=を参照)

dimension_join_clause::=

画像の説明

attribute_clause::=

画像の説明

extended_attribute_clause::=

画像の説明

セマンティクス

次のキーワード、パラメータおよび句の意味は、ALTER DIMENSIONに対してのみ有効です。その他のキーワード、パラメータおよび句には、CREATE DIMENSION文での機能と同じ機能があります。詳細は、「CREATE DIMENSION」を参照してください。

schema

変更するディメンションのスキーマを指定します。schemaを指定しない場合、ディメンションは自分のスキーマ内にあるとみなされます。

dimension

ディメンション名を指定します。ディメンションは、すでに存在している必要があります。

ADD

ADD句を使用すると、ディメンションにレベル、階層または属性を追加できます。これらの要素の1つを追加しても、既存のマテリアライズド・ビューは無効になりません。

ADD LEVEL句は、他のADD句より前に処理されます。

DROP

DROP句を使用すると、ディメンションからレベル、階層または属性を削除できます。指定するすべてのレベル、階層または属性は、すでに存在している必要があります。

1つの属性で、1つのレベルに関連付けられている1つ以上のレベルと列の関係を削除できます。

DROPの制限事項:

属性または階層がレベルを参照する場合は、すべての参照している属性および階層を削除するか、またはCASCADEを指定しないかぎり、このレベルを削除することはできません。

CASCADE

CASCADEを指定すると、レベルを参照する属性または階層をレベルとともに削除できます。

RESTRICT

RESTRICTを指定すると、属性または階層が参照するレベルを削除しないようにOracleデータベースに指示できます。これはデフォルトです。

COMPILE

COMPILEを指定すると、無効のディメンションを明示的に再コンパイルできます。ADD句またはDROP句が発行されると、ディメンションは自動的にコンパイルされます。ただし、ディメンションが参照するオブジェクトを変更する(たとえば、ディメンションで参照された表を削除した後再作成する)と、ディメンションが無効になるため、これを明示的に再コンパイルする必要があります。

ディメンションの変更例:

次の例は、サンプル・スキーマshcustomers_dimディメンションを変更します。

ALTER DIMENSION customers_dim
   DROP ATTRIBUTE country;

ALTER DIMENSION customers_dim
   ADD LEVEL zone IS customers.cust_postal_code
   ADD ATTRIBUTE zone DETERMINES (cust_city);

ALTER DISKGROUP


注意:

このSQL文は、自動ストレージ管理を使用しており、自動ストレージ管理インスタンスを起動している場合にのみ有効です。この文の発行は、通常のデータベース・インスタンスからではなく、自動ストレージ管理インスタンスから行う必要があります。自動ストレージ管理インスタンスの起動の詳細は、『Oracle Database管理者ガイド』を参照してください。 


用途

ALTER DISKGROUP文を使用すると、ディスク・グループまたはディスク・グループ内のディスクに対して多数の操作を実行できます。

参照:

  • ディスク・グループの作成については、「CREATE DISKGROUP」を参照してください。

  • 自動ストレージ管理およびディスク・グループを使用してデータベース管理を簡略化する方法については、『Oracle Database管理者ガイド』を参照してください。

 

前提条件

この文を発行するには、SYSDBAシステム権限が必要です。また、この文を発行する自動ストレージ管理インスタンスが起動されている必要があります。変更するディスク・グループはマウントされている必要があります。

SYSOPERロールで実行可能なALTER DISKGROUP操作は、diskgroup_availability_clausebalance_diskgroup_clauseおよびcheck_diskgroup_clauseです。

構文

alter_diskgroup::=

画像の説明

add_disk_clause::=drop_disk_clauses::=resize_disk_clauses::=undrop_disk_clause::=rebalance_diskgroup_clause::=check_diskgroup_clauses::=diskgroup_template_clauses::=diskgroup_directory_clauses::=diskgroup_alias_clauses::=drop_diskgroup_file_clause::=diskgroup_availability::=を参照)

add_disk_clause::=

画像の説明

qualified_disk_clause::=を参照)

qualified_disk_clause::=

画像の説明

size_clause::=を参照)

drop_disk_clauses::=

画像の説明

resize_disk_clauses::=

画像の説明

size_clause::=を参照)

undrop_disk_clause::=

画像の説明

rebalance_diskgroup_clause::=

画像の説明

check_diskgroup_clauses::=

画像の説明

diskgroup_template_clauses::=

画像の説明

qualified_template_clause::=を参照)

qualified_template_clause::=

画像の説明

diskgroup_directory_clauses::=

画像の説明

diskgroup_alias_clauses::=

画像の説明

drop_diskgroup_file_clause::=

画像の説明

diskgroup_availability::=

画像の説明

セマンティクス

disk_clauses

この句を使用すると、ディスク・グループ内の1つ以上のディスクを操作できます。

diskgroup_name

変更するディスク・グループの名前を指定します。既存のディスク・グループの名前を確認するには、V$ASM_DISKGROUP動的パフォーマンス・ビューを問い合せます。

add_disk_clause

この句を使用すると、ディスク・グループに1つ以上のディスクを追加し、新しく追加したディスクの属性を指定できます。この操作を実行すると、自動ストレージ管理によって、自動的にディスク・グループの均衡が再調整されます。

この句を使用して、ディスクの障害グループを変更することはできません。これを行うには、ディスク・グループからディスクを削除した後で、新しい障害グループの一部として、ディスク・グループにディスクを再度追加します。

ディスク・グループの既存のディスク名を確認するには、V$ASM_DISK動的パフォーマンス・ビューを問い合せます。

FAILGROUP句

この句を使用すると、新しく追加したディスクを障害グループに割り当てることができます。この句を省略して、標準または高冗長性ディスク・グループにディスクを追加すると、Oracleデータベースは、新しく追加されたディスクを自動的に障害グループに追加します。障害グループの暗黙的な名前は、オペレーティング・システムに依存しないディスク名と同じです(「NAME句」を参照)。

外部冗長性ディスク・グループを作成している場合、この句は指定できません。

qualified_disk_clause

この句のセマンティクスは、CREATE DISKGROUP文およびALTER DISKGROUP文で同じです。この句の詳細は、「CREATE DISKGROUP」の「qualified_disk_clause」を参照してください。

drop_disk_clauses

この句を使用すると、ディスク・グループから1つ以上のディスクを削除できます。

DROP DISK

DROP DISK句を使用すると、ディスク・グループから1つ以上のディスクを削除し、自動的にディスク・グループの均衡を再調整できます。ディスクを削除すると、自動ストレージ管理によって、ディスクのすべてのデータが再配置され、ディスクをディスク・グループから除外するためにディスク・ヘッダーが消去されます。

DROP DISKS IN FAILGROUP

DROP DISKS IN FAILGROUP句を使用すると、指定した障害グループからすべてのディスクを削除できます。他の動作は、DROP DISK句と同じです。

FORCE | NOFORCE

これらのキーワードを使用すると、ディスクがディスク・グループから除外されたとみなされるタイミングを指定できます。デフォルト設定であるNOFORCEを使用することをお薦めします。

FORCENOFORCEを指定したかどうかにかかわらず、ディスクを削除する際の均衡の再調整操作には時間がかかります。進捗を監視するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。均衡の再調整操作の詳細は、「rebalance_diskgroup_clause」を参照してください。

resize_disk_clauses

この句を使用すると、ディスク・グループ内の1つ以上のディスクの新しいサイズを指定できます。この句は、オペレーティング・システムによって戻されるサイズや、以前にディスクに指定したサイズを上書きします。

RESIZE ALL

この句を指定すると、ディスク・グループ内のすべてのディスクのサイズ変更操作を実行できます。

RESIZE DISK

この句を指定すると、指定したディスクのみのサイズを変更できます。

RESIZE DISKS IN FAILGROUP

この句を指定すると、指定した障害グループ内のすべてのディスクのサイズを変更できます。

SIZE

ディスクのサイズをKB、MB、GBまたはTB単位で指定します。ディスク容量を超えるサイズは指定できません。ディスク容量よりも小さいサイズを指定した場合、自動ストレージ管理で使用されるディスク容量が制限されます。この句を省略した場合、自動ストレージ管理ではオペーティング・システムによって戻されたサイズが使用されます。

undrop_disk_clause

この句を使用すると、ディスク・グループからのディスクの削除を取り消すことができます。1つ以上のディスク・グループ内のすべてのディスク(diskgroup_nameを指定)、またはすべてのディスク・グループ内のすべてのディスク(ALLを指定)の保留中の削除を取り消すことができます。

ディスク・グループから完全に削除されたディスクや、完全に削除されたディスク・グループに対しては、この句は無効です。この句を指定すると、実行時間が長い操作が行われます。操作の状態を確認するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。

参照:

実行時間が長い自動ストレージ管理操作の詳細は、V$ASM_OPERATIONを参照してください。 

diskgroup_clauses

この句を使用すると、ディスク・グループ全体に対して操作を実行できます。

rebalance_diskgroup_clause

この句を使用すると、ディスク・グループの均衡を手動で再調整できます。自動ストレージ管理では、すべてのドライブ間で均等にデータ・ファイルが再分散されます。記憶域構成が変化すると、自動ストレージ管理によって、ファイルが均等に配置され、ディスク・グループの均衡が自動的に再調整されるため、この句が必要なことはほとんどありません。ただし、POWER句を使用して均衡の自動再調整操作の速度を制御する場合、この句は便利です。

POWER

POWER句には、0〜11の値を指定します。0を指定すると均衡の再調整操作は停止し、11を指定すると自動ストレージ管理による均衡の再調整は最高速度で実行されます。POWER句に指定する値のデフォルトは、ASM_POWER_LIMIT初期化パラメータの値です。

POWER句を省略すると、自動ストレージ管理による均衡の自動および指定の再調整操作は、ASM_POWER_LIMIT初期化パラメータの値に基づいて実行されます。

WAIT | NOWAIT

この句を使用すると、制御を、均衡の再調整操作のどの段階でユーザーに戻すか指定できます。

均衡の再調整操作の進捗を監視するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。

参照:

ディスク・グループの均衡の再調整の詳細は、ASM_POWER_LIMITおよび『Oracle Database管理者ガイド』を参照してください。また、「ディスク・グループの均衡の再調整例:」も参照してください。 

check_diskgroup_clauses

check_diskgroup_clausesを使用すると、自動ストレージ管理ディスク・グループのメタデータの内部一貫性を検証できます。ディスク・グループは、マウントされている必要があります。自動ストレージ管理によってサマリー・エラーが表示され、検出されたエラーの詳細がアラート・ログに書き込まれます。

ALL

この句を使用すると、ディスク・グループ内のすべてのディスクとファイルをチェックできます。

DISK

この句を使用すると、ディスク・グループ内の1つ以上の指定したディスクをチェックできます。

DISKS IN FAILGROUP

この句を使用すると、指定した障害グループ内のすべてのディスクをチェックできます。

FILE

この句を使用すると、ディスク・グループ内の1つ以上の指定したファイルをチェックできます。ファイル名の参照書式のいずれかを使用する必要があります。自動ストレージ管理のファイル名の参照書式の詳細は、「ASM_filename」を参照してください。

REPAIR | NOREPAIR

この句を使用すると、一貫性チェックで検出されたエラーを修正するかどうかを自動ストレージ管理に指示できます。デフォルトはREPAIRです。NOREPAIR設定は、非一貫性が検出された場合には警告を受け取るが、自動ストレージ管理による修正処理を自動的に行わない場合に便利です。

diskgroup_template_clauses

テンプレートは、属性の名前付きコレクションです。ディスク・グループを作成すると、自動ストレージ管理によって、システムの一連の初期デフォルト・テンプレートがそのディスク・グループに関連付けられます。テンプレートで定義される属性は、そのディスク・グループ内のすべてのファイルに適用されます。次の表に、システムのデフォルト・テンプレートと、様々な種類のファイルに適用される属性を示します。表の後に説明するdiskgroup_template_clausesを使用すると、テンプレートの属性を変更して、新しいテンプレートを作成できます。

ディスク・グループ・ファイルを作成した後は、この句を使用して属性を変更することはできません。これを行うには、Recovery Manager(RMAN)を使用して、新しい属性を持つ新しいファイルにそのファイルをコピーする必要があります。

表10-2    自動ストレージ管理システムのファイル・グループのデフォルト・テンプレート 
テンプレート名  ファイルの種類  外部冗長性  標準冗長性  高冗長性  ストライプ化 

CONTROL 

制御ファイル 

保護なし 

双方向ミラー 

3方向ミラー 

密 

DATAFILE 

データ・ファイルとコピー 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

ONLINELOG 

オンライン・ログ 

保護なし 

双方向ミラー 

3方向ミラー 

密 

ARCHIVELOG 

アーカイブ・ログ 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

TEMPFILE 

一時ファイル 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

BACKUPSET 

データ・ファイルのバックアップ・ピース、データ・ファイルの増分バックアップ・ピース、およびアーカイブ・ログのバックアップ・ピース 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

PARAMETERFILE 

SPFILE 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

DATAGUARDCONFIG 

障害回復構成(スタンバイ・データベースで使用) 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

FLASHBACK 

フラッシュバック・ログ 

保護なし 

双方向ミラー 

3方向ミラー 

密 

CHANGETRACKING 

ブロック・チェンジ・トラッキング・データ(増分バックアップで使用) 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

DUMPSET 

Data Pumpダンプ・セット 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

XTRANSPORT 

クロス・プラットフォーム変換データ・ファイル 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

AUTOBACKUP 

自動バックアップ・ファイル 

保護なし 

双方向ミラー 

3方向ミラー 

粗 

ADD TEMPLATE

この句を使用すると、ディスク・グループに1つ以上の名前付きテンプレートを追加できます。既存のテンプレート名を確認するには、V$ASM_TEMPLATE動的パフォーマンス・ビューを問い合せます。

ALTER TEMPLATE

この句を使用すると、システムのデフォルト・ディスク・グループ・テンプレートまたはユーザー定義のディスク・グループ・テンプレートの属性を変更できます。指定した属性のみが変更されます。指定していないプロパティは、現在の値のまま変更されません。

template_name

追加または変更するテンプレートの名前を指定します。テンプレート名には、データベース・スキーマ・オブジェクトと同じネーミング規則および制限が適用されます。データベース・オブジェクト名の詳細は、「スキーマ・オブジェクトのネーミング規則」を参照してください。

冗長性レベル

新しく追加または変更するテンプレートの冗長性レベルを指定します。

ディスクのストライプ化

このテンプレートが適用されるファイルのストライプ化の方法を指定します。

DROP TEMPLATE

この句を使用すると、ディスク・グループから1つ以上のテンプレートを削除できます。この句で削除できるのはユーザー定義テンプレートのみであり、システム・デフォルト・テンプレートは削除できません。

diskgroup_directory_clauses

自動ストレージ管理ファイル名の別名(「diskgroup_alias_clauses」を参照)を作成する前に、別名が存在する場所の完全なディレクトリ構造を指定する必要があります。diskgroup_directory_clausesを使用すると、そのようなディレクトリ構造を作成および操作できます。

ADD DIRECTORY

この句を使用すると、階層的に名付けられた別名の新しいディレクトリ・パスを作成できます。ディレクトリの各コンポーネントを区切るには、スラッシュ(/)を使用します。各ディレクトリ・コンポーネントの最大長は48バイトであり、スラッシュ文字を含むことはできません。コンポーネントの最初または最後の文字に空白を使用することはできません。ディレクトリ・パス全体の長さは、256バイトから、このディレクトリに作成する別名(「diskgroup_alias_clauses」を参照)の長さを引いた長さを超えることはできません。

DROP DIRECTORY

この句を使用すると、階層的に名付けられた別名のディレクトリを削除できます。FORCEが指定されていないかぎり、自動ストレージ管理では、別名の定義を含むディレクトリは削除されません。この句は、システム別名の一部として作成されたディレクトリの削除には無効です。そのようなディレクトリは、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列にYという値が示されています。

RENAME DIRECTORY

この句を使用すると、階層的に名付けられた別名のディレクトリ名を変更できます。この句は、システム別名の一部として作成されたディレクトリ名の変更には無効です。そのようなディレクトリは、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列にYという値が示されています。

diskgroup_alias_clauses

自動ストレージ管理ファイルが暗黙的またはユーザー指定によって作成されると、そのファイルには、ドット付きの数値の組で終わる完全修飾名が割り当てられます(「file_specification」を参照)。diskgroup_alias_clausesを使用すると、自動ストレージ管理ファイル名に、よりわかりやすい別名を作成できます。ドット付きの数値の組で終わる別名は指定できません。このような書式を使用すると、自動ストレージ管理ファイル名と区別できないためです。

この句を指定する前に、まずネーミング規則に従ってディレクトリ構造を作成する必要があります(「diskgroup_directory_clauses」を参照)。別名全体の長さは最大256バイトです(ディレクトリの接頭辞を含む)。別名では大/小文字は区別されませんが、大/小文字の区別は保持されます。

ADD ALIAS

この句を使用すると、自動ストレージ管理ファイル名の別名を作成できます。alias_nameには、ディレクトリのフルパスと別名を指定します。自動ストレージ管理の既存の別名を確認するには、V$ASM_ALIAS動的パフォーマンス・ビューを問い合せます。自動ストレージ管理ファイル名の詳細は、「ASM_filename」を参照してください。

DROP ALIAS

この句を使用すると、ディスク・グループ・ディレクトリから別名を削除できます。各別名には、ディレクトリのフルパスと別名を指定します。別名が参照する元のファイルは変更されません。

RENAME ALIAS

この句を使用すると、既存の別名を変更できます。alias_nameには、ディレクトリのフルパスと別名を指定します。

別名の削除および名前の変更の制限事項:

システム生成された別名を削除したり、名前を変更することはできません。別名がシステム生成されたものかどうかを確認するには、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列を問い合せます。

drop_diskgroup_file_clause

この句を使用すると、ディスク・グループからファイルを削除できます。自動ストレージ管理によって、削除するファイルに関連付けられたすべての別名も削除されます。ファイル名の参照書式のいずれかを使用する必要があります。ほとんどの自動ストレージ管理ファイルはOracle Managed Filesであり、不要になると自動的に削除されるため、手動で削除する必要はありません。自動ストレージ管理のファイル名の参照書式の詳細は、「ASM_filename」を参照してください。

diskgroup_availability

この句を使用すると、自動ストレージ管理インスタンスと同じノードで実行されているデータベース・インスタンスに対して、1つ以上のディスク・グループを使用可能または使用禁止にできます。この句は、クラスタ内の他のノードのディスク・グループの状態には影響しません。

MOUNT

MOUNTを指定すると、ローカル自動ストレージ管理インスタンスのディスク・グループをマウントできます。ALL MOUNTを指定すると、ASM_DISKGROUPS初期化パラメータで指定されたすべてのディスク・グループがマウントされます。ファイル操作は、ディスク・グループがマウントされている場合のみ可能です。

参照:

初期化パラメータ・ファイルへのディスク・グループ名の追加の詳細は、ASM_DISKGROUPSを参照してください。 

DISMOUNT

DISMOUNTを指定すると、指定したディスク・グループをディスマウントできます。FORCEが指定されていないかぎり、ディスク・グループのいずれかのファイルがオープンされていると、エラーが戻されます。ALL DISMOUNTを指定すると、現在マウントされているすべてのディスク・グループがディスマウントされます。ファイル操作は、ディスク・グループがマウントされている場合のみ可能です。

FORCE

FORCEを指定すると、ディスク・グループのいずれかのファイルがオープンされていてもディスクをディスマウントするように、自動ストレージ管理に指示できます。

次の例では、dgroup_01というディスク・グループが必要です。ここでは、ASM_DISKSTRING$ORACLE_HOME/disks/*に設定されていることを想定しています。また、Oracleユーザーが$ORACLE_HOME/disks/d100への読取り/書込み権限を持っていると想定しています。dgroup_01の作成方法については、「ディスク・グループの作成例:」を参照してください。

ディスク・グループへのディスクの追加例:

次の文は、ディスクd100をディスク・グループdgroup_01に追加します。

ALTER DISKGROUP dgroup_01
  ADD DISK '$ORACLE_HOME/disks/d100';
ディスク・グループからのディスクの削除例:

次の文は、ディスクdgroup_01_0000をディスク・グループdgroup_01から削除します。

ALTER DISKGROUP dgroup_01
  DROP DISK dgroup_01_0000;
ディスク・グループからのディスクの削除の取消し例:

次の文は、ディスク・グループdgroup_01からのディスクの削除を取り消します。

ALTER DISKGROUP dgroup_01
  UNDROP DISKS;
ディスク・グループのサイズの変更例:

次の文は、ディスク・グループdgroup_01のすべてのディスクのサイズを変更します。

ALTER DISKGROUP dgroup_01
  RESIZE ALL
  SIZE 36G;
ディスク・グループの均衡の再調整例:

次の文は、ディスク・グループdgroup_01の均衡を手動で再調整し、自動ストレージ管理による均衡の再調整を最高速度で実行します。

ALTER DISKGROUP dgroup_01
  REBALANCE POWER 11 WAIT;

WAITキーワードを指定すると、データベースデは、ディスク・グループの均衡が再調整されるのを待機してからユーザーに制御を戻します。

ディスク・グループのメタデータの内部一貫性の検証例:

次の文は、自動ストレージ管理ディスク・グループのメタデータの内部一貫性を検証し、検出されたエラーの修正を自動ストレージ管理に指示します。

ALTER DISKGROUP dgroup_01
  CHECK ALL
  REPAIR;
ディスク・グループへの名前付きテンプレートの追加例:

次の文は、名前付きテンプレートtemplate_01をディスク・グループdgroup_01に追加します。

ALTER DISKGROUP dgroup_01
  ADD TEMPLATE template_01
    ATTRIBUTES (UNPROTECTED COARSE);
ディスク・グループ・テンプレートの属性の変更例:

次の文は、システムのデフォルト・ディスク・グループ・テンプレートまたはユーザー定義のディスク・グループ・テンプレートtemplate_01の属性を変更します。

ALTER DISKGROUP dgroup_01
  ALTER TEMPLATE template_01
    ATTRIBUTES (FINE);
ディスク・グループからのユーザー定義テンプレートの削除例:

次の文は、ユーザー定義テンプレートtemplate_01をディスク・グループdgroup_01から削除します。

ALTER DISKGROUP dgroup_01
  DROP TEMPLATE template_01;
階層的に名付けられた別名のディレクトリ・パスの作成例:

次の文は、別名が存在する場所のディレクトリ構造を指定します。

ALTER DISKGROUP dgroup_01
  ADD DIRECTORY '+dgroup_01/alias_dir';
自動ストレージ管理ファイル名の別名の作成例:

次の文は、自動ストレージ管理の数値のファイル名を指定してユーザー別名を作成します。

ALTER DISKGROUP dgroup_01
  ADD ALIAS '+dgroup_01/alias_dir/datafile.dbf'
    FOR '+dgroup_01.261.1';
ディスク・グループのディスマウント例:

次の文は、ディスク・グループdgroup_01をディスマウントします。この文は、アクティブなファイルが1つ以上ある場合でも、ディスクグループをディスマウントします。

ALTER DISKGROUP dgroup_01
  DISMOUNT FORCE;
ディスク・グループのマウント例:

次の文は、ディスク・グループdgroup_01をマウントします。

ALTER DISKGROUP dgroup_01
  MOUNT;

ALTER FUNCTION

用途

ALTER FUNCTION文を使用すると、無効なスタンドアロンのストアド・ファンクションを再コンパイルできます。明示的に再コンパイルすることによって、実行時に暗黙的に再コンパイルする必要がなくなり、また、実行時のコンパイル・エラーとパフォーマンス上のオーバーヘッドもなくなります。

ALTER FUNCTION文は、「ALTER PROCEDURE」と似ています。ファンクションおよびプロシージャの再コンパイルの詳細は、『Oracle Database概要』を参照してください。

この文を使用して既存のファンクションの宣言や定義を変更することはできません。ファンクションを再宣言または再定義する場合は、OR REPLACE句を指定してCREATE FUNCTION文を使用します。「CREATE FUNCTION」を参照してください。

前提条件

ファンクションが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。

構文

alter_function::=

画像の説明

compiler_parameters_clause::=

画像の説明

セマンティクス

schema

ファンクションが含まれているスキーマを指定します。schemaを指定しない場合、ファンクションは自分のスキーマ内にあるとみなされます。

function

再コンパイルするファンクション名を指定します。

COMPILE

COMPILEを指定すると、ファンクションを再コンパイルできます。COMPILEキーワードは必須です。ファンクションが正常にコンパイルされない場合、SQL*PlusコマンドSHOW ERRORSを使用すると、関連するコンパイラ・エラー・メッセージが表示されます。

再コンパイル中、Oracleデータベースはすべての永続コンパイラのスイッチ設定を削除し、セッションからそれらを再び取得してコンパイルの終了時に格納します。この手順を回避するには、REUSE SETTINGS句を指定します。

DEBUG

DEBUGを指定すると、PL/SQLコンパイラに対して、PL/SQLデバッガ用のコードを生成および格納するように指示できます。この句を指定すると、compiler_parameters_clausePLSQL_DEBUG = TRUEを指定するのと同じ効果が得られます。

compiler_parameters_clause

この句を使用すると、永続的なPL/SQLコンパイラ・パラメータのいずれかの値を指定できます。コンパイル時のこれらの初期化パラメータの値は、ユニットのメタデータとともに格納されます。このようなパラメータの値は、適切な*_PLSQL_OBJECT_SETTINGSビューを問い合せて確認できます。永続的なPL/SQLパラメータには、PLSQL_OPTIMIZE_LEVELPLSQL_CODE_TYPEPLSQL_DEBUGPLSQL_WARNINGSPLSQL_CCFLAGSおよびNLS_LENGTH_SEMANTICSがあります。

それぞれの文で、各パラメータを1度のみ指定できます。各設定は、コンパイル中の現行のライブラリ・ユニットに対してのみ有効であり、このセッションまたはシステムの他のコンパイルには影響しません。セッションまたはシステム全体に対してパラメータの値を設定するには、ALTER SESSION文またはALTER SYSTEM文を使用する必要があります。

この句にいずれかのパラメータを指定せずにREUSE SETTINGSを指定した場合、このライブラリ・ユニットの以前のコンパイルでそのパラメータに値が指定されていると、Oracleデータベースはその以前の値を使用します。パラメータを指定しなかった場合、REUSE SETTINGSを指定しないか、またはこのライブラリ・ユニットの以前のコンパイルでそのパラメータに値が指定されていないと、データベースはセッション環境からそのパラメータの値を取得します。

compiler_parameters_clauseの制限事項:

DEBUGを指定している場合、PLSQL_DEBUGパラメータの値を設定できません。この2つの句は両方ともPLSQL_DEBUGパラメータを設定するためです。各パラメータに値を指定できるのは1度のみです。

参照:

これらのパラメータの有効な値とセマンティクスの詳細は、『Oracle Databaseリファレンス』を参照してください。PL/SQLの条件付きコンパイルでPLSQL_CCFLAGSパラメータを使用する方法の詳細は、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』を参照してください。 

REUSE SETTINGS

REUSE SETTINGSを指定すると、Oracleによるコンパイラ・スイッチ設定の削除および再取得を回避できます。この句では既存の設定が保持され、文の他の場所で値が指定されていないパラメータの再コンパイルにその設定が使用されます。

下位互換性を保つために、Oracleデータベースは、この文によって設定されるPLSQL_CODE_TYPEパラメータおよびPLSQL_DEBUGパラメータの値を反映して、PLSQL_COMPILER_FLAGS初期化パラメータに永続的に格納される値を設定します。

参照:

これらの各パラメータの有効な値とセマンティクスの詳細は、『Oracle Databaseリファレンス』を参照してください。PLSQL_COMPILER_FLAGS初期化パラメータとCOMPILE句の相互作用の詳細は、『Oracle Database PL/SQLユーザーズ・ガイドおよびリファレンス』および『Oracle Databaseアプリケーション開発者ガイド-基礎編』を参照してください。 

ファンクションの再コンパイル例:

次の文は、サンプル・ユーザーoeが所有するファンクションget_balを明示的に再コンパイルします。

ALTER FUNCTION oe.get_bal
   COMPILE; 

get_balの再コンパイル時にコンパイル・エラーが発生しなければ、get_balは有効になります。その後、Oracleデータベースは、実行時にそれを再コンパイルしなくても実行できます。get_balの再コンパイル時にコンパイル・エラーが発生した場合はエラーが戻され、get_balは無効のままです。

また、get_balに依存しているすべてのオブジェクトが無効になります。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、Oracleデータベースは、実行時にそれらを暗黙的に再コンパイルします。


ALTER INDEX

用途

ALTER INDEX文を使用すると、既存の索引を変更または再作成できます。

参照:

索引の作成については、「CREATE INDEX」を参照してください。 

前提条件

索引が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY INDEXシステム権限が必要です。

MONITORING USAGE句を実行する場合は、索引は自分のスキーマ内に存在する必要があります。

ドメイン索引を変更する場合は、索引の索引タイプに対してEXECUTEオブジェクト権限が必要です。

スキーマ・オブジェクト権限は、個々の索引パーティションまたはサブパーティションではなく、親索引に付与されている必要があります。

索引パーティションの変更、再作成または分割、索引サブパーティションの変更または再作成を行う場合は、表領域割当て制限が必要です。

参照:

ドメイン索引については、「CREATE INDEX」および『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 

構文

alter_index::=

画像の説明

deallocate_unused_clause::=allocate_extent_clause::=shrink_clause::=parallel_clause::=physical_attributes_clause::=logging_clause::=rebuild_clause::=alter_index_partitioning::=を参照)

deallocate_unused_clause::=

画像の説明

size_clause::=を参照)

allocate_extent_clause::=

画像の説明

size_clause::=を参照)

shrink_clause::=

画像の説明

parallel_clause::=

画像の説明

physical_attributes_clause::=

画像の説明

storage_clause::=を参照)

logging_clause::=

画像の説明

rebuild_clause::=

画像の説明

parallel_clause::=physical_attributes_clause::=key_compression::=logging_clause::=を参照)

key_compression::=

画像の説明

alter_index_partitioning::=

画像の説明

modify_index_default_attrs::=add_hash_index_partition::=modify_index_partition::=rename_index_partition::=drop_index_partition::=split_index_partition::=coalesce_index_partition::=modify_index_subpartition::=を参照)

modify_index_default_attrs::=

画像の説明

physical_attributes_clause::=logging_clause::=を参照)

add_hash_index_partition::=

画像の説明

parallel_clause::=を参照)

coalesce_index_partition::=

画像の説明

parallel_clause::=を参照)

modify_index_partition::=

画像の説明

deallocate_unused_clause::=allocate_extent_clause::=physical_attributes_clause::=logging_clause::=key_compression::=を参照)

rename_index_partition::=

画像の説明

drop_index_partition::=

画像の説明

split_index_partition::=

画像の説明

parallel_clause::=を参照)

index_partition_description::=

画像の説明

segment_attributes_clause::=key_compression::=を参照)

segment_attributes_clause::=

画像の説明

physical_attributes_clause::=logging_clause::=を参照)

modify_index_subpartition::=

画像の説明

allocate_extent_clause::=deallocate_unused_clause::=を参照)

セマンティクス

schema

索引が含まれているスキーマを指定します。schemaを指定しない場合、索引は自分のスキーマ内にあるとみなされます。

index

変更する索引の名前を指定します。

索引変更の制限事項:

索引の変更には、次の制限事項があります。

deallocate_unused_clause

deallocate_unused_clause句を使用すると、索引の終わりの未使用領域の割当てを明示的に解除し、解放された領域が表領域内の他のセグメントで使用可能になります。

indexがレンジ・パーティションまたはハッシュ・パーティションである場合、各索引パーティションの未使用領域の割当てが解除されます。indexがコンポジット・パーティション表のローカル索引である場合、各索引サブパーティションの未使用領域の割当てが解除されます。

領域の割当て解除の制限事項:

領域の割当て解除には、次の制限事項があります。

この句の詳細は、「deallocate_unused_clause」を参照してください。

KEEP integer

KEEP句を使用すると、割当てを解除した後に索引に残す、最高水位標を超えるバイト数を指定できます。残りのエクステント数がMINEXTENTSより少ない場合、MINEXTENTSは現行のエクステント数に設定されます。初期エクステントがINITIALより小さくなると、INITIALは初期エクステントの現行の値に設定されます。KEEPを指定しないと、すべての未使用領域が解放されます。

この句の詳細は、「ALTER TABLE」を参照してください。

allocate_extent_clause

allocate_extent_clauseを使用すると、索引の新しいエクステントを明示的に割り当てることができます。ハッシュ・パーティション表のローカル索引に対して、新規エクステントが索引の各パーティションに割り当てられます。

エクステントの割当ての制限事項:

この句は、一時表の索引、レンジ・パーティションまたはコンポジット・パーティション索引に対して指定できません。

この句の詳細は、「allocate_extent_clause」を参照してください。

shrink_clause

この句を使用すると、索引セグメントを縮小化できます。ALTER INDEX ... SHRINK SPACE COMPACTを指定することは、ALTER INDEX ...COALESCEを指定することと同じです。

この句の詳細は、「CREATE TABLE」の「shrink_clause」を参照してください。

索引セグメントの縮小の制限事項:

この句は、ビットマップ結合索引またはファンクション索引に対して指定できません。

parallel_clause

PARALLEL句を使用すると、索引の問合せおよびDMLに対するデフォルトの並列度を変更できます。

並列化する索引の制限事項:

この句は、一時表の索引に対して指定できません。

この句の詳細は、「CREATE TABLE」の「parallel_clause」を参照してください。

参照:

「パラレル問合せを使用可能にする例:」 

physical_attributes_clause

physical_attributes_clauseを使用すると、非パーティション索引、パーティション索引のすべてのパーティションおよびサブパーティション、指定されたパーティション、または指定されたパーティションのすべてのサブパーティションに対するパラメータの値を変更できます。

参照:

 

索引の物理属性の制限事項:

索引の物理属性には、次の制限事項があります。

storage_clause

storage_clauseを使用すると、非パーティション索引、索引パーティション、またはパーティション索引のすべてのパーティションの記憶域パラメータ、あるいはパーティション索引の記憶域パラメータのデフォルト値を変更できます。この句の詳細は、「storage_clause」を参照してください。

logging_clause

logging_clauseを使用すると、索引のロギング属性を変更できます。REBUILD句も指定すると、この新しい設定は再構築操作に影響します。REBUILD句でロギングに異なる値を指定した場合、索引および再構築操作のロギング属性として指定された最後のロギング値が使用されます。

索引セグメントには、実表の属性と異なるロギング属性、および同じ実表の他の索引セグメントと異なるロギング属性を指定できます。

索引のログの制限事項:

この句は、一時表の索引に対して指定できません。

参照:

  • この句の詳細は、「logging_clause」を参照してください。

  • LOGGINGおよびパラレルDMLの詳細は、『Oracle Database概要』および『Oracle Databaseデータ・ウェアハウス・ガイド』を参照してください。

 

RECOVERABLE | UNRECOVERABLE

これらのキーワードは以前のリリースのもので、それぞれLOGGINGおよびNOLOGGINGに置き換えられています。RECOVERABLEおよびUNRECOVERABLEは、下位互換性のためにサポートされていますが、LOGGINGおよびNOLOGGINGキーワードを使用することをお薦めします。

RECOVERABLEは、パーティション表またはLOBの記憶特性の作成時には無効なキーワードです。UNRECOVERABLEは、パーティション表または索引構成表の作成時には無効なキーワードです。また、CREATE INDEXAS副問合せ句を使用してのみ指定できます。

rebuild_clause

rebuild_clauseを使用すると、既存の索引、あるいはパーティションまたはサブパーティションのいずれかを再構築できます。索引にUNUSABLEのマークが付いている場合、正常に再構築するとUSABLEになります。ファンクション索引も使用可能にします。索引の基になるファンクションが存在しない場合、再構築文は正常に実行されません。


注意:

索引構成表の2次索引を再構築する場合、Oracleデータベースは、索引が作成されたときの論理ROWIDに含まれる主キー列を保持します。したがって、COMPATIBLE初期化パラメータが10.0.0未満に設定された状態で索引が作成された場合、再構築された索引には、索引キーと、索引キーには含まれない表の主キー列が含まれます。COMPATIBLE初期化パラメータが10.0.0以上に設定された状態で索引が作成された場合、再構築された索引には、索引キーと、索引キーに含まれる主キー列を含む、表のすべての主キー列が含まれます。 


索引の再構築の制限事項:

索引の再構築には、次の制限事項があります。

PARTITION句

PARTITION句を使用すると、索引の1つのパーティションを再構築できます。この句は、索引パーティションを別の表領域に移動したり、作成時の物理属性を変更するために使用できます。

ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。

パーティションの再構築の制限事項:

この句は、コンポジット・パーティション表のローカル索引に対して指定できません。かわりに、REBUILD SUBPARTITION句を使用してください。

参照:

パーティションのメンテナンス操作については、『Oracle Database管理者ガイド』および「使用禁止の索引パーティションの再構築例:」を参照してください。 

SUBPARTITION句

SUBPARTITION句を使用すると、索引の1つのサブパーティションを再構築できます。この句を使用して、索引サブパーティションを他の表領域に移動することもできます。TABLESPACEを指定しないと、サブパーティションは同じ表領域に再構築されます。

ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。

索引のサブパーティション変更の制限事項:

索引のサブパーティションの変更には、次の制限事項があります。

REVERSE | NOREVERSE

索引ブロックのバイトを逆順に格納するかどうかを示します。

逆索引の制限事項:

逆索引には、次の制限事項があります。

parallel_clause

parallel_clauseを使用すると、索引の再構築をパラレル化できます。

参照:

「索引のパラレル再構築例:」 

TABLESPACE句

再構築された索引、索引パーティションまたは索引サブパーティションが格納される表領域を指定します。デフォルトは、再構築の前に索引またはパーティションが格納されていた表領域です。

key_compression

COMPRESSを指定すると、キー列値の繰返し項目を排除するキー圧縮が使用可能になります。integerを使用して、接頭辞の長さ(圧縮する接頭辞列数)を指定します。

非パーティション索引(一意でない索引または2列以上の一意索引)のみが圧縮されます。

NOCOMPRESSを指定すると、キー圧縮が使用禁止になります。これはデフォルトです。

キー圧縮の制限事項:

COMPRESSは、ビットマップ索引に対して指定できません。

ONLINE句

ONLINEを指定すると、表またはパーティションのDML操作を索引の再構築中に可能にするかどうかを指定できます。

オンライン索引の制限事項:

オンライン索引には、次の制限事項があります。

COMPUTE STATISTICS句

この句は現在使用されていません。現在、Oracleデータベースでは、索引の作成および再構築中に統計情報が自動的に収集されます。この句は下位互換性を保つためにサポートされており、エラーを発生させることはありません。

COMPUTE STATISTICS句の制限事項:

ドメイン索引にこの句は指定できません。

logging_clause

ALTER INDEX ... REBUILD操作をログに記録するかどうかを指定します。

この句の詳細は、「logging_clause」を参照してください。

PARAMETERS句

PARAMETERS句は、ドメイン索引のみに適用されます。この句は、未解析のまま適切なODCI索引タイプ・ルーチンに渡すパラメータ文字列を指定します。パラメータ文字列の最大長は1,000文字です。

索引全体を変更または再構築する場合、文字列は索引レベルのパラメータを参照する必要があります。索引のパーティションを再構築する場合、文字列はパーティション・レベルのパラメータを参照する必要があります。

indexUNUSABLEのマークが付いている場合、パラメータを変更するのみではUSABLEにはなりません。UNUSABLEのマークが付いた索引を使用可能にするには、その索引を再構築する必要があります。

Oracle Textがインストール済の場合、Oracle Text固有のパラメータを使用するOracle Textのドメイン索引を再構築することができます。パラメータの詳細は、『Oracle Textリファレンス』を参照してください。

PARAMETERS句の制限事項:

PARAMETERS句には、次の制限事項があります。

ENABLE句

ENABLEは、索引が使用するユーザー定義ファンクションが削除または置換されたために使用禁止になったファンクション索引のみに適用されます。次の条件が該当する場合、この句によって、このような索引が使用可能になります。

ファンクション索引を使用可能にする場合の制限事項:

ENABLEと同じ文には、ALTER INDEXの他の句を指定できません。

DISABLE句

DISABLEは、ファンクション索引のみに適用されます。この句を使用してファンクション索引を使用禁止にします。たとえば、ファンクションの本体を処理する場合に、これを行います。その後、ENABLEキーワードを使用して、索引を再構築、または別のALTER INDEX文を指定できます。

UNUSABLE句

UNUSABLEを指定すると、索引、索引パーティションまたは索引サブパーティションにUNUSABLEのマークを付けることができます。使用禁止の索引を使用可能にする場合、再構築するか、または削除して再作成する必要があります。1つのパーティションにUNUSABLEのマークが付いている場合も、同じ索引の他のパーティションは有効です。その索引を必要とする文が使用禁止のパーティションにアクセスしない場合、その文を実行できます。また、使用禁止のパーティションは、分割または名前を変更してから再構築できます。

索引への使用禁止のマーク付けの制限事項:

この句は、一時表の索引に対して指定できません。

RENAME句

この句を指定すると、索引の名前を変更できます。new_index_nameは単一の識別子で、スキーマ名は含まれません。

索引の名前の変更の制限事項:

ドメイン索引の場合、indexおよびindexのパーティションにIN_PROGRESSまたはFAILEDのマークが付いていると無効になります。

参照:

「索引の名前の変更例:」 

COALESCE句

COALESCEを指定すると、ブロックを再利用するために、索引ブロックの内容を空きブロックにマージできます(可能な場合)。

索引ブロックの結合の制限事項:

索引ブロックの結合には、次の制限事項があります。

MONITORING USAGE | NOMONITORING USAGE

この句を使用すると、索引の使用を監視するかどうかを決定できます。

このALTER INDEX ... NOMONITORING USAGE文が発行された後、索引が使用されたかどうかを調べるには、V$OBJECT_USAGE動的パフォーマンス・ビューのUSED列を問い合せます。

参照:

データ・ディクショナリおよび動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。 

UPDATE BLOCK REFERENCES句

UPDATE BLOCK REFERENCES句は、索引構成表の通常のドメイン索引に対してのみ有効です。この句を指定すると、主キーによって識別されるブロックの適切なデータベース・アドレスとともに索引行の一部として格納され、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。

ドメイン索引では、AlterIndexUpdBlockRefsに設定されたalter_optionパラメータでODCIIndexAlterルーチンが実行されます。このルーチンはカートリッジ・コードを使用可能にし、失効したと推測される索引のデータ・ブロック・アドレスを更新します。

UPDATE BLOCK REFERENCESの制限事項:

この句をALTER INDEXの他の句と組み合せることはできません。

alter_index_partitioning

ALTER INDEX文のパーティション化句は、パーティション索引に対してのみ有効です。

ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。

索引のパーティション変更の制限事項:

索引のパーティション変更には、次の制限事項があります。

modify_index_default_attrs

パーティション索引のデフォルト属性に新しい値を指定します。

パーティションのデフォルト属性の変更の制限事項:

ハッシュ・パーティション表のグローバル索引、またはハッシュ・パーティション表やコンポジット・パーティション表の索引の属性には、TABLESPACEのみを指定できます。

TABLESPACE

索引の新規パーティション、または索引パーティションのサブパーティションに対して、デフォルトの表領域を指定します。

logging_clause

パーティション索引または索引パーティションのデフォルトのロギング属性を指定します。

この句の詳細は、「logging_clause」を参照してください。

FOR PARTITION

FOR PARTITION句を使用すると、コンポジット・パーティション表にあるローカル索引のパーティションのサブパーティションに対して、デフォルトの属性を指定できます。

FOR PARTITIONの制限事項:

リスト・パーティションに対してFOR PARTITIONを指定することはできません。

参照:

「デフォルト属性の変更例:」 

add_hash_index_partition

この句を使用すると、ハッシュ・パーティション・グローバル索引にパーティションを追加できます。Oracleデータベースは、ハッシュ・パーティションを追加し、ハッシュ・ファンクションによって索引の既存のハッシュ・パーティションから再ハッシュされた索引エントリをそのハッシュ・パーティションに移入します。パーティション名を省略すると、SYS_Pnの形式でパーティション名が割り当てられます。TABLESPACE句を省略すると、その索引に対して指定された表領域にパーティションが配置されます。索引の表領域が指定されていない場合、パーティションは、ユーザーのデフォルトの表領域(指定されている場合)またはシステムのデフォルトの表領域に配置されます。

modify_index_partition

modify_index_partition句を使用すると、索引パーティションpartitionまたはそのサブパーティションの実物理属性、ロギング属性または記憶特性を変更できます。ハッシュ・パーティション・グローバル索引の場合、この句に指定できる副次句はUNUSABLEのみです。

COALESCE

この句を指定すると、ブロックを再利用するために、索引パーティション・ブロックの内容を空きブロックにマージできます(可能な場合)。

UPDATE BLOCK REFERENCES

UPDATE BLOCK REFERENCES句は、索引構成表の通常の索引に対してのみ有効です。この句を使用すると、2次索引パーティションに格納されている、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。

UPDATE BLOCK REFERENCESの制限事項:

この句には、次の制限事項があります。

UNUSABLE句

索引パーティションに対するこの句の機能は、索引全体の場合と同じです。詳細は、「UNUSABLE句」を参照してください。

key_compression

この句は、コンポジット・パーティション索引に対してのみ有効です。この句を使用すると、パーティションおよびそのパーティションのすべてのサブパーティションの圧縮属性を変更できます。Oracleデータベースは、パーティション内の各索引サブパーティションにUNUSABLEのマークを付けます。その後、これらのサブパーティションを再構築する必要があります。パーティションにキー圧縮を指定するには、まず表にキー圧縮を指定しておく必要があります。この句は、パーティション・レベルでのみ指定できます。個々のサブパーティションの圧縮属性は変更できません。

非コンポジット索引パーティションにもこの句を指定できます。ただし、非コンポジット・パーティションには、再構築と圧縮属性の設定を1つの手順で行うrebuild_clauseを使用する方が効率的です。

rename_index_partition

rename_index_partition句を使用すると、索引パーティションまたは索引サブパーティションの名前をnew_nameに変更できます。

索引パーティションの名前の変更の制限事項:

索引パーティションの名前の変更には、次の制限事項があります。

drop_index_partition

drop_index_partition句を使用すると、グローバル・パーティション索引からパーティションとその中のデータを削除できます。グローバル索引のパーティションを削除する場合、その索引の次のパーティションにUNUSABLEのマークが付けられます。グローバル索引の最上位のパーティションは削除できません。

参照:

「索引パーティションの削除例:」 

split_index_partition

split_index_partition句を使用すると、レンジ・パーティション・グローバル索引のパーティションを2つのパーティションに分割し、新しいパーティションを索引に追加できます。この句は、ハッシュ・パーティション・グローバル索引に対しては無効です。かわりに、add_hash_index_partition句を使用してください。

UNUSABLEのマークが付いたパーティションを分割すると、2つのパーティションが生成されますが、その両方にUNUSABLEのマークが付けられます。このようなパーティションは、使用前に再構築する必要があります。

使用可能なパーティションを分割した場合、索引データが入っている2つのパーティションが生成されます。両方の新規パーティションは使用可能です。

AT句

split_partition_1に新しい上限(境界は含まない)を指定します。value_listの値は、partition_name_oldの分割前のパーティション境界より小さく、その次の最小のパーティション(そのようなパーティションがある場合)のパーティション境界より大きい値である必要があります。

INTO句

分割の結果、生成される2つのパーティションの名前と物理属性を任意に指定します。

参照:

「パーティションの分割例:」 

coalesce_index_partition

この句は、ハッシュ・パーティション・グローバル索引に対してのみ有効です。索引パーティションの数が1つ減少します。結合するパーティションは、ハッシュ・ファンクションの要件に基づいて選択されます。この句を使用するのは、選択されたパーティションの索引エントリを残りのパーティションのいずれかに分散した後で、その選択されたパーティションを削除する場合です。

modify_index_subpartition

modify_index_subpartition句を使用すると、コンポジット・パーティション表にあるローカル索引のサブパーティションに対する領域のUNUSABLEのマーク付け、割当てまたは割当て解除が可能になります。このようなサブパーティションの他のすべての属性は、パーティション・レベルのデフォルトの属性から継承されます。

索引ブロックの逆順格納例:

次の文は、索引ブロックのバイトが逆順に格納されるように、索引ord_customer_ix「索引の作成例:」で作成)を再構築します。

ALTER INDEX ord_customer_ix REBUILD REVERSE;
索引のパラレル再構築例:

次の文は、パラレル実行プロセスを使用して、既存の索引のスキャンおよび新しい索引の構築を行い、既存の索引から索引を再構築します。

ALTER INDEX ord_customer_ix REBUILD PARALLEL;
索引の実属性の変更例:

次の文は、同じ索引に将来追加されるデータ・ブロックが、5つの初期トランザクション・エントリと100KBの増分エクステントを使用するように、索引oe.cust_lname_ixを変更します。

/* Unless you change the default tablespace of sample user oe,
   or specify different tablespace storage for the index, this
   example fails because the default tablespace originally assigned
   to oe is locally managed.
*/
ALTER INDEX oe.cust_lname_ix  
    INITRANS 5  
    STORAGE (NEXT 100K); 

索引oe.cust_lname_ixがパーティション化されている場合、この文は将来追加される索引のパーティションのデフォルト属性も変更します。将来追加されるパーティションでは、5つの初期トランザクション・エントリと100KBの増分エクステントが使用されます。

パラレル問合せを使用可能にする例:

次の文は、索引upper_ix「ファンクション索引の作成例:」で作成)に対するスキャンがパラレル化されるように、索引のパラレル属性を設定します。

ALTER INDEX upper_ix PARALLEL;
索引の名前の変更例:

次の文は、索引の名前を変更します。

ALTER INDEX upper_ix RENAME TO upper_name_ix;
索引への使用禁止のマーク付けの例:

次の例は、cost_ix索引(「レンジ・パーティション・グローバル索引の作成例:」で作成)を使用します。この索引のパーティションp1は、「索引パーティションの削除例:」で削除されています。最初の文は、索引パーティションp2UNUSABLEのマークを付けます。

ALTER INDEX cost_ix
   MODIFY PARTITION p2 UNUSABLE;

次の文は、索引cost_ix全体にUNUSABLEのマークを付けます。

ALTER INDEX cost_ix UNUSABLE;
使用禁止の索引パーティションの再構築例:

次の文は、cost_ix索引のパーティションp2およびp3を再構築し、索引をもう一度使用可能にします。パーティションp3の再構築はログに記録されません。

ALTER INDEX cost_ix 
   REBUILD PARTITION p2;
ALTER INDEX cost_ix
   REBUILD PARTITION p3 NOLOGGING;
MAXEXTENTSの変更例:

次の文は、パーティションp3のエクステントの最大数を変更し、ロギング属性を変更します。

/* This example will fail if the tablespace in which partition p3
   resides is locally managed.
*/
ALTER INDEX cost_ix MODIFY PARTITION p3
   STORAGE(MAXEXTENTS 30) LOGGING;
索引パーティションの名前の変更例:

次の文は、cost_ix索引(「レンジ・パーティション・グローバル索引の作成例:」で作成)の索引パーティションの名前を変更します。

ALTER INDEX cost_ix
   RENAME PARTITION p3 TO p3_Q3;
パーティションの分割例:

次の文は、索引cost_ixのパーティションp2「レンジ・パーティション・グローバル索引の作成例:」で作成)をp2ap2bに分割します。

ALTER INDEX cost_ix
   SPLIT PARTITION p2 AT (1500) 
   INTO ( PARTITION p2a TABLESPACE tbs_01 LOGGING,
          PARTITION p2b TABLESPACE tbs_02);
索引パーティションの削除例:

次の文は、cost_ix索引から索引パーティションp1を削除します。

ALTER INDEX cost_ix
   DROP PARTITION p1;
デフォルト属性の変更例:

次の文は、ローカル・パーティション索引prod_idx「ハッシュ・パーティション表の索引の作成例:」で作成)のデフォルトの属性を変更します。将来追加されるパーティションでは、5つの初期トランザクション・エントリと100KBの増分エクステントが使用されます。

ALTER INDEX prod_idx
      MODIFY DEFAULT ATTRIBUTES INITRANS 5 STORAGE (NEXT 100K);

ALTER INDEXTYPE

用途

ALTER INDEXTYPE文を使用すると、索引タイプの演算子を追加または削除したり、実装タイプを変更したり、索引タイプのプロパティを変更することができます。

前提条件

索引タイプが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY INDEXTYPEシステム権限が必要です。

新しい演算子を追加する場合は、その演算子に対するEXECUTEオブジェクト権限が必要です。

実装タイプを変更する場合は、新しい実装タイプに対するEXECUTEオブジェクト権限が必要です。

構文

alter_indextype::=

画像の説明

using_type_clause::=を参照)

using_type_clause::=

画像の説明

array_DML_clause::=を参照)

array_DML_clause::=

画像の説明

セマンティクス

schema

索引タイプが存在するスキーマ名を指定します。schemaを指定しない場合、索引タイプが自分のスキーマ内にあるとみなされます。

indextype

変更する索引タイプの名前を指定します。

ADD | DROP

ADDまたはDROP句を使用すると、演算子を追加または削除できます。

削除には特別な権限は必要ありません。

using_type_clause

USING句を使用すると、索引タイプを実装する新しいタイプを指定できます。

array_DML_clause

この句を使用すると、ODCIIndexInsertメソッドで配列インタフェースをサポートする索引タイプを変更できます。

typeおよびvarray_type

索引付けする列のデータ型がユーザー定義のオブジェクト型である場合、この句を指定して、Oracleがtypeの列値を保持するために使用するVARRAYのvarray_typeを識別する必要があります。索引タイプで型のリストがサポートされている場合、対応するVARRAY型のリストを指定できます。typeまたはvarray_typeschemaを省略した場合、型が自分のスキーマ内に定義されているとみなされます。

索引付けする列のデータ型が組込みシステム型である場合、その索引タイプに指定されたVARRAY型は、システムで定義されたODCI型よりも優先されます。

参照:

ODCI配列インターフェイスの詳細は、『Oracle Databaseデータ・カートリッジ開発者ガイド』を参照してください。 

COMPILE

この句を使用すると、索引タイプを明示的に再コンパイルできます。通常、索引タイプは自動的に再コンパイルされるため、この句は一部のアップグレード操作の後でのみ指定する必要があります。

索引タイプの変更例:

次の例は、position_indextype索引タイプ(「索引タイプの作成例:」で作成)をコンパイルします。

ALTER INDEXTYPE position_indextype COMPILE;

ALTER JAVA

用途

ALTER JAVA文を使用すると、Javaクラス・スキーマ・オブジェクトの変換、またはJavaソース・スキーマ・オブジェクトのコンパイルを強制実行できます(Java名に対するすべての外部参照を他のクラスと対応付ける前に、Javaクラスのメソッドをコールすることはできません)。

参照:

Javaクラスの変換およびJavaソースのコンパイルの詳細は、『Oracle Database Java開発者ガイド』を参照してください。 

前提条件

Javaソースまたはクラスが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。さらに、Javaクラスに対するEXECUTEオブジェクト権限も必要です。

構文

alter_java::=

画像の説明

invoker_rights_clause::=を参照)

invoker_rights_clause::=

画像の説明

セマンティクス

JAVA SOURCE

ALTER JAVA SOURCEを使用すると、Javaソース・スキーマ・オブジェクトをコンパイルできます。

JAVA CLASS

ALTER JAVA CLASSを使用すると、Javaソース・スキーマ・オブジェクトを変換できます。

object_name

以前作成したJavaクラスまたはソース・スキーマ・オブジェクトを指定します。小文字、または大文字と小文字を組み合せた名前を付けるには、二重引用符を使用してください。

RESOLVER

RESOLVER句を使用すると、Javaクラスまたはソースが作成されたときに指定したマッピング・ペアを使用して、完全に指定された参照用のJava名に対するスキーマの検索方法を指定できます。

参照:

「CREATE JAVA」および「Javaクラスの変換例:」を参照してください。 

RESOLVE | COMPILE

RESOLVEおよびCOMPILEは、同義のキーワードです。これらの句を使用すると、プライマリJavaクラス・スキーマ・オブジェクトの変換を指定できます。

invoker_rights_clause

invoker_rights_clauseを使用すると、クラスを定義したユーザーのスキーマ内で、そのユーザーの権限を使用してクラスのメソッドを実行するか、または、CURRENT_USERのスキーマ内で、そのユーザーの権限を使用してクラスのメソッドを実行するかを指定できます。

また、この句は、問合せ、DML操作、およびその型のメンバー・ファンクションおよびプロシージャ内の動的SQL文の外部名の変換方法も定義します。

AUTHID CURRENT_USER

CURRENT_USERを指定すると、クラスのメソッドがCURRENT_USER権限で実行されることを指定できます。この句はデフォルトで、実行者権限クラスを作成します。

また、この句は、問合せ、DML操作、および動的SQL文の外部名をCURRENT_USERのスキーマで変換することも指定します。他のすべての文における外部名は、メソッドを含むスキーマで変換します。

AUTHID DEFINER

DEFINERを指定すると、クラスを定義したユーザーの権限を使用してそのクラスのメソッドを実行できます。

さらに、メソッドのあるスキーマ内で外部名を変換するかどうかを指定します。

参照:

  • CURRENT_USERの判断方法については、『Oracle Database概要』および『Oracle Databaseアプリケーション開発者ガイド-基礎編』を参照してください。

  • 『Oracle Database Java開発者ガイド』

 

Javaクラスの変換例:

次の文は、Javaクラスを強制変換します。

ALTER JAVA CLASS "Agent"
   RESOLVER (("/usr/bin/bfile_dir/*" pm)(* public))
   RESOLVE;


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引