| Oracle Database SQLリファレンス 10g リリース2(10.2) B19201-02 |
|
この章では、様々なSQL文についてアルファベット順に説明します。その他のSQL文については、第11章〜第19章を参照してください。
この章では、次の内容を説明します。
次の項にあるリストは、SQL文の機能の概要について、次のカテゴリに分類して説明しています。
データ定義言語(DDL)文によって、次のタスクを実行できます。
CREATE、ALTERおよびDROPコマンドは、特定のオブジェクトに対して排他的アクセスを必要とします。たとえば、別のユーザーが特定の表でトランザクションをオープンしている場合、ALTER TABLE文は実行できません。
GRANT、REVOKE、ANALYZE、AUDITおよびCOMMENTコマンドは、特定のオブジェクトに対する排他的アクセスを必要としません。たとえば、他のユーザーが表を更新しているときでも、その表を分析できます。
Oracleデータベースは、暗黙的にすべてのDDL文の前後で現在のトランザクションをコミットします。
DDL文の多くは、Oracleデータベースにスキーマ・オブジェクトを再コンパイルまたは再認可させることができます。Oracleデータベースがスキーマ・オブジェクトを再コンパイルまたは再認可する方法、およびDDL文によってそれを実行する環境については、『Oracle Database概要』を参照してください。
DDL文は、DBMS_SQLパッケージを使用した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)文は、既存スキーマ・オブジェクトのデータにアクセスし、操作します。次の文は、現在のトランザクションを暗黙的にコミットしません。次に、データ操作言語文を示します。
SELECT文は、DML文の制限された形式であり、データベース内のデータへのアクセスのみが可能です。アクセスしたデータを操作してから問合せの結果を戻すことはできますが、データベース内のデータを操作することはできません。
CALLおよびEXPLAIN PLAN文は、動的に実行されるときにのみPL/SQLでサポートされます。他のすべてのDML文は、PL/SQLで完全にサポートされます。
トランザクション制御文は、DML文で行った変更を管理します。次に、トランザクション制御文を示します。
COMMITおよびROLLBACKコマンドの特定書式以外のトランザクション制御文は、PL/SQLでサポートされます。制限については、「COMMIT」および「ROLLBACK」を参照してください。
セッション制御文は、ユーザー・セッションのプロパティを動的に管理します。次の文は、現在のトランザクションを暗黙的にコミットしません。
PL/SQLは、セッション制御文をサポートしません。次に、セッション制御文を示します。
単一システム制御文ALTER SYSTEMは、Oracleデータベース・インスタンスのプロパティを動的に管理します。この文は、現在のトランザクションを暗黙的にコミットしません。また、PL/SQLではサポートされません。
埋込みSQL文は、DDL、DMLおよびトランザクション制御文を手続き型言語プログラム内に入れます。埋込みSQLは、Oracleプリコンパイラでサポートされており、次のマニュアルに記載されています。
この章および第11章〜第19章のすべてのSQL文は、次の項で編成されています。
構文図には、文を構成するキーワードおよびパラメータを示します。
文の基本的な使用方法を説明します。
文の実行に必要な権限と、文を使用する前に実行する手順を示します。特に指定がないかぎり、ご使用のインスタンスでデータベースがオープンされている必要があります。
構文を構成するキーワード、パラメータおよび句の用途について説明します。また、制限事項およびその他の注意事項についても説明します。(この章および第11章〜第19章で使用するキーワードおよびパラメータの表記規則の詳細は、「はじめに」を参照してください。)
文の様々な句およびパラメータの使用方法を示します。
ALTER CLUSTER文を使用すると、クラスタの記憶特性および並列特性を再定義できます。
|
参照:
クラスタの作成については、「CREATE CLUSTER」を参照してください。クラスタからの表の削除については、「DROP CLUSTER」および「DROP TABLE」を参照してください。クラスタへの表の追加については、「CREATE TABLE」の「physical_properties」を参照してください。 |
クラスタが自分のスキーマ内にあるか、またはALTER ANY CLUSTERシステム権限が必要です。
(physical_attributes_clause::=、size_clause::=、allocate_extent_clause::=、deallocate_unused_clause::=、parallel_clause::=を参照)
(storage_clause::=を参照)
(size_clause::=を参照)
(size_clause::=を参照)
クラスタが含まれているスキーマを指定します。schemaを指定しない場合、そのクラスタは自分のスキーマにあるとみなされます。
変更するクラスタの名前を指定します。
クラスタのPCTUSEDパラメータ、PCTFREEパラメータおよびINITRANSパラメータの値を変更します。
クラスタの記憶特性を変更するには、STORAGE句を使用します。
クラスタの記憶域パラメータINITIALおよびMINEXTENTSの値は変更できません。
SIZE句を使用すると、クラスタに割り当てられたデータ・ブロック中に格納されるクラスタ・キーの数を指定できます。
ハッシュ・クラスタではなく、索引クラスタのSIZEパラメータのみを変更できます。
allocate_extent_clauseを指定すると、クラスタの新しいエクステントを明示的に割り当てることができます。
この句で明示的にエクステントを割り当てる場合、Oracleデータベースは、クラスタの記憶域パラメータを評価しません。割り当てられる新しいエクステントの新しいサイズも決定しません(表を作成する際に行います)。したがって、Oracleデータベースがデフォルト値を使用しないようにするには、SIZEを指定してください。
ハッシュ・クラスタではなく、索引クラスタのみに新しいエクステントを割り当てることができます。
deallocate_unused_clause句を使用すると、クラスタの終わりの未使用領域の割当てを明示的に解除し、解放された領域が他のセグメントで使用可能になります。
この句の動作は、CREATE CLUSTER文およびALTER CLUSTER文で同じです。
parallel_clauseを指定すると、クラスタのDMLおよび問合せのデフォルト並列度を変更できます。
clusterの表がLOB型またはユーザー定義オブジェクト型の列を含む場合、clusterでその後に行うINSERT、UPDATEまたはDELETE操作と同様、この文は通知なしに逐次実行されます。
次に、「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システム権限が必要です。
RECOVER句を指定する場合は、SYSDBAシステム権限が必要です。
(general_recovery::=、managed_standby_recovery::=を参照)
(full_database_recovery::=、partial_database_recovery::=を参照)
(redo_apply_clauses::=、cancel_clause::=、finish_clause::=を参照)
|
注意:
|
(create_datafile_clause::=、alter_datafile_clause::=、alter_tempfile_clause::=を参照)
(autoextend_clause::=、size_clause::=を参照)
(autoextend_clause::=、size_clause::=を参照)
(size_clause::=を参照)
(logfile_descriptor::=、add_logfile_clauses::=、drop_logfile_clauses::=、supplemental_db_logging::=を参照)
(redo_log_file_spec::=、logfile_descriptor::=を参照)
(supplemental_id_key_clause::=を参照)
(trace_file_clause::=を参照)
(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::=を参照)
(flashback_mode_clause::=、set_time_zone_clause::=を参照)
変更するデータベースの名前を指定します。データベース名にはASCII文字のみが使用できます。データベース名を指定しないと、初期化パラメータDB_NAMEに指定されているデータベースが変更されます。なお、データベースの制御ファイルが初期化パラメータCONTROL_FILESに指定されている場合にのみ、そのデータベースを変更できます。データベース識別子は、Oracle Netのデータベース指定とは関係ありません。
startup_clausesを使用すると、データベースをマウントおよびオープンして、アクセス可能にできます。
MOUNT句を使用すると、データベースをマウントできます。データベースがすでにマウントされている場合、この句は使用できません。
MOUNT STANDBY DATABASEを指定すると、物理スタンバイ・データベースをマウントできます。キーワードSTANDBY DATABASEはオプションです。Oracleデータベースは、マウント対象のデータベースがプライマリ・データベースかスタンバイ・データベースかを自動的に判別します。この文の実行直後、スタンバイ・インスタンスはプライマリ・インスタンスからアーカイブREDOログを受信し、ログをSTANDBY_ARCHIVE_DESTで指定された位置にアーカイブできるようになります。
MOUNT CLONE DATABASEを指定すると、クローン・データベースをマウントできます。
OPEN句を使用すると、データベースを使用可能な状態にできます。データベースをオープンするには、マウントしておく必要があります。
OPENを他のキーワードを指定せずに単独で指定した場合のデフォルトは、プライマリ・データベースではOPEN READ WRITE NORESETLOGS、スタンバイ・データベースではOPEN READ ONLYです。
OPEN READ WRITEを指定すると、読取り/書込みモードでデータベースがオープンされ、ユーザーはREDOログを生成できるようになります。これは、プライマリ・データベースをオープンするときのデフォルトです。この句は、物理スタンバイ・データベースに対しては指定できません。
現行のログ順序番号を1にリセットし、アーカイブされていないログ(現行のログを含む)をアーカイブして、リカバリ時に適用されなかったREDO情報を今後適用されないように破棄するかどうかを指定します。Oracleデータベースは、この句の設定が必要な次の状況を除き、NORESETLOGSを自動的に使用します。
RESETLOGSを指定する必要があります。
RESETLOGSを、失われていないときはNORESETLOGSを指定する必要があります。
データベースをアップグレードまたはダウングレードする場合にかぎり、これらのOPEN句パラメータを使用します。この句は、Oracleデータベースに対して、アップグレードとダウングレードにそれぞれ必要なシステム・パラメータを動的に変更するように指示します。SQL*PlusのSTARTUP UPGRADEコマンドまたはSTARTUP DOWNGRADEコマンドでも、同じ結果が得られます。
OPEN READ ONLYを指定すると、トランザクションが読取り専用に制限され、ユーザーはREDOログを生成できなくなります。この設定は、物理スタンバイ・データベースをオープンするときのデフォルトです。プライマリ・データベース・サイトからのアーカイブ・ログのコピー中でも、物理スタンバイ・データベースが問合せに使用可能になります。
データベースのオープンには、次の制限事項があります。
READ WRITEモードでオープンされている場合、READ ONLYモードではオープンできません。
READ ONLYモードではオープンできません。
READ ONLYモードでオープンされている間は、表領域をオフラインに切り替えることはできません。ただし、データ・ファイルのオフラインとオンラインの切替えはできます。また、データベースがREAD ONLYモードでオープンされている間は、オフラインのデータ・ファイルおよび表領域をリカバリできます。
recovery_clausesを使用すると、バックアップ後の操作を指定できます。これらすべての句では、Oracleデータベースは、現行の制御ファイルが認識しているデータ・ファイルおよびログ・ファイルのインカネーションを使用して、データベースをリカバリします。
general_recovery句を指定すると、データベース、スタンバイ・データベース、または指定した表領域やファイルのメディア・リカバリを制御できます。インスタンスで、データベースがマウント済(オープン状態またはクローズ状態)の場合、関連ファイルが使用中でなければ、この句を使用できます。
一般的なリカバリには、次の制限事項があります。
AUTOMATICを指定すると、リカバリ操作を続けるために必要な新規アーカイブREDOログ・ファイルの名前が自動的に生成されます。LOG_ARCHIVE_DEST_nパラメータが定義されている場合、最初のローカル接続先に対して有効で使用可能なパラメータがスキャンされます。その接続先はLOG_ARCHIVE_FORMATと結合して使用され、ターゲットのREDOログ・ファイル名が生成されます。LOG_ARCHIVE_DEST_nが定義されていない場合は、かわりにLOG_ARCHIVE_DESTパラメータ値が使用されます。
ファイルが検出されると、そのファイルに含まれているREDOが適用されます。ファイルが検出されない場合は、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。
AUTOMATICもLOGFILEも指定しない場合、ファイル名の入力を求めるプロンプトが表示されます。この場合、提案として生成されたファイル名が表示されます。この場合、生成されたファイル名を受け入れるか、または完全修飾されたファイル名に置き換えます。生成されるファイル名とアーカイブ済のファイル名が異なることがわかっている場合、LOGFILE句を使用することによって時間を節約できます。
FROM 'location'を指定すると、アーカイブREDOログ・ファイル・グループを読み取る位置を指定できます。locationには、使用するオペレーティング・システムの表記規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しないと、そのアーカイブREDOログ・グループは、初期化パラメータLOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DEST_1に指定された位置にあるとみなされます。
full_database_recovery句を指定すると、データベース全体をリカバリできます。
DATABASE句を指定すると、データベース全体をリカバリできます。これはデフォルトです。データベースがクローズされている場合にのみ、このオプションを使用できます。
STANDBY DATABASE句を指定すると、プライマリ・データベースからコピーされたアーカイブREDOログ・ファイルおよび制御ファイルを使用して、物理スタンバイ・データベースを手動でリカバリできます。スタンバイ・データベースは、マウントされているがオープンされていない状態である必要があります。
この句は、オンライン・データ・ファイルのみをリカバリします。
partial_database_recovery句を指定すると、個々の表領域およびデータ・ファイルをリカバリできます。
TABLESPACE句を指定すると、指定した表領域のみをリカバリできます。リカバリの対象となる表領域がオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。
DATAFILE句を指定すると、指定したデータ・ファイルをリカバリできます。リカバリ対象のデータ・ファイルがオフラインの場合、データベースがオープン状態でもクローズ状態でも、この句を使用できます。
データ・ファイルは、名前または番号で識別できます。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。
STANDBY TABLESPACEを指定すると、プライマリ・データベースおよび制御ファイルからコピーしたアーカイブREDOログ・ファイルを使用して、スタンバイ・データベース内に損失または破損した表領域を再構成できます。
STANDBY DATAFILEを指定すると、プライマリ・データベースおよび制御ファイルからコピーされたアーカイブREDOログ・ファイルを使用して、損失または破損したデータ・ファイルを物理スタンバイ・データベース内で手動で再構成できます。DATAFILE句と同様、ファイルは、名前または番号で識別できます。
旧スタンバイ・データ・ファイルまたは表領域のリカバリに、現行のスタンバイ・データベースの制御ファイルを使用する場合、UNTIL [CONSISTENT WITH] CONTROLFILEを指定します。ただし、スタンバイ制御ファイルに反映されていないREDOログ・ファイルの内容は適用されません。キーワードCONSISTENT WITHはオプションであり、意味を明確にするためのものです。
LOGFILE 'filename'を指定すると、指定したREDOログ・ファイルを使用して、メディア・リカバリを続行できます。
TEST句を使用すると、試行リカバリを実行できます。試行リカバリは、通常のリカバリ手順に問題があった場合に有効です。REDOストリームを見ると、続いて発生する可能性のある問題を検出することができます。試行リカバリは、通常のリカバリと同様にREDOを適用しますが、ディスクに変更を書き込みません。変更は、試行リカバリの最後にロールバックされます。
この句を使用できるのは、最後のRESETLOGS操作以降に取ったバックアップをリストアする場合のみです。そうでない場合は、エラーが戻ります。
ALLOW integer CORRUPTION句を指定すると、ログ・ファイルが破損した場合に、許容リカバリの続行で許容する破損ブロックの数を指定することができます。
試行リカバリでこの句を使用する(TEST句と結合する)場合は、integerに2以上の数値を指定できます。通常のリカバリでこの句を使用する場合は、integerに2以上の数値を指定できません。
CONTINUEを指定すると、スレッドを使用禁止にするために中断されていた複数インスタンス・リカバリを再開できます。
CONTINUE DEFAULTを指定すると、他に指定されたログ・ファイルがない場合、自動的に生成されたREDOログ・ファイルを使用して、リカバリが再開されます。ファイル名の入力を求めるプロンプトが表示されないこと以外は、AUTOMATICの指定と同じです。
CANCELを指定すると、取消しベースのリカバリを終了できます。
managed_standby_recovery句を使用すると、物理スタンバイ・データベースでのREDO Applyを開始および停止できます。REDO Applyは、プライマリ・データベースから受け取るREDOを継続的に適用することで、スタンバイ・データベースとプライマリ・データベースでのトランザクションの一貫性を確保します。
プライマリ・データベースは、そのREDOデータをスタンバイ・サイトに転送します。REDOデータが、物理スタンバイ・サイトのREDOログ・ファイルに書き込まれると、REDO Applyでそのログ・ファイルを使用できるようになります。managed_standby_recovery句は、インスタンスにデータベースがマウントされているか、またはインスタンスが読取り専用でオープンされている場合にのみ使用できます。後者の場合は、データベースが暗黙的に閉じられてから、REDO Applyが開始されます。
この句には、「general_recovery」に記載されている内容と同じ制限が適用されます。
この句を使用すると、REDO Applyの詳細を指定できます。
USING CURRENT LOGFILEを指定すると、リアルタイム適用を開始できます。これによって、スタンバイREDOログ・ファイルに書込みが行われると、このファイルからすぐにリカバリが実行されます。このとき、REDOファイルを物理スタンバイ・データベースにアーカイブしておく必要はありません。
DISCONNECTを指定すると、REDO Applyをバックグラウンドで実行するよう指示できます。これによって、現行のセッションが他のタスクで使用可能になります。FROM SESSIONキーワードはオプションであり、意味を明確にするためのものです。
NODELAY句は、プライマリ・データベースのLOG_ARCHIVE_DEST_nパラメータのDELAY属性より優先されます。NODELAY句を指定しない場合は、LOG_ARCHIVE_DEST_n設定のDELAY属性に従って、アーカイブREDOログ・ファイルの適用が遅延されます(属性が設定されている場合)。このパラメータにDELAY属性が指定されていない場合、アーカイブREDOログ・ファイルは、すぐにスタンバイ・データベースに適用されます。
この句を使用すると、特定のシステム変更番号より前のREDOデータをリカバリするようREDO Applyに指示できます。
CANCELを指定すると、現在のREDOログ・ファイルが完全に適用された後で、REDO Applyを停止できます。CANCELキーワードのみを指定した場合、セッション制御はREDO Applyが実際に停止した時点で戻ります。
IMMEDIATEキーワードを含めると、現在のREDOログ・ファイルが完全に適用される前に、REDO Applyを停止できます。セッション制御は、REDO Applyが実際に停止した時点で戻ります。
NOWAITキーワードを含めると、CANCEL操作が終了するのを待たずに、セッション制御が戻ります。
FINISHを指定すると、フェイルオーバー用に準備されている使用可能なすべてのREDOデータを完全に適用できます。FINISH句には、オプションで、次のキーワードを含めることができます。
FORCEを指定すると、FINISHプロセスを開始する妨げになる非アクティブなREDO転送セッションを終了できます。
NOWAITを指定すると、リカバリが完了する前に、フォアグラウンド・プロセスに制御が戻ります。
WAIT(デフォルト)を指定すると、リカバリが完了してから、フォアグラウンド・プロセスに制御が戻ります。
FINISH句は、プライマリ・データベースに障害が発生した場合にのみ使用してください。この句は、設定済のいずれの遅延間隔より優先され、使用可能なすべてのREDOが即座に適用されます。FINISHコマンドが完了すると、このデータベースをスタンバイ・データベース・ロールで実行することができなくなります。このデータベースは、ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY文を発行してプライマリ・データベースに変換する必要があります。
この句を使用すると、物理スタンバイ・データベースを論理スタンバイ・データベースに変換できます。データベース名を指定して、新しい論理スタンバイ・データベースを識別する必要があります。この文を発行するときにサーバー・パラメータ・ファイル(spfile)を使用する場合は、新しい論理スタンバイ・データベースの情報でファイルが適切に更新されます。spfileを使用しない場合は、データベースのシャットダウン後にDB_NAMEパラメータの名前を設定するように求めるメッセージが発行されます。さらに、この句をスタンバイ・データベースで使用する前に、プライマリ・データベースでDBMS_LOGSTDBY.BUILD PL/SQLプロシージャを起動する必要もあります。
以前のリリースの構文には、次の句が記載されていました。これらの句は、廃止される予定です。これらの句は使用しないことをお薦めします。推奨される代替手段は、表10-1と、それに続く廃止予定の句の説明中に示してあります。
DELAY integer句およびDEFAULT DELAY句は廃止される予定です。かわりに、初期化パラメータLOG_ARCHIVE_DEST_nのDELAY属性の使用をお薦めします。このパラメータの詳細は、『Oracle Data Guard概要および管理』を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。
DELAYを指定すると、プライマリ・データベースからREDOデータを受け取ってからそのデータをスタンバイ・データベースに適用するまでの間に一定の待機時間が設けられます。DELAY時間隔を設定した場合、スタンバイ・データベースへのREDOデータの転送が遅延されるわけではありません。指定した遅延時間は、REDOデータがスタンバイ・データベースに完全にアーカイブされた時点に開始されます。NONDELAYおよびDELAYは同時に指定できません。
DEFAULT DELAYを指定すると、プライマリ・データベースの初期化パラメータLOG_ARCHIVE_DEST_nのDELAY属性で指定されている時間(分)になります。
NEXT句は、廃止される予定です。かわりに、UNTIL CHANGE integer構文を使用することをお薦めします。「UNTIL CHANGE句」を参照してください。ここでは下位互換性のために、この句の動作について説明します。
NEXT句を使用すると、指定された数のアーカイブREDOログ・ファイルは、アーカイブ後に可能なかぎり早く適用されます。この句は、プライマリ・データベースの初期化パラメータLOG_ARCHIVE_DEST_nで指定されたDELAY属性、および先行するALTER DATABASE文のmanaged_standby_recovery句で指定されたDELAY値を一時的に無視します。integerで指定した数のアーカイブREDOログが処理されると、それまでに指定されていた遅延が再び有効になります。
EXPIRE句およびNOEXPIRE句は、廃止される予定です。REDO Applyを停止する場合は、EXPIREではなく、CANCEL句を使用することをお薦めします。「cancel_clause」を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。
EXPIREは、現在の時刻からREDO Applyが自動的に停止するまでの時間(分)を示します。終了時刻に適用中のアーカイブREDOログ・ファイルは最後まで処理されるため、REDO Applyの終了が、実際に指定されている時間隔の後になることもあります。
NOEXPIREを指定すると、それまでに指定されているEXPIRE句が無効になります。
終了時刻は、REDO Applyの開始時刻ではなく、常に、現行の文が発行された時刻に基づいて決定されます。既存のREDO Applyプロセスを終了するには、CANCEL句を使用します。
TIMEOUT句およびNOTIMEOUT句は、廃止される予定です。REDO Applyを停止する場合は、TIMEOUTではなく、CANCEL句を使用することをお薦めします。「cancel_clause」を参照してください。ここでは下位互換性のために、これらの句の動作について説明します。
TIMEOUTは、プライマリ・データベースから次のアーカイブREDOログ・ファイルが到着するのを待機する時間(分)を示します。指定した時間内に新しいログ・ファイルが到着しない場合、REDO Applyは自動的に停止し、エラー・メッセージを戻します。再び文を発行すると、REDO Applyを再起動できます。
TIMEOUTを指定しない場合、またはNOTIMEOUTを指定した場合、CANCEL句がある文を再発行するまで、REDO Applyはアクティブのままになります。
TIMEOUTおよびDISCONNECT[FROM SESSION]は同時に指定できません。DISCONNECT句はバックグラウンドのリカバリ操作を開始しますが、TIMEOUTはフォアグラウンドのリカバリ操作のみを適用対象とします。
この句を使用すると、データベース内のすべてのデータ・ファイルをオンライン・バックアップ・モード(ホット・バックアップ・モードともいう)にしたり、このモードから戻すことができます。
BEGIN BACKUPを指定すると、データベース内のすべてのデータ・ファイルをオンライン・バックアップ・モードに設定できます。データベースをマウントしてオープンしておく必要があります。また、メディア・リカバリを使用可能にする(データベースをARCHIVELOGモードにする)必要があります。
データベースがオンライン・バックアップ・モードになっている間は、インスタンスの通常停止、個々の表領域のバックアップの開始、表領域のオフラインへの切替え、または表領域の読取り専用設定は実行できません。
この句は、オフラインまたは読取り専用の表領域のデータ・ファイルには影響しません。
END BACKUP指定すると、オンライン・バックアップ・モードの現行のデータベースにあるすべてのデータ・ファイルが、オンライン・バックアップ・モードから戻されます。この操作を実行するとき、データベースはマウント済(オープン状態またはクローズ状態)である必要があります。
システム障害、インスタンス障害、またはSHUTDOWN ABORT操作の後は、オンライン・バックアップ・モードのファイルがシステム・クラッシュ時のファイルと一致するかどうかは識別されません。ファイルに一貫性がある場合、個々のデータ・ファイル、またはすべてのデータ・ファイルをオンライン・バックアップ・モードから戻すことができます。これによって、起動時にファイルのメディア・リカバリを回避できます。
ALTER DATABASE DATAFILE ... END BACKUP文を使用すると、個々のデータ・ファイルをオンライン・バックアップ・モードから戻すことができます。「database_file_clauses」を参照してください。
ALTER TABLESPACE ... END BACKUP文を使用すると、表領域のすべてのデータ・ファイルをオンライン・バックアップ・モードから戻すことができます。
database_file_clausesを指定すると、データ・ファイルおよび一時ファイルを変更できます。インスタンスで、データベースがマウント済(オープン状態またはクローズ状態)の場合、関連ファイルが使用中でなければ、次の句はどれでも使用できます。
RENAME FILE句を使用すると、データ・ファイル、一時ファイルまたはREDOログ・ファイル・メンバーの名前を変更できます。この句を指定する前に、オペレーティング・システムのファイル名の表記規則に従って、各ファイル名を指定してください。
この句は、制御ファイルのファイル名のみを変更します。オペレーティング・システムのファイルの名前は、実際には変更されません。オペレーティング・システムのファイル名は存在したままですが、使用されません。
|
参照:
|
CREATE DATAFILE句を使用すると、元のデータ・ファイルのかわりに新しい空のデータ・ファイルを作成できます。この句を使用すると、バックアップを取らずに失われたデータ・ファイルを再作成できます。filenameまたはfilenumberには、データベースの一部であるファイルまたは以前一部であったファイルを指定します。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。
AS NEWを指定すると、データ・ファイル用のデフォルトのファイル・システム位置に、システムが生成するファイル名で、置き換えるファイルと同じサイズのOracle Managed Filesのデータ・ファイルが作成されます。
AS file_specificationを指定すると、新しいデータ・ファイルにファイル名(およびオプションでサイズ)を割り当てることができます。オペレーティング・システムのファイル・システム内の標準データ・ファイルと一時ファイル、または自動ストレージ管理ディスク・グループのファイルを指定するには、file_specificationのdatafile_tempfile_spec書式(「file_specification」を参照)を使用します。
元のファイル(filenameまたはfilenumber)が既存のOracle Managed Filesのデータ・ファイルの場合、Oracleデータベースは新しいファイルを作成した後、元のファイルを削除しようとします。元のファイルが既存のユーザー管理データ・ファイルの場合、Oracleデータベースは元のファイルを削除しません。
AS句を指定しない場合、Oracleデータベースによって、filenameまたはfilenumberに指定したファイルと同じ名前およびサイズのファイルが新しく作成されます。
リカバリ時には、元のデータ・ファイルの作成後に書き込まれたアーカイブREDOログを、失われたデータ・ファイルにかわる新しい空のデータ・ファイルに適用する必要があります。
新しいファイルは、元のファイルの作成時と同じ状態で作成されます。新しいファイルを元のファイルが失われた時点の状態に戻すには、メディア・リカバリを行ってください。
新規データ・ファイルの作成には、次の制限事項があります。
SYSTEM表領域の最初のデータ・ファイルに基づいて新しいファイルを作成することはできません。
CREATE DATAFILE句には、datafile_tempfile_specのautoextend_clauseは指定できません。
参照:
CREATE DATABASE」の「DATAFILE句」を参照してください。
datafile_tempfile_spec)の詳細は、「file_specification」および「新しいデータ・ファイルの作成例:」を参照してください。
DATAFILE句を使用すると、名前または番号で識別するファイルを操作できます。番号で識別した場合、filenumberは、V$DATAFILE動的パフォーマンス・ビューのFILE#列、またはDBA_DATA_FILESデータ・ディクショナリ・ビューのFILE_ID列の数を表す整数です。DATAFILE句を使用すると、次のようにデータベース・ファイルを変更できます。
ONLINEを指定すると、データ・ファイルをオンラインにできます。
OFFLINEを指定すると、データ・ファイルをオフラインにできます。データベースがオープンされている場合、データ・ファイルをオンラインに戻す前に、データ・ファイルのメディア・リカバリを行う必要があります。これは、データ・ファイルがオフラインになる前に、チェックポイントが実行されないためです。
データベースがNOARCHIVELOGモードの場合は、FOR DROP句を指定して、データ・ファイルをオフラインにする必要があります。ただし、この句は、データベースからデータ・ファイルを削除しません。そのため、オペレーティング・システムのコマンドを使用するか、またはデータ・ファイルが存在する表領域を削除する必要があります。削除するまで、データ・ファイルはRECOVERまたはOFFLINEの状態でデータ・ディクショナリに残ります。
データベースがARCHIVELOGモードの場合は、FOR DROP句は無視されます。
RESIZEを指定すると、データ・ファイルのサイズを、指定した絶対サイズ(バイト単位)まで増やしたり減らすことができます。デフォルト値はないため、必ずサイズを指定してください。
増やしたサイズに対して十分なディスク領域がない場合、または減らしたサイズを超えるデータがファイルに含まれる場合、エラー・メッセージが戻されます。
END BACKUPを指定すると、データ・ファイルがオンライン・バックアップ・モードから戻されます。END BACKUP句の詳細は、ALTER DATABASE構文の最上位で説明しています。「END BACKUP句」を参照してください。
TEMPFILE句を使用すると、一時データ・ファイルのサイズを変更できます。また、autoextend_clauseを指定すると、永続データ・ファイルと同じ効果を持たせることができます。データベースは、オープンされている必要があります。一時ファイルは、名前または番号で識別します。番号で識別した場合、filenumberは、V$TEMPFILE動的パフォーマンス・ビューのFILE#列の数を表す整数です。
DROPを指定すると、データベースから一時ファイルを削除できます。表領域はそのまま残ります。
INCLUDING DATAFILESを指定すると、関連付けられたオペレーティング・システム・ファイルは削除され、削除された各ファイルのメッセージがアラート・ログに書き込まれます。同じ結果は、ALTER TABLESPACE ... DROP TEMPFILE文を使用しても得られます。詳細は、「ALTER TABLESPACE」の「DROP句」を参照してください。
autoextend_clauseを使用すると、新規または既存のデータ・ファイルまたは一時ファイルの自動拡張を使用可能または使用禁止にできます。この句の詳細は、「file_specification」を参照してください。
logfile_clausesを指定すると、ログ・ファイルを追加、削除または変更できます。
ARCHIVELOGを指定すると、REDOログ・ファイル・グループを再利用する前に、グループの内容をアーカイブできます。このモードでは、メディア・リカバリができるようになります。この句は、エラーなしの通常終了または即時終了でインスタンスを停止して再起動した後に、データベースをマウントした場合にのみ指定できます。Real Application Clustersは使用禁止にする必要があります。
MANUALを指定すると、Oracleデータベースによって作成されたREDOログ・ファイルのアーカイブを、ユーザーが制御することができます。この句は、テープに直接アーカイブするユーザーなどに対して、下位互換性を保つために提供されています。MANUALを指定する場合、次のことに注意します。
MAXIMUM PROTECTIONまたはMAXIMUM AVAILABILITYスタンバイ保護モードにすることはできません。
この句を指定しない場合、REDOログ・ファイルは、初期化パラメータLOG_ARCHIVE_DEST_nに指定された宛先に自動的にアーカイブされます。
REDOログ・ファイル・グループを再利用する前に、内容をアーカイブする必要がない場合は、NOARCHIVELOGを指定します。このモードでは、メディア障害後のリカバリはできません。この句は、インスタンスでデータベースがマウントされているがオープンされていない場合にのみ使用できます。Real Application Clustersは使用禁止にする必要があります。
この句を使用すると、データベースをFORCE LOGGINGモードにしたり、このモードから戻すことができます。データベースは、マウントまたはオープンされている必要があります。
FORCE LOGGINGモードでは、一時表領域および一時セグメントの変更を除くデータベースのすべての変更が記録されます。この設定は、各表領域で指定するNOLOGGINGまたはFORCE LOGGING設定、および各データベース・オブジェクトで指定するNOLOGGING設定より優先され、これらの設定には影響されません。
FORCE LOGGINGを指定すると、Oracleデータベースは、まだ記録されていない実行中のすべての操作が終了するまで待機します。
ログ・ファイルに対するこの句の機能は、データ・ファイルおよび一時ファイルの場合と同じです。「RENAME FILE句」を参照してください。
CLEAR LOGFILE句を使用すると、オンラインREDOログを再初期化できます。REDOログをアーカイブしないオプションもあります。CLEAR LOGFILEは、REDOログの追加および削除と似ていますが、スレッドに2つ以外ログがない場合や、クローズ状態のスレッドの現行のREDOログ・ファイルに対しても発行できます。
スタンバイ・データベースでは、STANDBY_FILE_MANAGEMENT初期化パラメータがAUTOに設定されており、いずれかのログ・ファイルがOracle Managed Filesである場合、Oracleデータベースによって、制御ファイル内のファイルと同数のOracle Managed Filesのログ・ファイルが作成されます。ログ・ファイル・メンバーは、ログ・ファイルの現行のデフォルト宛先に格納されます。
UNARCHIVEDを指定する必要があります。DROPキーワードを使用せずにALTER DATABASE ... DATAFILE OFFLINEを指定する)場合、およびそのデータ・ファイルをオンラインに戻す前に、消去するアーカイブされていないログがデータ・ファイルのリカバリに必要な場合は、UNRECOVERABLE DATAFILEを指定する必要があります。この場合、CLEAR LOGFILE文の完了後にデータ・ファイルおよび表領域全体を削除する必要があります。メディア・リカバリで必要なログを、CLEAR LOGFILEを使用して消去しないでください。データベースのチェックポイント後のREDOを含むログを消去する必要がある場合は、不完全メディア・リカバリを最初に実行する必要があります。オープンしているスレッドの現行のREDOログは消去できます。クローズしているスレッドの現行のログは、そのスレッド内でログを切り替えれば消去できます。
CLEAR LOGFILE文が、システム障害またはインスタンス障害による割込みを受けると、データベースがハングする場合があります。このような状況になった場合は、データベースの再起動後に、この文を再発行します。ログ・グループのあるメンバーにアクセスしようとした際、I/Oエラーによる障害が発生した場合は、そのメンバーを削除して他のメンバーを追加できます。
この句を使用すると、データベースにREDOログ・ファイル・グループを追加したり、既存のREDOログ・ファイル・グループに新しいメンバーを追加することができます。
ADD LOGFILE句を使用すると、指定したスレッドまたはインスタンスに1つ以上のREDOログ・ファイル・グループが追加され、そのスレッドが割り当てられているインスタンスで、そのグループを使用できるようになります。
ログ・ファイルがオンライン用、スタンバイ・データベース用のどちらに設計されたかを確認するには、V$LOGFILE動的パフォーマンス・ビューのTYPE列を問い合せます。
|
参照:
|
INSTANCE句は、パラレル・モードのReal Application ClustersでOracleデータベースを使用している場合にのみ適用可能です。ログ・ファイルを追加するインスタンス名を指定します。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップするスレッドはOracleデータベースによって自動的に使用されます。指定されたインスタンスにスレッドがマップされていない場合、Oracleデータベースはマップされていない使用可能なスレッドを取得して、そのインスタンスに割り当てます。この句もTHREAD句も指定しない場合、Oracleデータベースは、現行のインスタンスを指定した場合と同じコマンドを実行します。指定されたインスタンスにマップされた現行のスレッドが存在せず、マップされていない使用可能なスレッドも存在しない場合、エラーが戻されます。
GROUP句を指定すると、すべてのスレッドのすべてのグループ間で、REDOログ・ファイル・グループを一意に識別できます。この値は、1からCREATE DATABASE文のMAXLOGFILESに指定された値までの範囲で指定できます。同一のGROUP値を持つREDOログ・ファイル・グループは、複数追加できません。このパラメータを指定しない場合、値が自動的に生成されます。REDOログ・ファイル・グループのGROUP値は、動的パフォーマンス・ビューV$LOGで確認できます。
各redo_log_file_specには、1つ以上のメンバー(1つ以上のコピー)で構成されるREDOログ・ファイル・グループを指定します。新しいログ・ファイルにファイル名を指定しない場合、「CREATE DATABASE」の「LOGFILE句」に示すルールに従って、Oracle Managed Filesが作成されます。
ADD LOGFILE MEMBER句を使用すると、既存のREDOログ・ファイル・グループに新しいメンバーを追加できます。新しいメンバーをそれぞれ'filename'に指定します。すでにファイルが存在する場合、追加するメンバーはグループ内の他のメンバーと同じサイズである必要があり、REUSEを指定する必要があります。ファイルが存在しない場合、適切なサイズのファイルが作成されます。メディア障害によってグループのすべてのメンバーを失った場合は、そのグループにメンバーを追加することはできません。
STANDBYを指定すると、ログ・ファイル・メンバーが物理スタンバイ・データベースのみで使用可能になります。ただし、このキーワードは必須ではありません。グループintegerがスタンバイ・データベース用に追加された場合は、すべてのメンバーも同様にスタンバイ・データベースのみに使用されます。
次のいずれかの方法で、既存のREDOログ・ファイル・グループを指定できます。
integerにはREDOログ・ファイル・グループを識別するGROUPパラメータの値を指定します。
REDOログ・ファイル・グループのすべてのメンバーを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。
|
参照:
|
この句を使用すると、REDOログ・ファイル・グループまたはREDOログ・ファイル・メンバーを削除できます。
DROP LOGFILE句を使用すると、REDOログ・ファイル・グループのすべてのメンバーを削除できます。この句を使用してOracle Managed Filesを削除する場合、ディスクからもすべてのログ・ファイル・メンバーが削除されます。ADD LOGFILE MEMBER句と同様に、REDOログ・ファイル・グループを指定します。
ALTER SYSTEM SWITCH LOGFILE文を発行する必要があります。
DROP LOGFILE MEMBER句を使用すると、1つ以上のREDOログ・ファイル・メンバーを削除できます。各'filename'には、ご使用のオペレーティング・システムのファイル名の表記規則に従って、メンバーを完全に指定する必要があります。
ALTER SYSTEM SWITCH LOGFILE文を発行する必要があります。詳細は、「ALTER SYSTEM」を参照してください。
DROP LOGFILE句を使用してください。この句を使用すると、ログ・ストリームへのサプリメンタル・データの追加を実行または停止するようにOracleデータベースに指示できます。
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」を参照してください。
この句を使用すると、サプリメンタル・ロギングを停止できます。
DROP SUPPLEMENTAL LOG DATAを指定すると、更新操作が発生するたびにREDOログ・ストリ−ムに追加の最小ログ情報が置かれることを停止できます。Oracleデータベースがsupplemental_id_key_clauseで指定された列データ・サプリメンタル・ロギングを実行している場合、まずDROP SUPPLEMENTAL LOG supplemental_id_key_clauseで列データ・サプリメンタル・ロギングを停止してから、この句を指定する必要があります。
DROP SUPPLEMENTAL LOG supplemental_id_key_clauseを指定すると、システム生成の補助ログ・グループの一部またはすべてを削除できます。削除する補助ログ・グループがsupplemental_id_key_clauseを使用して追加された場合、この句を指定する必要があります。controlfile_clausesを指定すると、制御ファイルを作成またはバックアップできます。
CREATE STANDBY CONTROLFILE句を使用すると、物理または論理スタンバイ・データベースを管理するための制御ファイルを作成できます。ファイルがすでに存在している場合は、REUSEを指定してください。
BACKUP CONTROLFILE句を使用すると、現行の制御ファイルのバックアップを取ることができます。この句を使用するとき、データベースをオープンまたはマウントしておく必要があります。
filenameには制御ファイルのバックアップ先ファイルを指定します。ご使用のオペレーティング・システムの表記規則に従って、ファイル名を完全に指定する必要があります。指定したファイルがすでに存在している場合は、REUSEを指定します。
TO TRACEを指定すると、制御ファイルの物理バックアップが取られるのではなく、トレース・ファイルにSQL文が書き込まれます。トレース・ファイルに記述されたSQL文を使用すると、データベースの起動、制御ファイルの再作成、データベースのリカバリやオープンなどの操作を、作成した制御ファイルに基づいて正しく実行できます。ブロック・チェンジ・トラッキングを使用可能にしているときにALTER DATABASE BACKUP CONTROLFILE TO TRACE文を発行すると、生成されるスクリプトには、ブロック・チェンジ・トラッキングを再度使用可能にするコマンドが記述されます。
この文は暗黙的なALTER DATABASE REGISTER LOGFILE文を発行します。アーカイブ・ログ・ファイルが現行のアーカイブ・ログの宛先に存在する場合、この文によって、インカネーション・レコードが作成されます。
制御ファイルのコピーがすべて失われた場合(または、制御ファイルのサイズを変更する場合)は、トレース・ファイルからスクリプト・ファイルに文をコピーし、必要に応じて文を編集できます。
AS filenameを指定すると、標準トレース・ファイルではなくfilenameというファイルにスクリプトを格納できます。
REUSEを指定すると、filenameと呼ばれる既存ファイルを上書きできます。
RESETLOGSは、データベースの起動用としてトレース・ファイルに書き込まれたSQL文が、ALTER DATABASE OPEN RESETLOGSであることを示します。オンライン・ログが使用不可能な場合のみ、この設定は有効です。
NORESETLOGSは、データベースの起動用としてトレース・ファイルに書き込まれたSQL文が、ALTER DATABASE OPEN NORESETLOGSであることを示します。オンライン・ログが使用可能な場合のみ、この設定は有効です。
オンライン・ログの今後の状態が予測できない場合は、RESETLOGSもNORESETLOGSも指定しないでください。この場合、両方のバージョンのスクリプトがトレース・ファイルに入れられるため、スクリプトが必要になった時点で、適切なバージョンを選択できます。
この句を使用すると、スタンバイ・データベースをアクティブにする、または保護モードと非保護モードのいずれかを指定することができます。
ACTIVATE STANDBY DATABASE句を使用すると、スタンバイ・データベースをプライマリ・データベースに変換できます。
PHYSICALを指定すると、物理スタンバイ・データベースをアクティブにできます。これはデフォルトです。
LOGICALを指定すると、論理スタンバイ・データベースをアクティブにできます。論理スタンバイ・データベースが複数ある場合は、すべてのスタンバイ・システムで同じログ・データが使用可能であることを確認する必要があります。
この句は、論理スタンバイ・データベースのみに適用されます。この句は、ターミナル適用を開始するために使用します(ターミナル適用を実行すると、残りのREDOが適用され、論理スタンバイ・データベースがプライマリ・データベースと同じ状態になります)。ターミナル適用が完了すると、データベースは、論理スタンバイからプライマリ・データベースへのスイッチオーバーを完了します。
データの消失があってもデータベースをすぐにリストアする必要がある場合は、この句を指定しないでください。データベースは、ターミナル適用を行わずに、論理スタンバイからプライマリ・データベースへのスイッチオーバーを実行します。
この句を使用すると、データベース環境でのデータの保護レベルを指定できます。この句は、プライマリ・データベースから指定します。この場合、プライマリ・データベースはマウントされている状態で、オープンされていない状態である必要があります。
この設定は、最大保護モードを確立し、最高レベルのデータ保護を実現します。トランザクションのリカバリに必要なすべてのデータが、SYNCログ転送モードを使用するように構成された1つ以上の物理スタンバイ・データベースに書き込まれるまで、そのトランザクションはコミットされません。1つ以上のスタンバイ・データベースにREDOレコードを書き込めない場合、プライマリ・データベースは停止します。このモードでは、データ非消失は保証されますが、プライマリ・データベースのパフォーマンスおよび可用性に最大の影響を与える可能性があります。
この設定は、最大可用性モードを確立し、2番目に高いレベルのデータ保護を実現します。トランザクションのリカバリに必要なすべてのデータが、SYNCログ転送モードを使用するように構成された1つ以上の物理または論理スタンバイ・データベースに書き込まれるまで、そのトランザクションはコミットされません。最大保護モードとは異なり、1つ以上のスタンバイ・データベースにREDOレコードを書き込めない場合でも、プライマリ・データベースは停止しません。障害が修正され、スタンバイ・データベースがプライマリ・データベースと同一になるまで、データ保護レベルは最大パフォーマンス・モードまで下げられます。最大パフォーマンス・モードのプライマリ・データベースに障害が発生しないかぎり、このモードによってデータ非消失が保証されます。最大可用性モードは、プライマリ・データベースの可用性に影響を与えずに、最大レベルのデータ保護を実現します。
この設定は、最大パフォーマンス・モードを確立します。これがデフォルトの設定です。トランザクションのリカバリに必要なデータが、スタンバイ・データベースにすべて書き込まれる前に、トランザクションはコミットされます。そのため、プライマリ・データベースに障害が発生し、プライマリ・データベースからREDOレコードをリカバリできない場合は、一部のトランザクションが失われることがあります。このモードは、プライマリ・データベースのパフォーマンスに影響を与えずに、最大レベルのデータ保護を実現します。
データベースの現行モードを確認するには、V$DATABASE動的パフォーマンス・ビューのPROTECTION_MODE列を問い合せます。
スタンバイ・データベースでREGISTER LOGFILE句を指定すると、障害が発生したプライマリ・データベースからログ・ファイルを手動で登録することができます。オペレーティング・システムのファイル・システム内の標準REDOログ・ファイル、または自動ストレージ管理ディスク・グループのREDOログ・ファイルをリスト表示するには、file_specificationのredo_log_file_spec書式(「file_specification」を参照)を使用します。
ログ・ファイルのインカーネーションが不明である場合、REGISTER LOGFILE句は、インカネーション・レコードをV$DATABASE_INCARNATIONビューに追加します。新しく登録されたログ・ファイルのインカネーションが現行のRECOVERY_TARGET_INCARNATION#よりも高いRESETLOGS_TIMEを保持している場合、REGISTER LOGFILE句は、新しく追加されたインカネーション・レコードに対応するようにRECOVERY_TARGET_INCARNATION#も変更します。
OR REPLACEを指定すると、たとえば位置やファイル指定が変更された場合に、スタンバイ・データベースの既存のアーカイブ・ログ・エントリが更新されます。エントリのシステム変更番号は、正確に一致している必要があります。また、元のエントリは、管理スタンバイ・ログの送信メカニズムによって作成される必要があります。
この句は、Streams環境で便利です。この句によって、指定した1つのLogMinerセッションで、ログ・ファイルを登録できます。
この句を使用すると、スイッチオーバーが実行され、現行のプライマリ・データベースがスタンバイ状態になり、1つのスタンバイ・データベースがプライマリ・データベースになります。Real Application Clusters環境では、この文を発行するインスタンス以外のすべてのインスタンスが正常に停止する必要があります。
プライマリ・データベースが使用できないために正常なスイッチオーバーを実行できない場合は、この句ではなくactivate_standby_db_clauseを使用してください。
PREPARE TO SWITCHOVER句を指定すると、スイッチオーバーの前にログ・ファイルの交換を開始できるように、プライマリおよびスタンバイ・データベースを準備できます。
PREPARE TO SWITCHOVER TO LOGICAL STANDBYを指定すると、プライマリ・データベースが論理スタンバイ・データベースの1つからログ・ファイルの受入れを開始します。
COMMIT TO SWITCHOVERを指定すると、スイッチオーバー操作を実行できます。
COMMIT TO SWITCHOVER TO STANDBYを指定すると、データベースのスイッチオーバーが実行され、プライマリ・データベースがスタンバイ・データベース状態になります。プライマリ・データベースは、オープンされている必要があります。
COMMIT TO SWITCHOVER TO PRIMARY文を発行すると、スイッチオーバーが実行され、そのスタンバイ・データベースがプライマリ状態になります。スタンバイ・データベースは、マウントされている必要があります。
PHYSICALを指定すると、プライマリ・データベースが物理スタンバイ・データベースのロールで実行できる状態になります。
WITH SESSION SHUTDOWNを指定すると、開いているすべてのアプリケーション・セッションは停止し、コミットされていないトランザクションが、この文の実行の一部としてロールバックされます。この句を省略するか、またはWITHOUT SESSION SHUTDOWN (デフォルト)を指定した場合、開いているアプリケーション・セッションがあると、文は実行されません。WITH SESSION SHUTDOWNの制限事項: この句は、論理データベースには必要ありません。論理データベースではサポートされません。
WAITを指定すると、SWITCHOVERコマンドが完了した後、制御が戻ります。NOWAITを指定すると、スイッチオーバー操作が完了する前に、制御が戻ります。デフォルトはWAITです。
LOGICALを指定すると、プライマリ・データベースが論理スタンバイ・データベースのロールで実行できる状態になります。LOGICALを指定した場合は、ALTER DATABASE START LOGICAL STANDBY APPLY文を発行する必要があります。
CANCELを指定すると、プライマリ・データベースからスタンバイ・データベースへのスイッチオーバーを取り消すことができます。この句は論理スタンバイ・データベースからプライマリ・データベースへのログ・ファイルの送信を停止するために必要です。
START LOGICAL STANDBY APPLY句を指定すると、論理スタンバイ・データベースへのREDOログの適用を開始できます。
IMMEDIATEを指定します。
NODELAYを指定します。これは、プライマリ・データベースが存在せず、PL/SQLコールの実行が必要になる場合に便利です。
INITIALを指定します。
NEW PRIMARYは、スイッチオーバーまたはフェイルオーバー操作によって新しいプライマリ・データベースが作成された後に、ロールの遷移に加わっていない論理スタンバイで指定します。
SKIP FAILED [TRANSACTION]を指定します。
FINISHを指定します。プライマリ・データベースが使用できなくなった場合、REDOログ・ファイルのデータを適用できます。
この句を使用すると、ログ適用サービスを停止できます。この句は、物理スタンバイ・データベースではなく、論理スタンバイ・データベースのみに適用されます。STOP句を使用すると、適用が正常に停止されます。
この句を使用すると、Data Guard環境外にあるプライマリ・データベースを物理スタンバイ・データベースに変換できます。この操作によって、データベースをData Guard環境に結合することが可能になります。このALTER DATABASE文の発行後には、データベースを停止して再起動する必要があります。
データベースのデフォルト設定を変更できます。
ALTER DATABASE文を使用して、データベース・キャラクタ・セットまたは各国語キャラクタ・セットを変更することはできなくなりました。データベース・キャラクタ・セットの移行の詳細は、『Oracle Databaseグローバリゼーション・サポート・ガイド』を参照してください。
この句を使用すると、以降に作成する表領域のデフォルト・タイプを指定または変更できます。表領域がbigfileかsmallfileかを指定するには、BIGFILEまたはSMALLFILEを指定します。
この句を使用すると、データベースのデフォルトの永続表領域を構築または変更できます。作成済の表領域を指定する必要があります。この操作の完了後、すべての非SYSTEMユーザーに、新しいデフォルトの一時表領域が再度割り当てられます。これらのユーザーがこれ以降作成するすべてのオブジェクトは、デフォルトで、新しいデフォルトの表領域に格納されます。以前に指定したデフォルトの表領域を置き換える場合、以前作成したオブジェクトを古いデフォルトの表領域から新しいデフォルトの表領域に移動した後で、必要に応じて古いデフォルトの表領域を削除することができます。
この句を使用すると、データベースのデフォルトの一時表領域を、新しい表領域または表領域グループに変更できます。
tablespaceを指定すると、データベースの新しいデフォルトの一時表領域を指定できます。この操作の完了後、以前のデフォルトの一時表領域が割り当てられているすべてのユーザーに、新しいデフォルトの一時表領域が再度割り当てられます。その後、必要に応じて以前のデフォルトの一時表領域を削除することができます。
tablespace_group_nameを指定すると、tablespace_group_nameで指定されている表領域グループのすべての表領域を、データベースのデフォルトの一時表領域として指定できます。この操作の完了後、デフォルトの一時表領域を明示的に割り当てられていないユーザーは、tablespace_group_nameに含まれる任意の表領域に一時セグメントを作成できます。以前のデフォルトの一時表領域がデフォルトの一時表領域グループに含まれる場合、以前の一時表領域を削除することはできません。
現行のデフォルトの一時表領域またはデフォルトの一時表領域グループの名前を確認するには、ALL_、DBA-またはUSER_USERSデータ・ディクショナリ・ビューのTEMPORARY_TABLESPACE列を問い合せます。
デフォルトの一時表領域には、次の制限事項があります。
SYSTEM表領域がローカル管理される場合、デフォルトの一時表領域として指定する表領域も、ローカル管理される必要があります。Oracle Real Application Clusters環境において、ENABLE INSTANCEを指定すると、指定したデータベース・インスタンスにマップされたスレッドを使用可能にできます。使用可能にできるスレッドは、2つ以上のREDOログ・ファイル・グループを持つスレッドのみです。また、データベースはオープンされている必要があります。
DISABLE INSTANCEを指定すると、指定したデータベース・インスタンスにマップされたスレッドを使用禁止にできます。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップされているスレッドがない場合、エラーが戻されます。データベースは、オープンされている必要がありますが、指定したスレッドを使用しているインスタンスでデータベースをマウント済の場合は、そのスレッドを使用禁止にできません。
以前のリリースでは、スレッドを使用可能/使用禁止にすることができました。この句は現在使用されていません。同じ目的のためにENABLE | DISABLE INSTANCE句を使用でき、使用方法も簡単なためです。ENABLE | DISABLE THREAD句は、下位互換性を保つためにのみサポートされています。
RENAME GLOBAL_NAMEを指定すると、データベースのグローバル名を変更できます。databaseには、データベースの新しい名前を8バイト以内の長さで指定します。オプションのdomainには、ネットワーク階層におけるデータベースの有効な位置を指定します。データベースは、オープンされている必要があります。
ブロック・チェンジ・トラッキング機能を使用すると、Oracleデータベースは、すべてのデータベース更新の物理的な場所を追跡できます。この情報は、ブロック・チェンジ・トラッキング・ファイルという別のファイルに保持されます。Oracle Managed Filesを使用している場合、Oracleデータベースは、DB_CREATE_FILE_DESTで指定した場所にブロック・チェンジ・トラッキング・ファイルを自動的に作成します。Oracle Managed Filesを使用していない場合、チェンジ・トラッキング・ファイルの名前を指定する必要があります。Oracleデータベースは、増分バックアップのパフォーマンス向上などの内部タスクのために、チェンジ・トラッキング・データを使用します。ブロック・チェンジ・トラッキングを使用可能にする場合、データベースは、ARCHIVELOGモードまたはNONARCHIVELOGモードで、オープンされているかマウント済である必要があります。
この句を指定すると、ブロック・チェンジ・トラッキングが使用可能になり、Oracleデータベースによってブロック・チェンジ・トラッキング・ファイルが作成されます。
USING FILE 'filename'を指定すると、ブロック・チェンジ・トラッキング・ファイルの名前を(Oracleデータベースが生成するのではなく)自分で指定できます。Oracle Managed Filesを使用していない場合、この句を指定する必要があります。
REUSEを指定すると、同じ名前の既存のブロック・チェンジ・トラッキング・ファイルを上書きできます。
この句を指定すると、Oracleデータベースによるチェンジ・トラッキングを停止し、既存のブロック・チェンジ・トラッキング・ファイルを削除できます。
|
参照:
ブロック・チェンジ・トラッキングの設定の詳細は、『Oracle Databaseバックアップおよびリカバリ基礎』および「ブロック・チェンジ・トラッキングを使用可能および使用禁止にする例:」を参照してください。 |
この句を使用すると、データベースをFLASHBACKモードにしたり、そのモードから戻すことができます。この句を指定できるのは、データベースがARCHIVELOGモードであり、データベースのフラッシュ・リカバリ領域をすでに準備している場合のみです。この句は、データベースがマウントされているがオープンされていない場合に指定できます。
この句を使用すると、データベースはFLASHBACKモードになります。データベースがFLASHBACKモードのとき、Oracleデータベースは、フラッシュ・リカバリ領域に自動的にフラッシュバック・データベース・ログを作成し、これを管理します。その後、SYSDBAシステム権限を持つユーザーは、FLASHBACK DATABASE文を発行できます。
この句を使用すると、データベースはFLASHBACKモードから戻されます。Oracleデータベースは、フラッシュバック・データのロギングを停止し、既存のすべてのフラッシュバック・データベース・ログを削除します。FLASHBACK DATABASEを発行すると、エラーが発生して実行できません。
この句のセマンティクスは、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(GUARD)を使用すると、データベースのデータが変更されないように保護できます。現行のセッションでこの設定を上書きするには、ALTER SESSION DISABLE GUARD文を使用します。詳細は、「ALTER SESSION」を参照してください。
ALLを指定すると、SYS以外のすべてのユーザーが、データベースの内容を変更できなくなります。
STANDBYを指定すると、SYS以外のすべてのユーザーは、論理スタンバイで管理されるデータベース・オブジェクトを変更できなくなります。この設定は、論理スタンバイによってレプリケートされる前に、データをレポート操作によって変更できるようにする場合に便利です。
NONEを指定すると、データベースのすべてのデータについて、通常のセキュリティを設定できます。
次の文は、データベースを読取り専用モードでオープンします。
ALTER DATABASE OPEN READ ONLY;
次の文は、データベースを読み書き両用モードでオープンし、オンラインREDOログを消去します。
ALTER DATABASE OPEN READ WRITE RESETLOGS;
次の文は、パラレル・リカバリ処理を使用して表領域のリカバリを行います。
ALTER DATABASE RECOVER TABLESPACE tbs_03 PARALLEL;
次の文は、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ログ・ファイル・グループに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 ANY DIMENSIONシステム権限が必要です。
ディメンションは、常に所有者の権限で変更されます。
(level_clause::=、hierarchy_clause::=、attribute_clause::=、extended_attribute_clause::=を参照)
次のキーワード、パラメータおよび句の意味は、ALTER DIMENSIONに対してのみ有効です。その他のキーワード、パラメータおよび句には、CREATE DIMENSION文での機能と同じ機能があります。詳細は、「CREATE DIMENSION」を参照してください。
変更するディメンションのスキーマを指定します。schemaを指定しない場合、ディメンションは自分のスキーマ内にあるとみなされます。
ディメンション名を指定します。ディメンションは、すでに存在している必要があります。
ADD句を使用すると、ディメンションにレベル、階層または属性を追加できます。これらの要素の1つを追加しても、既存のマテリアライズド・ビューは無効になりません。
ADD LEVEL句は、他のADD句より前に処理されます。
DROP句を使用すると、ディメンションからレベル、階層または属性を削除できます。指定するすべてのレベル、階層または属性は、すでに存在している必要があります。
1つの属性で、1つのレベルに関連付けられている1つ以上のレベルと列の関係を削除できます。
属性または階層がレベルを参照する場合は、すべての参照している属性および階層を削除するか、またはCASCADEを指定しないかぎり、このレベルを削除することはできません。
CASCADEを指定すると、レベルを参照する属性または階層をレベルとともに削除できます。
RESTRICTを指定すると、属性または階層が参照するレベルを削除しないようにOracleデータベースに指示できます。これはデフォルトです。
COMPILEを指定すると、無効のディメンションを明示的に再コンパイルできます。ADD句またはDROP句が発行されると、ディメンションは自動的にコンパイルされます。ただし、ディメンションが参照するオブジェクトを変更する(たとえば、ディメンションで参照された表を削除した後再作成する)と、ディメンションが無効になるため、これを明示的に再コンパイルする必要があります。
次の例は、サンプル・スキーマshのcustomers_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文を使用すると、ディスク・グループまたはディスク・グループ内のディスクに対して多数の操作を実行できます。
|
参照:
|
この文を発行するには、SYSDBAシステム権限が必要です。また、この文を発行する自動ストレージ管理インスタンスが起動されている必要があります。変更するディスク・グループはマウントされている必要があります。
SYSOPERロールで実行可能なALTER DISKGROUP操作は、diskgroup_availability_clause、balance_diskgroup_clauseおよびcheck_diskgroup_clauseです。
(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::=を参照)
(size_clause::=を参照)
(size_clause::=を参照)
(qualified_template_clause::=を参照)
この句を使用すると、ディスク・グループ内の1つ以上のディスクを操作できます。
変更するディスク・グループの名前を指定します。既存のディスク・グループの名前を確認するには、V$ASM_DISKGROUP動的パフォーマンス・ビューを問い合せます。
この句を使用すると、ディスク・グループに1つ以上のディスクを追加し、新しく追加したディスクの属性を指定できます。この操作を実行すると、自動ストレージ管理によって、自動的にディスク・グループの均衡が再調整されます。
この句を使用して、ディスクの障害グループを変更することはできません。これを行うには、ディスク・グループからディスクを削除した後で、新しい障害グループの一部として、ディスク・グループにディスクを再度追加します。
ディスク・グループの既存のディスク名を確認するには、V$ASM_DISK動的パフォーマンス・ビューを問い合せます。
この句を使用すると、新しく追加したディスクを障害グループに割り当てることができます。この句を省略して、標準または高冗長性ディスク・グループにディスクを追加すると、Oracleデータベースは、新しく追加されたディスクを自動的に障害グループに追加します。障害グループの暗黙的な名前は、オペレーティング・システムに依存しないディスク名と同じです(「NAME句」を参照)。
外部冗長性ディスク・グループを作成している場合、この句は指定できません。
この句のセマンティクスは、CREATE DISKGROUP文およびALTER DISKGROUP文で同じです。この句の詳細は、「CREATE DISKGROUP」の「qualified_disk_clause」を参照してください。
この句を使用すると、ディスク・グループから1つ以上のディスクを削除できます。
DROP DISK句を使用すると、ディスク・グループから1つ以上のディスクを削除し、自動的にディスク・グループの均衡を再調整できます。ディスクを削除すると、自動ストレージ管理によって、ディスクのすべてのデータが再配置され、ディスクをディスク・グループから除外するためにディスク・ヘッダーが消去されます。
DROP DISKS IN FAILGROUP句を使用すると、指定した障害グループからすべてのディスクを削除できます。他の動作は、DROP DISK句と同じです。
これらのキーワードを使用すると、ディスクがディスク・グループから除外されたとみなされるタイミングを指定できます。デフォルト設定であるNOFORCEを使用することをお薦めします。
NOFORCEを指定すると、自動ストレージ管理によって、ディスクのすべてのエクステントが他のディスクに再配置された後で、ディスク・グループからそのディスクが除外され、ディスク・グループの均衡が再調整されます。
注意:
DROP DISK ... NOFORCEを指定すると、ディスクが安全に再利用される前またはディスクがシステムから削除される前に、制御がユーザーに戻ります。ディスクの削除操作が完了したことを確認するには、V$ASM_DISKビューを問い合せて、HEADER_STATUSの値がFORMERであることを確認します。STATEの値がDROPPINGの場合は、ディスクの削除や再利用はしないでください。V$ASM_OPERATIONビューを問い合せると、ディスクの削除によって実行される均衡の再調整に必要な時間の概略がわかります。
REBALANCE...WAIT(「rebalance_diskgroup_clause」を参照)も指定すると、均衡の再調整操作が完了しディスクがクリアされるまで、この文は戻りません。ただし、予想外のイベントによって均衡の再調整が失敗することがあるため、V$ASM_DISKのHEADER_STATUS列がFORMERになっていることを必ず確認してください。
FORCEを指定すると、ディスクは、ディスク・グループからすぐに除外されます。次に、他のディスク上の冗長コピーからデータが再構築され、そのデータが他のディスクに再配置されて、ディスク・グループの均衡が再調整されます。FORCE句は、削除するディスクを自動ストレージ管理で読み取れなくなった場合などに便利です。ただし、FORCE句は、NOFORCEによる削除より長い時間がかかり、ファイルの一部の保護が低下することがあります。外部冗長性ディスク・グループにはFORCEを指定できません。自動ストレージ管理では、ディスク上に冗長データが存在しない場合、ディスクを削除する前にそのディスクからデータを読み取る必要があるためです。
FORCEやNOFORCEを指定したかどうかにかかわらず、ディスクを削除する際の均衡の再調整操作には時間がかかります。進捗を監視するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。均衡の再調整操作の詳細は、「rebalance_diskgroup_clause」を参照してください。
この句を使用すると、ディスク・グループ内の1つ以上のディスクの新しいサイズを指定できます。この句は、オペレーティング・システムによって戻されるサイズや、以前にディスクに指定したサイズを上書きします。
この句を指定すると、ディスク・グループ内のすべてのディスクのサイズ変更操作を実行できます。
この句を指定すると、指定したディスクのみのサイズを変更できます。
この句を指定すると、指定した障害グループ内のすべてのディスクのサイズを変更できます。
ディスクのサイズをKB、MB、GBまたはTB単位で指定します。ディスク容量を超えるサイズは指定できません。ディスク容量よりも小さいサイズを指定した場合、自動ストレージ管理で使用されるディスク容量が制限されます。この句を省略した場合、自動ストレージ管理ではオペーティング・システムによって戻されたサイズが使用されます。
この句を使用すると、ディスク・グループからのディスクの削除を取り消すことができます。1つ以上のディスク・グループ内のすべてのディスク(diskgroup_nameを指定)、またはすべてのディスク・グループ内のすべてのディスク(ALLを指定)の保留中の削除を取り消すことができます。
ディスク・グループから完全に削除されたディスクや、完全に削除されたディスク・グループに対しては、この句は無効です。この句を指定すると、実行時間が長い操作が行われます。操作の状態を確認するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。
この句を使用すると、ディスク・グループ全体に対して操作を実行できます。
この句を使用すると、ディスク・グループの均衡を手動で再調整できます。自動ストレージ管理では、すべてのドライブ間で均等にデータ・ファイルが再分散されます。記憶域構成が変化すると、自動ストレージ管理によって、ファイルが均等に配置され、ディスク・グループの均衡が自動的に再調整されるため、この句が必要なことはほとんどありません。ただし、POWER句を使用して均衡の自動再調整操作の速度を制御する場合、この句は便利です。
POWER句には、0〜11の値を指定します。0を指定すると均衡の再調整操作は停止し、11を指定すると自動ストレージ管理による均衡の再調整は最高速度で実行されます。POWER句に指定する値のデフォルトは、ASM_POWER_LIMIT初期化パラメータの値です。
POWER句を省略すると、自動ストレージ管理による均衡の自動および指定の再調整操作は、ASM_POWER_LIMIT初期化パラメータの値に基づいて実行されます。
この句を使用すると、制御を、均衡の再調整操作のどの段階でユーザーに戻すか指定できます。
WAITを指定すると、ディスクを追加または削除するスクリプトは、ディスク・グループの均衡が再調整されるのを待機してからユーザーに制御を戻します。WAITモードで実行している再調整操作は、明示的に終了させることができます。ただし、その場合、同じ文で完了しているディスクの追加操作や削除操作が元に戻ることはありません。
NOWAITは、文の発行後すぐに制御をユーザーに戻す場合に指定します。これはデフォルトです。
均衡の再調整操作の進捗を監視するには、V$ASM_OPERATION動的パフォーマンス・ビューを問い合せます。
|
参照:
ディスク・グループの均衡の再調整の詳細は、 |
check_diskgroup_clausesを使用すると、自動ストレージ管理ディスク・グループのメタデータの内部一貫性を検証できます。ディスク・グループは、マウントされている必要があります。自動ストレージ管理によってサマリー・エラーが表示され、検出されたエラーの詳細がアラート・ログに書き込まれます。
この句を使用すると、ディスク・グループ内のすべてのディスクとファイルをチェックできます。
この句を使用すると、ディスク・グループ内の1つ以上の指定したディスクをチェックできます。
この句を使用すると、指定した障害グループ内のすべてのディスクをチェックできます。
この句を使用すると、ディスク・グループ内の1つ以上の指定したファイルをチェックできます。ファイル名の参照書式のいずれかを使用する必要があります。自動ストレージ管理のファイル名の参照書式の詳細は、「ASM_filename」を参照してください。
この句を使用すると、一貫性チェックで検出されたエラーを修正するかどうかを自動ストレージ管理に指示できます。デフォルトはREPAIRです。NOREPAIR設定は、非一貫性が検出された場合には警告を受け取るが、自動ストレージ管理による修正処理を自動的に行わない場合に便利です。
テンプレートは、属性の名前付きコレクションです。ディスク・グループを作成すると、自動ストレージ管理によって、システムの一連の初期デフォルト・テンプレートがそのディスク・グループに関連付けられます。テンプレートで定義される属性は、そのディスク・グループ内のすべてのファイルに適用されます。次の表に、システムのデフォルト・テンプレートと、様々な種類のファイルに適用される属性を示します。表の後に説明するdiskgroup_template_clausesを使用すると、テンプレートの属性を変更して、新しいテンプレートを作成できます。
ディスク・グループ・ファイルを作成した後は、この句を使用して属性を変更することはできません。これを行うには、Recovery Manager(RMAN)を使用して、新しい属性を持つ新しいファイルにそのファイルをコピーする必要があります。
この句を使用すると、ディスク・グループに1つ以上の名前付きテンプレートを追加できます。既存のテンプレート名を確認するには、V$ASM_TEMPLATE動的パフォーマンス・ビューを問い合せます。
この句を使用すると、システムのデフォルト・ディスク・グループ・テンプレートまたはユーザー定義のディスク・グループ・テンプレートの属性を変更できます。指定した属性のみが変更されます。指定していないプロパティは、現在の値のまま変更されません。
追加または変更するテンプレートの名前を指定します。テンプレート名には、データベース・スキーマ・オブジェクトと同じネーミング規則および制限が適用されます。データベース・オブジェクト名の詳細は、「スキーマ・オブジェクトのネーミング規則」を参照してください。
新しく追加または変更するテンプレートの冗長性レベルを指定します。
UNPROTECTED: このテンプレートが適用されるファイルは、自動記憶域管理によってメディア障害から保護されません。システムのアクションまたはユーザー・コマンドによってディスクがオフラインになると、保護されていないファイルが失われる可能性があります。外部冗長性ディスク・グループには、UNPROTECTEDのみが有効な設定です。高冗長性ディスク・グループのテンプレートには、UNPROTECTEDを指定することはできません。標準または高冗長性ディスク・グループでは、保護されていないファイルを使用しないことをお薦めします。
MIRROR: このテンプレートが適用されるファイルは、データ・ブロックのミラー化によって保護されます。標準冗長性ディスク・グループでは、プライマリ・エクステントごとに1つのミラー・エクステントが存在します(双方向ミラー化)。高冗長性ディスク・グループでは、プライマリ・エクステントごとに2つのミラー・エクステントが存在します(3方向ミラー化)。外部冗長性ディスク・グループのテンプレートには、MIRRORを指定することはできません。
このテンプレートが適用されるファイルのストライプ化の方法を指定します。
この句を使用すると、ディスク・グループから1つ以上のテンプレートを削除できます。この句で削除できるのはユーザー定義テンプレートのみであり、システム・デフォルト・テンプレートは削除できません。
自動ストレージ管理ファイル名の別名(「diskgroup_alias_clauses」を参照)を作成する前に、別名が存在する場所の完全なディレクトリ構造を指定する必要があります。diskgroup_directory_clausesを使用すると、そのようなディレクトリ構造を作成および操作できます。
この句を使用すると、階層的に名付けられた別名の新しいディレクトリ・パスを作成できます。ディレクトリの各コンポーネントを区切るには、スラッシュ(/)を使用します。各ディレクトリ・コンポーネントの最大長は48バイトであり、スラッシュ文字を含むことはできません。コンポーネントの最初または最後の文字に空白を使用することはできません。ディレクトリ・パス全体の長さは、256バイトから、このディレクトリに作成する別名(「diskgroup_alias_clauses」を参照)の長さを引いた長さを超えることはできません。
この句を使用すると、階層的に名付けられた別名のディレクトリを削除できます。FORCEが指定されていないかぎり、自動ストレージ管理では、別名の定義を含むディレクトリは削除されません。この句は、システム別名の一部として作成されたディレクトリの削除には無効です。そのようなディレクトリは、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列にYという値が示されています。
この句を使用すると、階層的に名付けられた別名のディレクトリ名を変更できます。この句は、システム別名の一部として作成されたディレクトリ名の変更には無効です。そのようなディレクトリは、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列にYという値が示されています。
自動ストレージ管理ファイルが暗黙的またはユーザー指定によって作成されると、そのファイルには、ドット付きの数値の組で終わる完全修飾名が割り当てられます(「file_specification」を参照)。diskgroup_alias_clausesを使用すると、自動ストレージ管理ファイル名に、よりわかりやすい別名を作成できます。ドット付きの数値の組で終わる別名は指定できません。このような書式を使用すると、自動ストレージ管理ファイル名と区別できないためです。
この句を指定する前に、まずネーミング規則に従ってディレクトリ構造を作成する必要があります(「diskgroup_directory_clauses」を参照)。別名全体の長さは最大256バイトです(ディレクトリの接頭辞を含む)。別名では大/小文字は区別されませんが、大/小文字の区別は保持されます。
この句を使用すると、自動ストレージ管理ファイル名の別名を作成できます。alias_nameには、ディレクトリのフルパスと別名を指定します。自動ストレージ管理の既存の別名を確認するには、V$ASM_ALIAS動的パフォーマンス・ビューを問い合せます。自動ストレージ管理ファイル名の詳細は、「ASM_filename」を参照してください。
この句を使用すると、ディスク・グループ・ディレクトリから別名を削除できます。各別名には、ディレクトリのフルパスと別名を指定します。別名が参照する元のファイルは変更されません。
この句を使用すると、既存の別名を変更できます。alias_nameには、ディレクトリのフルパスと別名を指定します。
システム生成された別名を削除したり、名前を変更することはできません。別名がシステム生成されたものかどうかを確認するには、V$ASM_ALIAS動的パフォーマンス・ビューのSYSTEM_CREATED列を問い合せます。
この句を使用すると、ディスク・グループからファイルを削除できます。自動ストレージ管理によって、削除するファイルに関連付けられたすべての別名も削除されます。ファイル名の参照書式のいずれかを使用する必要があります。ほとんどの自動ストレージ管理ファイルはOracle Managed Filesであり、不要になると自動的に削除されるため、手動で削除する必要はありません。自動ストレージ管理のファイル名の参照書式の詳細は、「ASM_filename」を参照してください。
この句を使用すると、自動ストレージ管理インスタンスと同じノードで実行されているデータベース・インスタンスに対して、1つ以上のディスク・グループを使用可能または使用禁止にできます。この句は、クラスタ内の他のノードのディスク・グループの状態には影響しません。
MOUNTを指定すると、ローカル自動ストレージ管理インスタンスのディスク・グループをマウントできます。ALL MOUNTを指定すると、ASM_DISKGROUPS初期化パラメータで指定されたすべてのディスク・グループがマウントされます。ファイル操作は、ディスク・グループがマウントされている場合のみ可能です。
DISMOUNTを指定すると、指定したディスク・グループをディスマウントできます。FORCEが指定されていないかぎり、ディスク・グループのいずれかのファイルがオープンされていると、エラーが戻されます。ALL DISMOUNTを指定すると、現在マウントされているすべてのディスク・グループがディスマウントされます。ファイル操作は、ディスク・グループがマウントされている場合のみ可能です。
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 PROCEDURE」と似ています。ファンクションおよびプロシージャの再コンパイルの詳細は、『Oracle Database概要』を参照してください。
この文を使用して既存のファンクションの宣言や定義を変更することはできません。ファンクションを再宣言または再定義する場合は、OR REPLACE句を指定してCREATE FUNCTION文を使用します。「CREATE FUNCTION」を参照してください。
ファンクションが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。
ファンクションが含まれているスキーマを指定します。schemaを指定しない場合、ファンクションは自分のスキーマ内にあるとみなされます。
再コンパイルするファンクション名を指定します。
COMPILEを指定すると、ファンクションを再コンパイルできます。COMPILEキーワードは必須です。ファンクションが正常にコンパイルされない場合、SQL*PlusコマンドSHOW ERRORSを使用すると、関連するコンパイラ・エラー・メッセージが表示されます。
再コンパイル中、Oracleデータベースはすべての永続コンパイラのスイッチ設定を削除し、セッションからそれらを再び取得してコンパイルの終了時に格納します。この手順を回避するには、REUSE SETTINGS句を指定します。
DEBUGを指定すると、PL/SQLコンパイラに対して、PL/SQLデバッガ用のコードを生成および格納するように指示できます。この句を指定すると、compiler_parameters_clauseでPLSQL_DEBUG = TRUEを指定するのと同じ効果が得られます。
この句を使用すると、永続的なPL/SQLコンパイラ・パラメータのいずれかの値を指定できます。コンパイル時のこれらの初期化パラメータの値は、ユニットのメタデータとともに格納されます。このようなパラメータの値は、適切な*_PLSQL_OBJECT_SETTINGSビューを問い合せて確認できます。永続的なPL/SQLパラメータには、PLSQL_OPTIMIZE_LEVEL、PLSQL_CODE_TYPE、PLSQL_DEBUG、PLSQL_WARNINGS、PLSQL_CCFLAGSおよびNLS_LENGTH_SEMANTICSがあります。
それぞれの文で、各パラメータを1度のみ指定できます。各設定は、コンパイル中の現行のライブラリ・ユニットに対してのみ有効であり、このセッションまたはシステムの他のコンパイルには影響しません。セッションまたはシステム全体に対してパラメータの値を設定するには、ALTER SESSION文またはALTER SYSTEM文を使用する必要があります。
この句にいずれかのパラメータを指定せずにREUSE SETTINGSを指定した場合、このライブラリ・ユニットの以前のコンパイルでそのパラメータに値が指定されていると、Oracleデータベースはその以前の値を使用します。パラメータを指定しなかった場合、REUSE SETTINGSを指定しないか、またはこのライブラリ・ユニットの以前のコンパイルでそのパラメータに値が指定されていないと、データベースはセッション環境からそのパラメータの値を取得します。
DEBUGを指定している場合、PLSQL_DEBUGパラメータの値を設定できません。この2つの句は両方ともPLSQL_DEBUGパラメータを設定するためです。各パラメータに値を指定できるのは1度のみです。
REUSE SETTINGSを指定すると、Oracleによるコンパイラ・スイッチ設定の削除および再取得を回避できます。この句では既存の設定が保持され、文の他の場所で値が指定されていないパラメータの再コンパイルにその設定が使用されます。
下位互換性を保つために、Oracleデータベースは、この文によって設定されるPLSQL_CODE_TYPEパラメータおよびPLSQL_DEBUGパラメータの値を反映して、PLSQL_COMPILER_FLAGS初期化パラメータに永続的に格納される値を設定します。
次の文は、サンプル・ユーザーoeが所有するファンクションget_balを明示的に再コンパイルします。
ALTER FUNCTION oe.get_bal COMPILE;
get_balの再コンパイル時にコンパイル・エラーが発生しなければ、get_balは有効になります。その後、Oracleデータベースは、実行時にそれを再コンパイルしなくても実行できます。get_balの再コンパイル時にコンパイル・エラーが発生した場合はエラーが戻され、get_balは無効のままです。
また、get_balに依存しているすべてのオブジェクトが無効になります。その後、明示的に再コンパイルせずに、これらのオブジェクトを参照した場合、Oracleデータベースは、実行時にそれらを暗黙的に再コンパイルします。
ALTER INDEX文を使用すると、既存の索引を変更または再作成できます。
索引が自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY INDEXシステム権限が必要です。
MONITORING USAGE句を実行する場合は、索引は自分のスキーマ内に存在する必要があります。
ドメイン索引を変更する場合は、索引の索引タイプに対してEXECUTEオブジェクト権限が必要です。
スキーマ・オブジェクト権限は、個々の索引パーティションまたはサブパーティションではなく、親索引に付与されている必要があります。
索引パーティションの変更、再作成または分割、索引サブパーティションの変更または再作成を行う場合は、表領域割当て制限が必要です。
(deallocate_unused_clause::=、allocate_extent_clause::=、shrink_clause::=、parallel_clause::=、physical_attributes_clause::=、logging_clause::=、rebuild_clause::=、alter_index_partitioning::=を参照)
(size_clause::=を参照)
(size_clause::=を参照)
(storage_clause::=を参照)
(parallel_clause::=、physical_attributes_clause::=、key_compression::=、logging_clause::=を参照)
(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::=を参照)
(physical_attributes_clause::=、logging_clause::=を参照)
(parallel_clause::=を参照)
(parallel_clause::=を参照)
(deallocate_unused_clause::=、allocate_extent_clause::=、physical_attributes_clause::=、logging_clause::=、key_compression::=を参照)
(parallel_clause::=を参照)
(segment_attributes_clause::=、key_compression::=を参照)
(physical_attributes_clause::=、logging_clause::=を参照)
(allocate_extent_clause::=、deallocate_unused_clause::=を参照)
索引が含まれているスキーマを指定します。schemaを指定しない場合、索引は自分のスキーマ内にあるとみなされます。
変更する索引の名前を指定します。
索引の変更には、次の制限事項があります。
indexがドメイン索引である場合は、PARAMETERS句、RENAME句、rebuild_clause(PARAMETERS句の有無に関係なく)、parallel_clauseまたはUNUSABLE句のみ指定できます。その他のすべての句は無効です。
LOADINGまたはFAILEDのマークが付いているドメイン索引は、変更または名前の変更ができません。索引にFAILEDのマークが付いている場合、REBUILD句のみ指定できます。deallocate_unused_clause句を使用すると、索引の終わりの未使用領域の割当てを明示的に解除し、解放された領域が表領域内の他のセグメントで使用可能になります。
indexがレンジ・パーティションまたはハッシュ・パーティションである場合、各索引パーティションの未使用領域の割当てが解除されます。indexがコンポジット・パーティション表のローカル索引である場合、各索引サブパーティションの未使用領域の割当てが解除されます。
領域の割当て解除には、次の制限事項があります。
この句の詳細は、「deallocate_unused_clause」を参照してください。
KEEP句を使用すると、割当てを解除した後に索引に残す、最高水位標を超えるバイト数を指定できます。残りのエクステント数がMINEXTENTSより少ない場合、MINEXTENTSは現行のエクステント数に設定されます。初期エクステントがINITIALより小さくなると、INITIALは初期エクステントの現行の値に設定されます。KEEPを指定しないと、すべての未使用領域が解放されます。
この句の詳細は、「ALTER TABLE」を参照してください。
allocate_extent_clauseを使用すると、索引の新しいエクステントを明示的に割り当てることができます。ハッシュ・パーティション表のローカル索引に対して、新規エクステントが索引の各パーティションに割り当てられます。
この句は、一時表の索引、レンジ・パーティションまたはコンポジット・パーティション索引に対して指定できません。
この句の詳細は、「allocate_extent_clause」を参照してください。
この句を使用すると、索引セグメントを縮小化できます。ALTER INDEX ... SHRINK SPACE COMPACTを指定することは、ALTER INDEX ...COALESCEを指定することと同じです。
この句の詳細は、「CREATE TABLE」の「shrink_clause」を参照してください。
この句は、ビットマップ結合索引またはファンクション索引に対して指定できません。
PARALLEL句を使用すると、索引の問合せおよびDMLに対するデフォルトの並列度を変更できます。
この句は、一時表の索引に対して指定できません。
この句の詳細は、「CREATE TABLE」の「parallel_clause」を参照してください。
physical_attributes_clauseを使用すると、非パーティション索引、パーティション索引のすべてのパーティションおよびサブパーティション、指定されたパーティション、または指定されたパーティションのすべてのサブパーティションに対するパラメータの値を変更できます。
索引の物理属性には、次の制限事項があります。
PCTUSEDパラメータを指定できません。
PCTFREEパラメータは、rebuild_clause、modify_index_default_attrs句またはsplit_partition_clauseの一部としてのみ指定できます。
storage_clauseを使用すると、非パーティション索引、索引パーティション、またはパーティション索引のすべてのパーティションの記憶域パラメータ、あるいはパーティション索引の記憶域パラメータのデフォルト値を変更できます。この句の詳細は、「storage_clause」を参照してください。
logging_clauseを使用すると、索引のロギング属性を変更できます。REBUILD句も指定すると、この新しい設定は再構築操作に影響します。REBUILD句でロギングに異なる値を指定した場合、索引および再構築操作のロギング属性として指定された最後のロギング値が使用されます。
索引セグメントには、実表の属性と異なるロギング属性、および同じ実表の他の索引セグメントと異なるロギング属性を指定できます。
この句は、一時表の索引に対して指定できません。
|
参照:
|
これらのキーワードは以前のリリースのもので、それぞれLOGGINGおよびNOLOGGINGに置き換えられています。RECOVERABLEおよびUNRECOVERABLEは、下位互換性のためにサポートされていますが、LOGGINGおよびNOLOGGINGキーワードを使用することをお薦めします。
RECOVERABLEは、パーティション表またはLOBの記憶特性の作成時には無効なキーワードです。UNRECOVERABLEは、パーティション表または索引構成表の作成時には無効なキーワードです。また、CREATE INDEXのAS副問合せ句を使用してのみ指定できます。
rebuild_clauseを使用すると、既存の索引、あるいはパーティションまたはサブパーティションのいずれかを再構築できます。索引にUNUSABLEのマークが付いている場合、正常に再構築するとUSABLEになります。ファンクション索引も使用可能にします。索引の基になるファンクションが存在しない場合、再構築文は正常に実行されません。
索引の再構築には、次の制限事項があります。
INVALIDのマークが付いているビットマップ索引は再構築できません。制約を削除してからそれを再作成する必要があります。
PARTITION句で説明するとおり、各パーティションまたはサブパーティションを再構築する必要があります。
deallocate_unused_clauseとrebuild_clauseを指定することはできません。
ALTER INDEX)またはパーティション(ALTER INDEX ... MODIFY PARTITION)に対して、PCTFREEパラメータ値を変更できません。ALTER INDEX文の他のすべての形式では、PCTFREEを指定できます。
ALTER INDEX ... REBUILD PARTITIONでローカル索引のパーティションを再構築できます。
TABLESPACEのみです。
PARTITION句を使用すると、索引の1つのパーティションを再構築できます。この句は、索引パーティションを別の表領域に移動したり、作成時の物理属性を変更するために使用できます。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。
この句は、コンポジット・パーティション表のローカル索引に対して指定できません。かわりに、REBUILD SUBPARTITION句を使用してください。
SUBPARTITION句を使用すると、索引の1つのサブパーティションを再構築できます。この句を使用して、索引サブパーティションを他の表領域に移動することもできます。TABLESPACEを指定しないと、サブパーティションは同じ表領域に再構築されます。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。
索引のサブパーティションの変更には、次の制限事項があります。
索引ブロックのバイトを逆順に格納するかどうかを示します。
REVERSEを指定すると、索引の再構築時に、索引ブロックのバイトが逆順で格納され、ROWIDが除外されます。
NOREVERSEを指定すると、索引の再構築時に、逆順にせずに索引ブロックのバイトが格納されます。NOREVERSEキーワードを指定せずにREVERSE索引を再構築すると、再構築された索引は、逆キーの索引になります。
逆索引には、次の制限事項があります。
parallel_clauseを使用すると、索引の再構築をパラレル化できます。
再構築された索引、索引パーティションまたは索引サブパーティションが格納される表領域を指定します。デフォルトは、再構築の前に索引またはパーティションが格納されていた表領域です。
COMPRESSを指定すると、キー列値の繰返し項目を排除するキー圧縮が使用可能になります。integerを使用して、接頭辞の長さ(圧縮する接頭辞列数)を指定します。
非パーティション索引(一意でない索引または2列以上の一意索引)のみが圧縮されます。
NOCOMPRESSを指定すると、キー圧縮が使用禁止になります。これはデフォルトです。
COMPRESSは、ビットマップ索引に対して指定できません。
ONLINEを指定すると、表またはパーティションのDML操作を索引の再構築中に可能にするかどうかを指定できます。
オンライン索引には、次の制限事項があります。
ONLINEを指定し、パラレルDML文を発行すると、エラーが戻されます。
ONLINEを指定できません。
この句は現在使用されていません。現在、Oracleデータベースでは、索引の作成および再構築中に統計情報が自動的に収集されます。この句は下位互換性を保つためにサポートされており、エラーを発生させることはありません。
ドメイン索引にこの句は指定できません。
ALTER INDEX ... REBUILD操作をログに記録するかどうかを指定します。
この句の詳細は、「logging_clause」を参照してください。
PARAMETERS句は、ドメイン索引のみに適用されます。この句は、未解析のまま適切なODCI索引タイプ・ルーチンに渡すパラメータ文字列を指定します。パラメータ文字列の最大長は1,000文字です。
索引全体を変更または再構築する場合、文字列は索引レベルのパラメータを参照する必要があります。索引のパーティションを再構築する場合、文字列はパーティション・レベルのパラメータを参照する必要があります。
indexにUNUSABLEのマークが付いている場合、パラメータを変更するのみではUSABLEにはなりません。UNUSABLEのマークが付いた索引を使用可能にするには、その索引を再構築する必要があります。
Oracle Textがインストール済の場合、Oracle Text固有のパラメータを使用するOracle Textのドメイン索引を再構築することができます。パラメータの詳細は、『Oracle Textリファレンス』を参照してください。
PARAMETERS句には、次の制限事項があります。
indexにIN_PROGRESSまたはFAILEDのマークが付いておらず、IN_PROGRESSのマークが付いた索引パーティションが存在せず、変更対象のパーティションにFAILEDのマークが付いていない場合にのみ、索引パーティションを変更できます。ENABLEは、索引が使用するユーザー定義ファンクションが削除または置換されたために使用禁止になったファンクション索引のみに適用されます。次の条件が該当する場合、この句によって、このような索引が使用可能になります。
ENABLEと同じ文には、ALTER INDEXの他の句を指定できません。
DISABLEは、ファンクション索引のみに適用されます。この句を使用してファンクション索引を使用禁止にします。たとえば、ファンクションの本体を処理する場合に、これを行います。その後、ENABLEキーワードを使用して、索引を再構築、または別のALTER INDEX文を指定できます。
UNUSABLEを指定すると、索引、索引パーティションまたは索引サブパーティションにUNUSABLEのマークを付けることができます。使用禁止の索引を使用可能にする場合、再構築するか、または削除して再作成する必要があります。1つのパーティションにUNUSABLEのマークが付いている場合も、同じ索引の他のパーティションは有効です。その索引を必要とする文が使用禁止のパーティションにアクセスしない場合、その文を実行できます。また、使用禁止のパーティションは、分割または名前を変更してから再構築できます。
この句は、一時表の索引に対して指定できません。
この句を指定すると、索引の名前を変更できます。new_index_nameは単一の識別子で、スキーマ名は含まれません。
ドメイン索引の場合、indexおよびindexのパーティションにIN_PROGRESSまたはFAILEDのマークが付いていると無効になります。
COALESCEを指定すると、ブロックを再利用するために、索引ブロックの内容を空きブロックにマージできます(可能な場合)。
索引ブロックの結合には、次の制限事項があります。
ALTER TABLEのCOALESCE句を使用します。
参照:
この句を使用すると、索引の使用を監視するかどうかを決定できます。
MONITORING USAGEを指定すると、索引の監視が開始されます。まず、索引の使用に関する既存の情報が削除され、ALTER INDEX ... NOMONITORING USAGE文が次に実行されるまで、索引の使用が監視されます。
NOMONITORING USAGEを指定すると、索引の監視を終了できます。
このALTER INDEX ... NOMONITORING USAGE文が発行された後、索引が使用されたかどうかを調べるには、V$OBJECT_USAGE動的パフォーマンス・ビューのUSED列を問い合せます。
UPDATE BLOCK REFERENCES句は、索引構成表の通常のドメイン索引に対してのみ有効です。この句を指定すると、主キーによって識別されるブロックの適切なデータベース・アドレスとともに索引行の一部として格納され、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。
ドメイン索引では、AlterIndexUpdBlockRefsに設定されたalter_optionパラメータでODCIIndexAlterルーチンが実行されます。このルーチンはカートリッジ・コードを使用可能にし、失効したと推測される索引のデータ・ブロック・アドレスを更新します。
この句をALTER INDEXの他の句と組み合せることはできません。
ALTER INDEX文のパーティション化句は、パーティション索引に対してのみ有効です。
ブロック・サイズが異なる表領域のパーティション化されたデータベース・エンティティの記憶域には、制限事項があります。これらの制限事項については、『Oracle Database管理者ガイド』を参照してください。
索引のパーティション変更には、次の制限事項があります。
ALTER INDEX文にまとめることはできますが(RENAMEおよびREBUILDは除く)、パーティション操作を、他のパーティション操作またはベース索引に対する操作と組み合せることはできません。
パーティション索引のデフォルト属性に新しい値を指定します。
ハッシュ・パーティション表のグローバル索引、またはハッシュ・パーティション表やコンポジット・パーティション表の索引の属性には、TABLESPACEのみを指定できます。
索引の新規パーティション、または索引パーティションのサブパーティションに対して、デフォルトの表領域を指定します。
パーティション索引または索引パーティションのデフォルトのロギング属性を指定します。
この句の詳細は、「logging_clause」を参照してください。
FOR PARTITION句を使用すると、コンポジット・パーティション表にあるローカル索引のパーティションのサブパーティションに対して、デフォルトの属性を指定できます。
リスト・パーティションに対してFOR PARTITIONを指定することはできません。
この句を使用すると、ハッシュ・パーティション・グローバル索引にパーティションを追加できます。Oracleデータベースは、ハッシュ・パーティションを追加し、ハッシュ・ファンクションによって索引の既存のハッシュ・パーティションから再ハッシュされた索引エントリをそのハッシュ・パーティションに移入します。パーティション名を省略すると、SYS_Pnの形式でパーティション名が割り当てられます。TABLESPACE句を省略すると、その索引に対して指定された表領域にパーティションが配置されます。索引の表領域が指定されていない場合、パーティションは、ユーザーのデフォルトの表領域(指定されている場合)またはシステムのデフォルトの表領域に配置されます。
modify_index_partition句を使用すると、索引パーティションpartitionまたはそのサブパーティションの実物理属性、ロギング属性または記憶特性を変更できます。ハッシュ・パーティション・グローバル索引の場合、この句に指定できる副次句はUNUSABLEのみです。
この句を指定すると、ブロックを再利用するために、索引パーティション・ブロックの内容を空きブロックにマージできます(可能な場合)。
UPDATE BLOCK REFERENCES句は、索引構成表の通常の索引に対してのみ有効です。この句を使用すると、2次索引パーティションに格納されている、失効したと推測されるすべてのデータ・ブロック・アドレスを更新することができます。
この句には、次の制限事項があります。
physical_attributes_clauseを指定することはできません。
ALTER INDEXの他の句とともに、UPDATE BLOCK REFERENCESを指定することはできません。索引パーティションに対するこの句の機能は、索引全体の場合と同じです。詳細は、「UNUSABLE句」を参照してください。
この句は、コンポジット・パーティション索引に対してのみ有効です。この句を使用すると、パーティションおよびそのパーティションのすべてのサブパーティションの圧縮属性を変更できます。Oracleデータベースは、パーティション内の各索引サブパーティションにUNUSABLEのマークを付けます。その後、これらのサブパーティションを再構築する必要があります。パーティションにキー圧縮を指定するには、まず表にキー圧縮を指定しておく必要があります。この句は、パーティション・レベルでのみ指定できます。個々のサブパーティションの圧縮属性は変更できません。
非コンポジット索引パーティションにもこの句を指定できます。ただし、非コンポジット・パーティションには、再構築と圧縮属性の設定を1つの手順で行うrebuild_clauseを使用する方が効率的です。
rename_index_partition句を使用すると、索引パーティションまたは索引サブパーティションの名前をnew_nameに変更できます。
索引パーティションの名前の変更には、次の制限事項があります。
indexにIN_PROGRESSまたはFAILEDのマークを付けることはできません。また、パーティションにIN_PROGRESS、名前を変更するパーティションにFAILEDのマークを付けることはできません。drop_index_partition句を使用すると、グローバル・パーティション索引からパーティションとその中のデータを削除できます。グローバル索引のパーティションを削除する場合、その索引の次のパーティションにUNUSABLEのマークが付けられます。グローバル索引の最上位のパーティションは削除できません。
split_index_partition句を使用すると、レンジ・パーティション・グローバル索引のパーティションを2つのパーティションに分割し、新しいパーティションを索引に追加できます。この句は、ハッシュ・パーティション・グローバル索引に対しては無効です。かわりに、add_hash_index_partition句を使用してください。
UNUSABLEのマークが付いたパーティションを分割すると、2つのパーティションが生成されますが、その両方にUNUSABLEのマークが付けられます。このようなパーティションは、使用前に再構築する必要があります。
使用可能なパーティションを分割した場合、索引データが入っている2つのパーティションが生成されます。両方の新規パーティションは使用可能です。
split_partition_1に新しい上限(境界は含まない)を指定します。value_listの値は、partition_name_oldの分割前のパーティション境界より小さく、その次の最小のパーティション(そのようなパーティションがある場合)のパーティション境界より大きい値である必要があります。
分割の結果、生成される2つのパーティションの名前と物理属性を任意に指定します。
この句は、ハッシュ・パーティション・グローバル索引に対してのみ有効です。索引パーティションの数が1つ減少します。結合するパーティションは、ハッシュ・ファンクションの要件に基づいて選択されます。この句を使用するのは、選択されたパーティションの索引エントリを残りのパーティションのいずれかに分散した後で、その選択されたパーティションを削除する場合です。
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は、「索引パーティションの削除例:」で削除されています。最初の文は、索引パーティションp2にUNUSABLEのマークを付けます。
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;
次の文は、パーティション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(「レンジ・パーティション・グローバル索引の作成例:」で作成)をp2aとp2bに分割します。
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 ANY INDEXTYPEシステム権限が必要です。
新しい演算子を追加する場合は、その演算子に対するEXECUTEオブジェクト権限が必要です。
実装タイプを変更する場合は、新しい実装タイプに対するEXECUTEオブジェクト権限が必要です。
(using_type_clause::=を参照)
(array_DML_clause::=を参照)
索引タイプが存在するスキーマ名を指定します。schemaを指定しない場合、索引タイプが自分のスキーマ内にあるとみなされます。
変更する索引タイプの名前を指定します。
ADDまたはDROP句を使用すると、演算子を追加または削除できます。
削除には特別な権限は必要ありません。
schemaには、演算子が含まれているスキーマを指定します。schemaを指定しない場合、その演算子は自分のスキーマにあるとみなされます。
operatorには、索引タイプによってサポートされる演算子の名前を指定します。この句に指定するすべての演算子は有効な演算子である必要があります。
parameter_typeには、演算子へのパラメータ・タイプを指定します。
USING句を使用すると、索引タイプを実装する新しいタイプを指定できます。
この句を使用すると、ODCIIndexInsertメソッドで配列インタフェースをサポートする索引タイプを変更できます。
索引付けする列のデータ型がユーザー定義のオブジェクト型である場合、この句を指定して、Oracleがtypeの列値を保持するために使用するVARRAYのvarray_typeを識別する必要があります。索引タイプで型のリストがサポートされている場合、対応するVARRAY型のリストを指定できます。typeまたはvarray_typeでschemaを省略した場合、型が自分のスキーマ内に定義されているとみなされます。
索引付けする列のデータ型が組込みシステム型である場合、その索引タイプに指定されたVARRAY型は、システムで定義されたODCI型よりも優先されます。
この句を使用すると、索引タイプを明示的に再コンパイルできます。通常、索引タイプは自動的に再コンパイルされるため、この句は一部のアップグレード操作の後でのみ指定する必要があります。
次の例は、position_indextype索引タイプ(「索引タイプの作成例:」で作成)をコンパイルします。
ALTER INDEXTYPE position_indextype COMPILE;
ALTER JAVA文を使用すると、Javaクラス・スキーマ・オブジェクトの変換、またはJavaソース・スキーマ・オブジェクトのコンパイルを強制実行できます(Java名に対するすべての外部参照を他のクラスと対応付ける前に、Javaクラスのメソッドをコールすることはできません)。
Javaソースまたはクラスが自分のスキーマ内にある必要があります。自分のスキーマ内にない場合は、ALTER ANY PROCEDUREシステム権限が必要です。さらに、Javaクラスに対するEXECUTEオブジェクト権限も必要です。
ALTER JAVA SOURCEを使用すると、Javaソース・スキーマ・オブジェクトをコンパイルできます。
ALTER JAVA CLASSを使用すると、Javaソース・スキーマ・オブジェクトを変換できます。
以前作成したJavaクラスまたはソース・スキーマ・オブジェクトを指定します。小文字、または大文字と小文字を組み合せた名前を付けるには、二重引用符を使用してください。
RESOLVER句を使用すると、Javaクラスまたはソースが作成されたときに指定したマッピング・ペアを使用して、完全に指定された参照用のJava名に対するスキーマの検索方法を指定できます。
RESOLVEおよびCOMPILEは、同義のキーワードです。これらの句を使用すると、プライマリJavaクラス・スキーマ・オブジェクトの変換を指定できます。
invoker_rights_clauseを使用すると、クラスを定義したユーザーのスキーマ内で、そのユーザーの権限を使用してクラスのメソッドを実行するか、または、CURRENT_USERのスキーマ内で、そのユーザーの権限を使用してクラスのメソッドを実行するかを指定できます。
また、この句は、問合せ、DML操作、およびその型のメンバー・ファンクションおよびプロシージャ内の動的SQL文の外部名の変換方法も定義します。
CURRENT_USERを指定すると、クラスのメソッドがCURRENT_USER権限で実行されることを指定できます。この句はデフォルトで、実行者権限クラスを作成します。
また、この句は、問合せ、DML操作、および動的SQL文の外部名をCURRENT_USERのスキーマで変換することも指定します。他のすべての文における外部名は、メソッドを含むスキーマで変換します。
DEFINERを指定すると、クラスを定義したユーザーの権限を使用してそのクラスのメソッドを実行できます。
さらに、メソッドのあるスキーマ内で外部名を変換するかどうかを指定します。
次の文は、Javaクラスを強制変換します。
ALTER JAVA CLASS "Agent" RESOLVER (("/usr/bin/bfile_dir/*" pm)(* public)) RESOLVE;
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|