ALTER SYSTEM

目的

ALTER SYSTEM文を使用すると、Oracle Databaseインスタンスを動的に変更できます。この設定は、データベースがマウントされているかぎり有効です。

マルチテナント・コンテナ・データベース(CDB)でALTER SYSTEM文を使用する場合、CDB全体を変更する句および特定のプラガブル・データベース(PDB)を変更する句を指定できます。

関連項目:

CDBでのALTER SYSTEM文の使用方法の詳細は、『Oracle Database管理者ガイド』を参照してください。

前提条件

RELOCATE CLIENT句を指定するには、AS SYSASMとして認証されている必要があります。

他をすべての句を指定するには、ALTER SYSTEMシステム権限が必要です。

CDBに接続しているときには、次の条件が適用されます。

  • CDB全体を変更する場合は、現在のコンテナがルートである必要があります。また、共通に付与されているALTER SYSTEM権限が必要です。

  • PDBを変更する場合は、現在のコンテナがそのPDBである必要があります。また、ALTER SYSTEM権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。

構文

archive_log_clause::=

checkpoint_clause::=

check_datafiles_clause::=

distributed_recov_clauses::=

end_session_clauses::=

quiesce_clauses::=

rolling_migration_clauses::=

rolling_patch_clauses::=

security_clauses::=

affinity_clauses::=

set_encryption_key::=

shutdown_dispatcher_clause::=

alter_system_set_clause::=

set_parameter_clause::=

alter_system_reset_clause::=

cancel_sql_clause::=

セマンティクス

archive_log_clause

archive_log_clauseを使用すると、REDOログ・ファイルを手動でアーカイブしたり、自動アーカイブを使用可能または使用禁止にすることができます。この句を使用する場合、インスタンスでデータベースをマウントする必要があります。特に指定がないかぎり、データベースはオープンまたはクローズできます。

INSTANCE句

この句が関係するのは、Oracle Real Application Clusters(Oracle RAC)を使用している場合のみです。REDOログ・ファイル・グループをアーカイブするインスタンスの名前を指定します。インスタンス名は最大80文字の文字列です。指定したインスタンスにマップするスレッドはOracle Databaseによって自動的に決定され、対応するREDOログ・ファイル・グループがアーカイブされます。指定したインスタンスにマップされているスレッドがない場合、エラーが戻されます。

SEQUENCE句

SEQUENCEを指定すると、指定したスレッド内のログ順序番号integerによって識別されるオンラインREDOログ・ファイル・グループを手動でアーカイブできます。THREADパラメータを指定しなかった場合、インスタンスに割り当てられているスレッドから、指定したグループがアーカイブされます。

CHANGE句

CHANGEを指定すると、指定されたスレッド内の、integerで指定されたシステム変更番号(SCN)を持つREDOログ・エントリが格納されているオンラインREDOログ・ファイル・グループを、手動でアーカイブできます。このSCNが現行のREDOログ・ファイル・グループ内にある場合は、ログ・スイッチが実行されます。THREADパラメータを省略した場合は、使用可能な状態にあるすべてのスレッドから、このSCNが含まれているグループがアーカイブされます。

インスタンスでデータベースをオープンしている場合にのみ、この句を使用できます。

CURRENT句

CURRENTを指定すると、ログ・スイッチを強制的に発生させ、指定したスレッドの現行のREDOログ・ファイル・グループを手動でアーカイブできます。THREADパラメータを指定しない場合、すべての使用可能なスレッドから、現行のログ以前のログも含むすべてのREDOログ・ファイル・グループがアーカイブされます。データベースがオープンしているときのみ、CURRENTを指定できます。

NOSWITCH

NOSWITCHを指定すると、ログ・スイッチの強制実行なしで現行のREDOログ・ファイル・グループを手動でアーカイブできます。この設定は、プライマリ・データベースが停止したときに、データ分岐が発生しないようにするために、主にスタンバイ・データベースで使用されます。データ分岐は、プライマリ・データベースに障害が発生した場合に、データが消失する可能性があることを意味します。

インスタンスでデータベースがマウントされているがオープンされていない場合にのみ、NOSWITCH句を使用できます。データベースがオープンしている場合は、この操作によってデータベースは自動的にクローズされます。再オープンする前にデータベースを手動で停止する必要があります。

GROUP句

GROUPを指定すると、GROUPの値がintegerで指定した値に等しいオンラインREDOログ・ファイル・グループを手動でアーカイブできます。REDOログ・ファイル・グループのGROUP値を判別するには、動的パフォーマンス・ビューV$LOGを問い合せます。THREADパラメータとGROUPパラメータの両方を指定する場合は、指定したREDOログ・ファイル・グループが指定したスレッド内に含まれている必要があります。

LOGFILE句

LOGFILEを指定すると、filenameで指定した名前のREDOログ・ファイル・メンバーが含まれるオンラインREDOログ・ファイル・グループを手動でアーカイブできます。THREADパラメータとLOGFILEパラメータの両方を指定する場合は、指定したREDOログ・ファイル・グループが指定したスレッド内に含まれている必要があります。

データベースがバックアップ制御ファイルでマウントされている場合は、USING BACKUP CONTROLFILEを指定し、現行のログ・ファイルを含むすべてのオンライン・ログ・ファイルのアーカイブを許可します。

LOGFILE句の制限事項

REDOログ・ファイル・グループは、入力された順序でアーカイブする必要があります。LOGFILEパラメータを使用してREDOログ・ファイル・グループのアーカイブを指定した場合、それ以前のREDOログ・ファイル・グループがアーカイブされていないとエラー・メッセージが戻ります。

NEXT句

NEXTを指定すると、一杯になってもアーカイブされていない次のオンラインREDOログ・ファイル・グループを、指定したスレッドから手動でアーカイブできます。THREADパラメータを指定しない場合、使用可能な任意のスレッド上の、アーカイブされていない最初のREDOログ・ファイル・グループがアーカイブされます。

ALL句

ALLを指定すると、一杯になってもアーカイブされていないすべてのオンラインREDOログ・ファイル・グループを、指定したスレッドから手動でアーカイブできます。THREADパラメータを指定しない場合、使用可能なすべてのスレッドから、一杯でアーカイブされていないすべてのREDOログ・ファイル・グループがアーカイブされます。

TO location

TO 'location'を指定すると、REDOログ・ファイル・グループがアーカイブされる位置を指定できます。このパラメータの値には、オペレーティング・システムの規則に従って、ファイルの位置を完全に指定する必要があります。このパラメータを指定しない場合、REDOログ・ファイル・グループは初期化パラメータLOG_ARCHIVE_DESTまたはLOG_ARCHIVE_DEST_nに指定された場所に格納されます。

checkpoint_clause

CHECKPOINTを指定すると、チェックポイントを明示的に強制処理して、コミット済のトランザクションによる変更をディスク上のデータファイルに書き込むことができます。インスタンスでデータベースがオープンしている場合にのみ、この句を指定できます。チェックポイントが完了するまで、ユーザーに制御は戻りません。

GLOBAL

Oracle Real Application Clusters (Oracle RAC)環境で、データベースをオープンしているすべてのインスタンスに対してチェックポイントを実行します。これはデフォルトです。

LOCAL

Oracle RAC環境で、文を発行するインスタンスのREDOログ・ファイル・グループのスレッドに対してのみチェックポイントを実行します。

check_datafiles_clause

Oracle RAC環境などの分散データベース・システムで、データベース制御ファイルからインスタンスのSGAを更新し、すべてのオンライン・データファイルに情報を反映します。

  • GLOBALを指定すると、データベースをオープンしているすべてのインスタンスに対して、この同期化を実行できます。これはデフォルトです。

  • LOCALを指定すると、ローカル・インスタンスに対してのみこの同期化を実行できます。

インスタンスでデータベースをオープンしておく必要があります。

distributed_recov_clauses

DISTRIBUTED RECOVERY句を使用すると、分散リカバリを使用可能または使用禁止にできます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。

ENABLE

ENABLEを指定すると、分散リカバリを有効にできます。シングルプロセス環境では、分散リカバリを開始する場合にこの句を使用する必要があります。

トランザクションに関係があるリモート・ノードにアクセスできない場合、インダウト・トランザクションをリカバリするには、ENABLE DISTRIBUTED RECOVERY文を複数回発行する必要がある場合もあります。インダウト・トランザクションは、データ・ディクショナリ・ビューDBA_2PC_PENDINGに表示されます。

DISABLE

DISABLEを指定すると、分散リカバリを無効にできます。

FLUSH SHARED_POOL句

FLUSH SHARED_POOL句を指定すると、システム・グローバル領域(SGA)の共有プール上のデータが消去されます。共有プールは次のものを格納します。

  • キャッシュされたデータ・ディクショナリ情報

  • SQL文の共有SQL領域、共有PL/SQL領域、ストアド・プロシージャ、ファンクション、パッケージおよびトリガー

この文は、グローバル・アプリケーション・コンテキスト情報を消去せず、また現在実行中のアイテムで共有SQL領域およびPL/SQL領域を消去しません。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。

FLUSH GLOBAL CONTEXT句

FLUSH GLOBAL CONTEXT句を指定すると、すべてのグローバル・アプリケーション・コンテキスト情報がシステム・グローバル領域(SGA)の共有プール上からフラッシュされます。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。

FLUSH BUFFER_CACHE句

FLUSH BUFFER_CACHE句を指定すると、KEEPRECYCLEおよびDEFAULTバッファ・プールを含め、システム・グローバル領域(SGA)のバッファ・キャッシュ上のすべてのデータを消去できます。

ローカル・インスタンスのみをフラッシュする場合は、LOCALを指定します。すべてのインスタンスのバッファ・キャッシュをフラッシュするには、GLOBALを指定します。GLOBALがデフォルトです。

ノート:

この句は、テスト・データベース上のみで使用することを目的としています。この句を本番データベース上で使用しないでください(この文を実行すると、それ以降の問合せでは結果が何も戻されなくなるため)。

この句は、リライトされた問合せ、または同一の開始点からの一連の問合せのパフォーマンスを測定する必要がある場合に有効です。

FLUSH FLASH_CACHE句

FLUSH FLASH_CACHE句を使用すると、データベース・スマート・フラッシュ・キャッシュをフラッシュできます。この句は、リライトされた問合せまたは同一の開始点からの一連の問合せのパフォーマンスを測定する必要がある場合、またはキャッシュに破損がある可能性がある場合に有効です。

ローカル・インスタンスのみをフラッシュする場合は、LOCALを指定します。すべてのインスタンスのフラッシュ・キャッシュをフラッシュするには、GLOBALを指定します。GLOBALがデフォルトです。

FLUSH REDO句

FLUSH REDO句を指定すると、プライマリ・データベースからスタンバイ・データベースにREDOデータをフラッシュできます。また、オプションで、フラッシュされたREDOデータがフィジカル・スタンバイ・データベースまたはロジカル・スタンバイ・データベースに適用されるのを待機することもできます。

この句により、プライマリ・データベースが生成したすべてのREDOデータをスタンバイ・データベースにフラッシュできれば、プライマリ・データベースがデータ非消失データ保護モードでない場合でも、データを失うことなくターゲット・スタンバイ・データベースにフェイルオーバーを実行できます。

FLUSH REDO句は、マウントされている(ただし、オープンされていない)プライマリ・データベースで発行する必要があります。

target_db_name

target_db_nameには、プライマリ・データベースからフラッシュされるREDOデータを受け取るスタンバイ・データベースのDB_UNIQUE_NAMEを指定します。

ターゲット・スタンバイ・データベースに対応するLOG_ARCHIVE_DEST_nデータベース初期化パラメータの値は、DB_UNIQUE_NAME属性を含む必要があります。また、その属性の値は、ターゲット・スタンバイ・データベースのDB_UNIQUE_NAMEに一致する必要があります。

NO CONFIRM APPLY

この句を指定すると、スタンバイ・データベースがフラッシュされたすべてのREDOデータを受け取るまで、ALTER SYSTEM文は完了しません。ターゲット・スタンバイ・データベースがスナップショット・スタンバイ・データベースである場合は、この句を指定する必要があります。

CONFIRM APPLY

この句を指定すると、ターゲット・スタンバイ・データベースがフラッシュされたすべてのREDOデータを受け取って適用するまで、ALTER SYSTEM文は完了しません。これは、NO CONFIRM APPLYを指定しない場合のデフォルトの動作です。ターゲット・スタンバイ・データベースがスナップショット・スタンバイ・データベースである場合は、この句を指定できません。

関連項目:

FLUSH REDO句およびフェイルオーバーの詳細は、『Oracle Data Guard概要および管理』を参照してください。

FLUSH PASSWORDFILE_METADATA_CACHE

パスワード・ファイルの名前または場所を変更する場合は、その変更が起こるデータベースに通知する必要があります。コマンドALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHEは、SGAに格納されているパスワード・ファイルのメタデータ・キャッシュをフラッシュし、変更があったことをデータベースに通知します。

クラスタ環境で実行されている場合には、このコマンドでRACインスタンスすべてからもキャッシュがフラッシュされます。全インスタンス間で変更の伝播に時間がかかることもあります。フラッシュが完全に伝播されるまでは、一部のインスタンスで古いパスワード・ファイルが使い続けられる可能性があります。

end_session_clauses

end_session_clausesを使用すると、現行のセッションを終了することができます。

DISCONNECT SESSION句

DISCONNECT SESSION句を使用すると、専用サーバー・プロセス(共有サーバーによって接続が確立されていた場合は、仮想回路)を破棄することによって、現行のセッションが切断されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。次の両方の値をV$SESSIONビューで確認して、このセッションを識別する必要があります。

  • session_idには、SID列の値を指定します。

  • serial_numberには、SERIAL#列の値を指定します。

システム・パラメータを適切に設定した場合、アプリケーション・フェイルオーバーが有効になります。

  • POST_TRANSACTIONを設定すると、セッションが切断される前に、実行中のトランザクションを完了できます。セッションに実行中のトランザクションがない場合、この句は、後述のKILL SESSIONと同様の効果があります。

  • IMMEDIATEを設定すると、実行中のトランザクションの完了を待たずにセッションを切断し、すぐにセッション全体の状態をリカバリできます。

    • POST_TRANSACTIONを指定した場合、セッションに実行中のトランザクションがあれば、IMMEDIATEキーワードは無視されます。

    • POST_TRANSACTIONを指定しない場合、またはPOST_TRANSACTIONを指定していてもセッションに実行中のトランザクションがない場合、この句は、後述のKILL SESSION IMMEDIATEと同様の効果があります。

KILL SESSION句

KILL SESSION句を指定すると、セッションの状態は終了済となり、実行中のトランザクションがロールバックされ、すべてのセッション・ロックが解放され、セッション・リソースの部分的リカバリが行われます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。integer3を指定しない場合は、自セッションおよび終了されるセッションは、同じインスタンスにある必要があります。次の値をV$SESSIONビューで確認して、このセッションを識別する必要があります。

  • session_idには、SID列の値を指定します。

  • serial_numberには、SERIAL#列の値を指定します。

  • オプションのinstance_idには、終了されるターゲット・セッションが存在するインスタンスのIDを指定します。GV$表を問い合せることによって、インスタンスIDを確認することができます。

完了する必要があるアクティビティ(リモート・データベースからの応答の待機やトランザクションのロールバックなど)がセッションで実行されている場合、Oracle Databaseはそのアクティビティが完了するのを待機し、セッションに終了のマークを付けてから、ユーザーに制御を戻します。待機が数分間続く場合、セッションに終了予定のマークが付けられ、セッションに終了予定のマークを付けたというメッセージとともにユーザーに制御が戻されます。アクティビティが完了すると、PMONバックグラウンド・プロセスは、セッションに終了済のマークを付けます。

セッションに実行中のトランザクションがあるかどうかにかかわらず、セッション・ユーザーがセッションに要求を発行してセッションが終了されたことを示すメッセージを受け取るまで、Oracle Databaseは、セッション全体の状態をリカバリしません。

IMMEDIATE

IMMEDIATEを指定すると、実行中のトランザクションをロールバックしてすべてのセッション・ロックを解放し、セッション全体の状態をリカバリしてから、すぐにユーザーに制御を戻すようにOracle Databaseに指示できます。

TIMEOUTが指定されていない場合、IMMEDIATEはただちに制御を戻すことに注意してください。

IMMEDIATEは、アクティビティが完了するまで待機するという点で、修飾子なしでセッションが削除された場合と似ています。アクティビティが完了すると、セッション・ユーザーを待たずに全セッションが削除され、接続がクローズされます。

FORCE

FORCEIMMEDIATEに似ていますが、タイムアウトが発生するとFORCEによって接続が強制的に終了される点が異なります。

ALTER SYSTEM KILL SESSION '20,1' FORCE;

NOREPLAY

この句は、アプリケーション・コンティニュイティを使用している場合に有効です。アプリケーション・コンティニュイティが有効なサービスに接続しているとき(つまり、FAILOVER_TYPE = TRANSACTION)、セッションが失敗したり強制終了されると、セッションがリカバリされます。終了したセッションをリカバリする必要がない場合は、NOREPLAYを指定します。

TIMEOUT

セッションを終了するまでに待機する最大時間(秒)を設定するには、TIMEOUTを指定します。デフォルトのタイムアウトをオーバーライドします。

現在のデフォルトのタイムアウト値は次のとおりです:

  • 修飾子が指定されていない場合は60秒

  • 修飾子IMMEDIATEが指定されている場合は0秒

  • 修飾子FORCEが指定されている場合は5秒

TIMEOUTで発生するアクションは、終了のセッションをマークするIMMEDIATEと、セッションを強制的に終了するFORCEで異なります。

ALTER SYSTEM KILL SESSION '20,1' TIMEOUT 20;

SWITCH LOGFILE句

SWITCH LOGFILE句を指定すると、現行のREDOログ・ファイル・グループのファイルが一杯であるかどうかにかかわらず、新しいREDOログ・ファイル・グループへの書込みを明示的かつ強制的に開始できます。ログ・スイッチを強制的に発生させると、チェックポイントが実行されますが、チェックポイントが完了する前に、すぐに制御が戻されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。

SUSPEND | RESUME

SUSPEND句を指定すると、すべてのI/O(データファイル、制御ファイルおよびファイル・ヘッダー)および問合せを停止し、すべてのインスタンスで実行中のトランザクションを処理せずにデータベースのコピーが作成可能になります。

SUSPENDおよびRESUMEの制限事項

SUSPENDおよびRESUMEには、次の制限事項があります。

  • ホット・バックアップ・モードでデータベースの表領域を確保するまで、この句は使用できません。

  • ALTER SYSTEM SUSPEND文を発行したセッションは終了しないでください。システムが一時停止しているときに再接続しようとすると、SYSログイン中に実行される再帰的SQLが原因となって接続が失敗することがあります。

  • システムが停止中に新しいインスタンスを起動する場合、この新しいインスタンスは停止しません。

RESUME句を指定すると、問合せおよびI/Oに対して、再度、データベースが使用可能になります。

quiesce_clauses

QUIESCE RESTRICTED句およびUNQUIESCE句を使用すると、データベースを静止状態にしたり、静止状態から戻すことができます。この状態では、データベース管理者は、トランザクション、問合せまたはPL/SQL操作が同時に存在する状態では安全に実行できない管理操作を実行することができます。

ノート:

QUIESCE RESTRICTED句は、データベース・リソース・マネージャがインストールされている場合、およびデータベースをオープンしたインスタンスでデータベースが起動された後、リソース・マネージャが継続的にアクティブになっている場合のみ有効です。

複数のQUIESCE RESTRICTED文またはUNQUIESCE文が異なるセッションまたはインスタンスで同時に発行された場合、1つを除いた他のすべてのセッションまたはインスタンスにエラーが戻されます。

QUIESCE RESTRICTED

QUIESCE RESTRICTEDを指定すると、データベースを静止状態にできます。この句は、データベースがオープン中のすべてのインスタンスに次の影響を与えます。

  • Oracle Databaseは、すべてのインスタンスのデータベース・リソース・マネージャに、アクティブでないすべてのセッション(SYSおよびSYSTEM以外)をアクティブにしないように指示します。SYSおよびSYSTEM以外のユーザーは、新しいトランザクション、問合せ、フェッチまたはPL/SQL操作を開始できません。

  • Oracle Databaseは、すべてのインスタンスの既存のトランザクションのうち、起動したユーザーがSYSでもSYSTEMでもないものがすべて終了(コミットまたは異常終了)するまで待機します。また、Oracle Databaseは、すべてのインスタンスの実行中の問合せ、フェッチおよびPL/SQLプロシージャのうち、開始したユーザーがSYSでもSYSTEMでもなく、トランザクション内にもないものがすべて完了するまで待機します。連続する複数のOCIのフェッチによって問合せが実行される場合、Oracle Databaseはすべてのフェッチが終了するまで待機しません。現行のフェッチが終了するまで待機し、次のフェッチの実行をブロックします。さらに、Oracle Databaseは、エンキューなどの共有リソースを保持するセッション(SYSおよびSYSTEMのものを除く)すべてがそのリソースを解放するまで待機します。これらの操作がすべて完了すると、データベースが静止状態になり、QUIESCE RESTRICTED文の実行が終了します。

  • 共有サーバー・モードでインスタンスを実行している場合、Oracle Databaseは、SYSまたはSYSTEM以外のユーザーがそのインスタンスにログインすることを阻止するようにデータベース・リソース・マネージャに指示します。非共有サーバー・モードでインスタンスを実行している場合、そのインスタンスへのユーザー・ログインに制限はありません。

静止状態中、すべてのインスタンスにおいてリソース・マネージャのプランは変更できません。

UNQUIESCE

UNQUIESCEを指定すると、データベースを静止状態から戻すことができます。これによって、SYSまたはSYSTEM以外のユーザーによって開始された、トランザクション、問合せ、フェッチおよびPL/SQLプロシージャを再開できます。UNQUIESCE文は、QUIESCE RESTRICTED文を発行したセッションと同じセッションで起動する必要はありません。

rolling_migration_clauses

クラスタ化されたOracle Automatic Storage Management (Oracle ASM)環境内でこれらの句を使用すると、Oracle ASMクラスタまたはストレージにOracle ASMを使用するデータベース・クラスタの全体的な可用性に影響することなく、ノードを一度に1つずつ別のOracle ASMバージョンに移行できます。

START ROLLING MIGRATION

ローリング・アップグレードを開始するときに、ASM_versionについて、次の文字列を指定する必要があります。

'<version_num>, <release_num>, <update_num>,<port_release_num>,<port_update_num>'

ASM_versionは、11.1.0.0.0以上である必要があります。一重引用符で囲む必要があります。次に、Oracle ASMは、最初に、指定されたリリースへの移行について現在のリリースに互換性があることを確認し、制限された機能モードになります。Oracle ASMは、次に、クラスタ内で均衡の再調整処理が進行中かどうかを確認します。そのような操作がある場合、文は失敗し、均衡の再調整操作の完了後に文を再発行する必要があります。

ローリング・アップグレード・モードは、クラスタ全体でインメモリーに永続的に保持される状態です。クラスタは、少なくとも1つのOracle ASMインスタンスがクラスタ内で実行中になるまで、この状態であり続けます。クラスタに参加する新しいインスタンスは、起動時にすぐに移行モードに切り替わります。クラスタ内のすべてのインスタンスが終了すると、この後にOracle ASMインスタンスを起動しても、この文を再発行してOracle ASMインスタンスのローリング・アップグレードを再開するまでは、ローリング・アップグレード・モードにはなりません。

STOP ROLLING MIGRATION

この句を使用すると、ローリング・アップグレードを停止して、クラスタを通常の操作に戻すことができます。クラスタ内のすべてのインスタンスが同じソフトウェア・バージョンに移行した後にのみ、この句を指定します。クラスタがローリング・アップグレード・モードではない場合、文は失敗します。

この句を指定すると、クラスタのすべてのメンバーが同じソフトウェア・バージョンであることの検証が行われ、Oracle ASMインスタンスのローリング・アップグレード・モードが解除され、Oracle ASMクラスタの機能が完全に元に戻ります。ディスクがオフラインであるために均衡の再調整操作が保留中の場合、操作は再起動されます。ただし、そのような再起動によってASM_POWER_LIMITパラメータに違反することにならない場合にかぎります。

関連項目:

ローリング・アップグレードの詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

rolling_patch_clauses

クラスタ化されたOracle Automatic Storage Management (Oracle ASM)環境内でこれらの句を使用すると、Oracle ASMクラスタまたはストレージにOracle ASMを使用するデータベース・クラスタの全体的な可用性に影響することなく、ノードを一度に最新のパッチ・レベルに更新できます。

START ROLLING PATCH

この句を使用すると、ローリング・パッチ操作を開始できます。Oracle ASMはクラスタ内のすべてのライブ・ノードが同じバージョンであることを検証してから、ローリング・パッチ・モードに移行します。このモードは、クラスタ全体でインメモリーに永続的に保持される状態です。クラスタは、すべてのライブ・ノードにパッチが適用されて最新のパッチ・レベルになるまで、この状態を保持します。

この操作中に停止していたノードにはパッチが適用されません。これは、ローリング・パッチ操作の成否には影響しません。ただし、これらのノードには開始される前にパッチを適用する必要があります。適用しないと、これらのノードがクラスタに参加できなくなります。

STOP ROLLING PATCH

この句を使用すると、ローリング・パッチ操作を停止して、クラスタを通常の操作に戻すことができます。この句は、クラスタ内のすべてのライブ・ノードに最新のパッチ・レベルまでパッチが適用されてから指定してください。クラスタがローリング・パッチ・モードではない場合は、文が失敗します。

この句を指定すると、Oracle ASMインスタンスのすべてのメンバーが同じパッチ・レベルであることが検証され、インスタンスのローリング・パッチ・モードが解除され、Oracle ASMクラスタのフル機能に戻ります。クラスタのいずれかのメンバーが同じパッチ・レベルでない場合、この操作は失敗し、クラスタは限定機能モードに移行します。

次に示す問合せは、ローリング・パッチの情報を表示します。これらの問合せを実行するには、Gridホーム内のOracle ASMインスタンスに接続している必要があります。また、Grid InfrastructureホームがOracle RAC環境用のOracle Clusterwareオプションを使用して構成されている必要があります。

  • クラスタがローリング・パッチ・モードであるかどうかを確認するには、次の問合せを使用します。

    SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CLUSTER_STATE') FROM DUAL;
    
  • クラスタのパッチ・レベルを確認するには、次の問合せを使用します。

    SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CURRENT_PATCHLVL') FROM DUAL;
    
  • Oracle ASMインスタンスに適用されているパッチのリストを表示するには、V$PATCHES動的パフォーマンス・ビューを問い合せます。詳細は、『Oracle Databaseリファレンス』を参照してください。

関連項目:

ローリング・パッチの詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。

security_clauses

security_clausesを使用すると、インスタンスへのアクセスを制御できます。また、インスタンスで暗号化されたデータへのアクセスを許可または禁止できます。

RESTRICTED SESSION

RESTRICTED SESSION句を指定すると、Oracle Databaseにログインできるユーザーを制限できます。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。

  • ENABLEを指定すると、RESTRICTED SESSIONシステム権限が付与されているユーザーのみがOracle Databaseにログインできます。既存のセッションは終了しません。

    この句は、現行のインスタンスのみに適用されます。そのため、Oracle RAC環境では、RESTRICTED SESSIONシステム権限を持たない認可済ユーザーも他のインスタンスでデータベースにアクセスできます。

  • DISABLEを指定すると、ENABLE RESTRICTED SESSION句の効果が逆になり、CREATE SESSIONシステム権限が付与されているすべてのユーザーがOracle Databaseにログオンできるようになります。これはデフォルトです。

関連項目:

セッションの制限: 例

SET ENCRYPTION WALLET句

この句を使用すると、データの透過的暗号化(TDE)のマスター暗号化キーへのデータベース・アクセスを管理できます。TDEのマスター暗号化キーは、外部セキュリティ・モジュール(暗号化ウォレットまたはハードウェア・セキュリティ・モジュール(HSM))に格納されています。

この文は、キーワードALTERで始まりますが、ALTER SYSTEM SET ENCRYPTION WALLET文はDDL句ではありません。ただし、このような文はロールバックすることはできません。

この句はSETキーワードで始まりますが、初期化パラメータの値を設定するためにSETキーワードの使用を許可するalter_system_set_clauseと混同しないでください。ENCRYPTION WALLETは、初期化パラメータではありません。

OPEN

この句を指定すると、データベースは指定したパスワードを使用してウォレットを開き、TDEマスター・キーをデータベース・メモリーにロードするか(このキーはインスタンスが存続している間有効)、HSMとの接続を確立するようになります(暗号化された表/表領域キーをHSMに送信して、復号化されたものを受け取るため)。

  • wallet_passwordを指定すると、暗号化ウォレットからマスター暗号化キーを取り出すことができます。ウォレットが使用できないか、すでに開いている場合は、データベースからエラーが戻ります。wallet_passwordは、二重引用符で囲む必要があります。

  • HSM_auth_stringを指定すると、HSMがアクセス可能になります。HSM_auth_stringの形式は"user_id:password"で、それぞれの意味は次のとおりです。

    • user_idは、HSM管理インタフェースを使用してデータベース用に作成されたユーザーIDです。

    • passwordは、HSM管理インタフェースを使用してユーザーIDに対して作成されたパスワードです。

    HSM_auth_stringを囲む二重引用符は必須です

CLOSE

この句を使用すると、データベースの暗号化と復号化を無効にできます。暗号化ウォレットを閉じるには、wallet_passwordが必要です。HSMへのアクセスを禁止するには、HSM_auth_stringが必要です。HSM_auth_stringを指定する方法の詳細は、「OPEN」 を参照してください。

自動オープン・ウォレットのみが存在する場合、自動オープン・ウォレットを閉じるためにパスワードは必要ありません。自動オープン・ウォレットと暗号化ウォレットの両方が開いている場合、自動オープン・ウォレットを閉じるためにパスワードが必要です。この場合、CLOSEでパスワードを指定すると、自動オープン・ウォレットと暗号化ウォレットが閉じます。

関連項目:

Oracle Real Application Clusters(Oracle RAC)環境での暗号化ウォレットの設定については、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください。

set_encryption_key

この句を使用すると、TDEマスター暗号化キーが存在しない場合に新規作成できます。既存のマスター・キーがHSMまたはキーストアにある場合は、この句を指定すると既存の表および表領域の新しいキーが生成され、したがってすべての表および表領域のキーが古いマスター・キーで復号化されて新しいマスター・キーで再度暗号化されます。

ALTER SYSTEM SET ENCRYPTION KEY文はDDL文です。この文は、スキーマ内で保留中のトランザクションを自動的にコミットします。

この句はSETキーワードで始まりますが、初期化パラメータの値を設定するためにSETキーワードの使用を許可するalter_system_set_clauseと混同しないでください。ENCRYPTION KEYは、初期化パラメータではありません。

IDENTIFIED BY wallet_password

この句を指定すると、暗号化データにアクセスするためのTDEマスター暗号化キーが暗号化ウォレットからメモリーにロードされます。

  • certificate_idが必要になるのは、PKI非対称型キー・ペアをマスター暗号化キーとして使用する場合です。証明書を表す整数を指定します。この値を見つけるには、V$WALLET動的パフォーマンス・ビューのCERT_ID列を問い合せます。デフォルトである対称型キーを使用する場合は、certificate_idを指定しないでください。

  • wallet_passwordには、セキュリティ・モジュールへの接続に使用するパスワードを指定します。

指定したcertificate_idまたはwallet_passwordが無効の場合は、データベース・エラーが戻されます。certificate_idおよびwallet_passwordを囲む二重引用符は必須です。

IDENTIFIED BY wallet_passwordの制限事項

統合マスター暗号化キーを含むPKIベースのマスター・キーは、TDE列の暗号化およびOracleウォレットでのみ使用でき、HSMでは使用できません。

Transparent Data Encryption (TDE)公開キー・インフラストラクチャ(PKI)キーはOracle Database 23cでサポートが終了しました

TDE PKIキーの非推奨は、Oracle Database 12cで発表されました。かわりに現在のTDEキーのいずれかを使用することをお薦めします。Oracle Database 23cをアップグレードする前に、ドキュメントに従って新しいTDEキーでデータベースのキー更新を行います。アップグレード・スクリプトによってTDEで使用されるPKIキーが検出された場合、スクリプトは停止し、アップグレードの前にTDEマスター・キーを更新するよう通知されます。

ノート:

透過的データ暗号化を構成するには、ADMINISTER KEY MANAGEMENT文を使用します。詳細は、Oracle Database Advanced Securityガイドを参照してください。

IDENTIFIED BY HSM_auth_string

この句は、HSM内部に格納されるマスター暗号化キーを作成します。マスター暗号化キーは、HSM内の表キーを暗号化または復号化するために使用されます。

HSM_auth_stringの形式は"user_id:password"で、それぞれの意味は次のとおりです。

  • user_idは、HSM管理インタフェースを使用してデータベース用に作成されたユーザーIDです。

  • passwordは、HSM管理インタフェースを使用してユーザーIDに対して作成されたパスワードです。

HSM_auth_stringを囲む二重引用符は必須です。

すでに透過的データ暗号化をOracleウォレットとともに使用している場合に、HSMに移行するには、MIGRATE USING wallet_password句を指定します。これによって、既存の表/表領域キーがいったん復号化され、新規作成されたHSMベースのマスター暗号化キーを使用して再び暗号化されます。ウォレットはHSMへの移行後も使用されることに注意してください(このウォレットには、エクスポート・ファイルやRMANバックアップに、あるいは一時またはUNDO表領域やREDOログ・ファイル内の暗号化データに使用されたマスター暗号化キーが格納されている可能性があるため)。移行後に、次のいずれかのステップを実行します。

  • ウォレット・パスワードをHSM_auth_stringに変更します(変更するにはOracle Wallet Managerまたはorapkiコマンドライン・ツールを使用)。

  • ローカルの自動オープン・ウォレットを暗号化ウォレットから作成し、その後で、暗号化ウォレットの名前を変更するか、sqlnet.oraENCRYPTION_WALLET_LOCATIONで指定されたディレクトリの外に移動します。暗号化ウォレットを削除したり、ウォレット・パスワードを忘れないよう注意してください。

関連項目:

  • mkstoreウォレット管理コマンドライン・ツールは、Oracle Database 23cでは非推奨であり、将来のリリースで削除される可能性があります。

    ウォレットを管理するには、orapkiコマンドライン・ツールの使用をお薦めします。

  • ENCRYPTION_WALLET_LOCATIONパラメータは非推奨です。今後は、静的な初期化パラメータWALLET_ROOTと、動的な初期化パラメータTDE_CONFIGURATIONを使用することをお薦めします。

  • 透過的データ暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。

  • この機能を利用して表の列を暗号化する方法の詳細は、「CREATE TABLE」の「encryption_spec」を参照してください。

  • ウォレットおよび暗号化キーの確立: 例

affinity_clauses

affinity_clausesを使用して、データ依存型ルーティングでRACデータベースに対するキャッシュ・アフィニティを提供できるようにします。アフィニティにより、データの個別のサブセットが各インスタンスに割り当てられるように、データが複数のRACインスタンスに論理的にパーティション化されます。シャーディング・キーを使用してデータがアクセスされると、要求は、データの対応するサブセットを保持しているインスタンスにルーティングされます。アフィニティには次の利点があります。
  • シャード認識アプリケーションのシャード・アクセス、および非シャード・アプリケーションの透過性

  • キャッシュの使用の効率化およびブロックのpingの減少

shutdown_dispatcher_clause

SHUTDOWN句が意味を持つのは、Oracle Databaseの共有サーバー・アーキテクチャを使用しているシステムのみです。dispatcher_nameで指定されたディスパッチャが停止します。

ノート:

この句をSQL*PlusコマンドSHUTDOWN(データベース全体を停止するために使用する)と混同しないでください。

dispatcher_nameは'Dxxx'の形式の文字列で、xxxはディスパッチャの番号です。ディスパッチャ名のリストを取得するには、V$DISPATCHER動的パフォーマンス・ビューのNAME列を問い合せます。

  • IMMEDIATEを指定した場合、ディスパッチャは新しい接続の受入れをすぐに中止し、そのディスパッチャによる既存の接続はすべて終了されます。すべてのセッションがクリーン・アップされてから、ディスパッチャ・プロセスが停止します。

  • IMMEDIATEを指定しない場合、ディスパッチャは新しい接続の受入れをすぐに中止しますが、すべてのユーザーが切断し、すべてのデータベース・リンクが終了されるのを待ちます。その後、ディスパッチャは停止されます。

REGISTER句

REGISTERを指定すると、PMONバックグラウンド・プロセスによってリスナーにインスタンスがすぐに登録されます。この句を指定しない場合、PMONが次に検出ルーチンを実行するまでインスタンスの登録は行われません。その結果、クライアントは、リスナー起動後最大60秒間サービスにアクセスできない可能性があります。

関連項目:

PMONバックグラウンド・プロセスおよびリスナーの詳細は、『Oracle Database概要』および『Oracle Database Net Services管理者ガイド』を参照してください。

alter_system_set_clause

この句を使用すると、パラメータ値を変更できます。set_parameter_clauseを使用すると、指定した初期化パラメータの値を変更できます。USE_STORED_OUTLINESおよびGLOBAL_TOPIC_ENABLED句を使用すると、これらのシステム・パラメータの値を変更できます。

set_parameter_clause

従来のプレーン・テキストのパラメータ・ファイル(PFILE)を使用してデータベースを起動したか、サーバー・パラメータ・ファイル(SPFILE)を使用してデータベースを起動したかに応じて、現行のインスタンスの多くの初期化パラメータ値を変更できます。『Oracle Databaseリファレンス』では、各パラメータの説明で、これらのパラメータが「変更可能」というカテゴリに分類されています。PFILEを使用した場合、変更はインスタンスの存続期間中のみ保持されます。一方、SPFILEを使用してデータベースを起動した場合、SPFILE自体のパラメータの値を変更できるため、後続のインスタンスで新しい値が使用されます。

『Oracle Databaseリファレンス』には、すべての初期化パラメータが詳細に記載されています。パラメータは、次の3つのカテゴリに分類されます。

  • 基本パラメータ: データベース管理者は、すべての基本パラメータについて熟知し、これらのパラメータの設定を考慮する必要があります。

  • 機能のカテゴリ: 『Oracle Databaseリファレンス』には、初期化パラメータが機能のカテゴリ別にも示されています。

  • アルファベット順: 『Oracle Databaseリファレンス』の目次には、すべての初期化パラメータがアルファベット順に示されています。

初期化パラメータ値を変更する権限は、従来のプレーン・テキストの初期化パラメータ・ファイル(pfile)を使用してデータベースを起動したか、サーバー・パラメータ・ファイル(spfile)を使用してデータベースを起動したかによって異なります。特定のパラメータ値を変更する権限を持っているかどうかを確認するには、V$PARAMETER動的パフォーマンス・ビューのISSYS_MODIFIABLE列を問い合せます。

文字列リテラルであるパラメータ値に大/小文字の区別を強制する場合は、一重引用符で囲む必要があります。

init.oraファイルでMANDATORY_USER_PROFILEパラメータを設定することで、CDB全体または個々のPDBでデータベース・ユーザー・アカウントの最小パスワード長を強制できます。

次の文は、CDB内のすべてのPDBのMANDATORY_USER_PROFILEパラメータを必須プロファイルc##cdb_profileに設定します。

ALTER SYSTEM SET MANDATORY_USER_PROFILE=c##cdb_profile;

ALTER SYSTEM権限を共通に付与された共通ユーザー、またはSYSDBA管理権限を持つ共通ユーザーのみが、init.oraファイルのMANDTORY_USER_PROFILEを変更できます。

パラメータ値を設定するときに、次の設定も行えます。

COMMENT

COMMENT句を使用すると、コメント文字列をパラメータ値の変更に関連付けることができます。コメント文字列には、制御文字または改行を含めることはできません。SPFILEをあわせて指定すると、パラメータ・ファイルにコメントが表示され、そのパラメータに対する直前の変更がわかります。

DEFERRED

DEFERREDキーワードを指定すると、データベースに接続するその後のセッションに対するパラメータの値を設定または変更できます。現行のセッションでは変更前の値が残ります。

このパラメータのV$PARAMETERISSYS_MODIFIABLE列の値がDEFERREDの場合は、DEFERREDを指定する必要があります。この列の値がIMMEDIATEの場合、この句のDEFERREDキーワードはオプションです。この列の値がFALSEの場合、このALTER SYSTEM文ではDEFERREDを指定できません。

関連項目:

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

CONTAINER

CDBでパラメータ値を設定するときには、CONTAINER句を指定できます。CDBでは初期化パラメータの継承モデルが使用されます。このモデルでは、PDBがルートから初期化パラメータの値を継承します。この場合、継承は、ルートの特定のパラメータ値が個別PDBに適用されることを意味します。

一部のパラメータについては、各PDBでルートの設定を上書きできます。これは、各PDBが初期化パラメータごとにtrueまたはfalseの継承プロパティを持つことを意味します。あるパラメータでPDBがルートの値を継承する場合、そのパラメータの継承プロパティはtrueです。PDBがルートの値を継承しない場合、そのパラメータの継承プロパティはfalseです。

一部のパラメータについては、継承プロパティがtrueである必要があります。その他のパラメータでは、継承プロパティを変更できます。この変更を行うには、現在のコンテナが操作対象のPDBであるときに、ALTER SYSTEM SET文を使用してパラメータを設定します。V$SYSTEM_PARAMETERビューで初期化パラメータのISPDB_MODIFIABLE値がTRUEになっている場合、そのパラメータの継承プロパティをfalseに設定できます。

  • CONTAINER = ALLを指定すると、CDB内のすべてのコンテナ(ルートとすべてのPDBを含む)にそのパラメータ設定が適用されます。現在のコンテナがルートである必要があります。

    ALLを指定すると、すべてのPDB内のパラメータの継承プロパティはtrueに設定されます。

  • CONTAINER = CURRENTを指定すると、現在のコンテナのみにパラメータ設定が適用されます。現在のコンテナがルートである場合は、ルートと、そのパラメータについてtrueの継承プロパティを持つすべてのPDBにそのパラメータ設定が適用されます。

この句を省略すると、CONTAINER = CURRENTがデフォルトになります。

関連項目:

CDBのパラメータの変更の詳細は、『Oracle Database管理者ガイド』を参照してください。

SCOPE

SCOPE句を使用すると、変更が有効になるタイミングを指定できます。この句の動作は、非CDB、CDBルートまたはPDBのいずれに接続されているかによって異なります。

非CDBまたはCDBルートに接続しているときにALTER SYSTEM文を発行した場合、有効範囲は、データベースの起動に使用したファイルが従来のプレーン・テキストのパラメータ・ファイル(pfile)か、サーバー・パラメータ・ファイル(spfile)かによって異なります。

  • MEMORYを指定すると、変更がメモリーで行われ、すぐに有効になり、データベースが停止するまで持続されます。パラメータ・ファイル(pfile)を使用してデータベースを起動した場合、この有効範囲のみを指定できます。

    MEMORYは、すべてのインスタンスのメモリーを変更し、インスタンスで個別に設定された値を上書きすることに注意してください。

  • SPFILEを指定すると、変更がサーバー・パラメータ・ファイルで行われます。新しい設定は、データベースが次に停止し、再起動されたときに有効になります。『Oracle Databaseリファレンス』に変更不可能と示されている静的パラメータ値を変更する場合は、SPFILEを指定する必要があります。

    SPFILEはメモリーを変更しないことに注意してください。つまり、インスタンスで個別に設定されたインスタンス・パラメータはグローバルよりも優先されます。

  • BOTHを指定すると、変更がメモリーとサーバー・パラメータ・ファイルの両方で行われます。新しい設定はすぐに有効になり、データベースが停止し、再起動された後も持続します。

    BOTHは、インスタンスを再起動するまで、すべてのインスタンスのメモリーを変更し、インスタンスで個別に設定された値を上書きすることに注意してください。インスタンスを再起動すると、spfileが読み取られ、その後インスタンス・パラメータが優先されます。

データベースの起動でサーバー・パラメータ・ファイルを使用した場合は、BOTHがデフォルトです。データベースの起動でパラメータ・ファイルを使用した場合は、MEMORYがデフォルトで、これ以外の有効範囲は指定できません。

PDBに接続しているときにALTER SYSTEM文を発行した場合は、V$SYSTEM_PARAMETERビューのISPDB_MODIFIABLE列がTRUEである初期化パラメータのみを変更できます。初期化パラメータ値はPDBでのみ有効になります。初期化パラメータがPDB用に明示的に設定されていない場合、PDBではCDBルートのパラメータ値を継承します。

  • MEMORYを指定すると、変更がメモリーで行われ、PDBですぐに有効になります。この設定によって、次のいずれかの場合、CDBルートで設定された値に戻ります。

    • ALTER SYSTEM SET文によって、SCOPEBOTHまたはMEMORYに等しい場合はルートのパラメータの値が設定され、PDBがクローズして再オープンされます。SCOPESPFILEと等しい場合、PDBをクローズして再オープンしてもPDBのパラメータ値は変更されません。

    • PDBがクローズして、再オープンされます。

    • CDBが停止し、再オープンされます。

  • SPFILEを指定すると、変更がPDBに対して行われ、永続的に格納されます。新しい設定はPDBのみに影響し、次のいずれかの場合に有効になります。

    • PDBがクローズして、再オープンされます。

    • CDBが停止し、再オープンされます。

  • BOTHを指定すると、変更がメモリーで行われ、PDBに対して行われて、永続的に格納されます。新しい設定はPDBで即時に有効になり、PDBがクローズして再オープンされた後、またはCDBが停止して再オープンされた後も保持されます。新しい設定は、PDBにのみ影響を及ぼします。

PDBがCDBから切断されると、SCOPE=BOTHまたはSCOPE=SPFILEを使用してPDBに指定された初期化パラメータの値は、PDBのXMLメタデータ・ファイルに追加されます。これらの値は、PDBがCDBに接続したときにPDBでリストアされます。

ノート:

ALTER SYSTEM SETに渡されるパラメータ値は、メモリーまたはspfileで設定される前に、Oracleにより内部的に調整されることがあります。たとえば、パラメータ値が素数である必要があるときに素数以外の値を入力すると、Oracleにより、値は次の素数に調整されます。パラメータ値は、パラメータ・ビューV$PARAMETERV$SYSTEM_PARAMETERおよび V$SPPARAMETERから問い合せることができます。

SID

SID句を使用すると、値を有効にするインスタンスのSIDを指定できます。

  • このパラメータがまだ明示的に設定されていないすべてのインスタンスに対してパラメータ値をOracle Databaseで変更する場合は、SID = '*'を指定します。

  • sidのインスタンスのみでパラメータ値を変更する場合、SID = 'sid'を指定します。この設定は、SID = '*'を指定する前後のALTER SYSTEM SET文より優先されます。

この句を指定しない場合は、次のようになります。

  • pfile(従来のプレーン・テキストの初期化パラメータ・ファイル)を使用してインスタンスを起動する場合、現行のインスタンスのSIDを指定したとみなされます。

  • spfile(サーバー・パラメータ・ファイル)を使用してインスタンスを起動する場合、SID = '*'を指定したとみなされます。

現行のインスタンス以外のインスタンスを指定すると、そのインスタンスに、メモリーのパラメータ値の変更を通知するメッセージが送信されます。

USE_STORED_OUTLINES句

ノート:

ストアド・アウトラインは非推奨になりました。ストアド・アウトラインは、下位互換性を保つために今でもサポートされています。ただし、かわりにSQL計画管理を使用することをお薦めします。SQL計画管理の詳細は、Oracle Database SQLチューニング・ガイドを参照してください。

USE_STORED_OUTLINESは、システム・パラメータであり、初期化パラメータではありません。pfileまたはspfile内に設定することはできませんが、ALTER SYSTEM文とともに設定できます。このパラメータは、オプティマイザが実行計画を生成するためにストアド・パブリック・アウトラインを使用するかどうかを指定します。

  • TRUEに設定すると、要求をコンパイルするときに、オプティマイザはDEFAULTカテゴリのストアド・アウトラインを使用します。

  • FALSEに設定すると、オプティマイザはストアド・アウトラインを使用しません。これはデフォルトです。

  • category_nameに設定すると、要求をコンパイルするときに、オプティマイザはcategory_nameカテゴリのストアド・アウトラインを使用します。

GLOBAL_TOPIC_ENABLED

GLOBAL_TOPIC_ENABLEDは、システム・パラメータであり、初期化パラメータではありません。pfileまたはspfile内に設定することはできませんが、ALTER SYSTEM文とともに設定できます。GLOBAL_TOPIC_ENABLED = TRUEの場合、キュー表が作成、変更または削除されると、対応するLightweight Directory Access Protocol(LDAP)エントリも作成、変更または削除されます。

このパラメータは、Java Message Service(JMS)に対しても同様に機能します。LDAPを使用するようにデータベースが構成されており、GLOBAL_TOPIC_ENABLEDパラメータがTRUEに設定されている場合、すべてのJMSキューおよびトピックは作成時にLDAPサーバーに自動的に登録されます。管理者は、LDAPに登録されたキューおよびトピックの別名を作成することもできます。LDAPに登録されたキューおよびトピックは、JNDIを介してキューまたはトピックの名前または別名を使用してルックアップできます。

共有サーバーのパラメータ

インスタンスを起動すると、Oracle DatabaseはSHARED_SERVERSおよびDISPATCHERS初期化パラメータの値に基づく共有サーバー・アーキテクチャの共有サーバー・プロセスおよびディスパッチャ・プロセスを作成します。ALTER SYSTEM文でSHARED_SERVERSおよびDISPATCHERSパラメータを設定し、インスタンスの実行中に次の操作のいずれかを実行できます。

  • 共有サーバー・プロセスの最小値を増やして、追加の共有サーバー・プロセスを作成します。

  • 現行のコールが処理を終了した後、既存の共有サーバー・プロセスを終了します。

  • 特定のプロトコルに対するディスパッチャ・プロセスをより多く作成します。プロトコル全体で、初期化パラメータMAX_DISPATCHERSによって指定される数まで作成できます。

  • 現行のユーザー・プロセスがインスタンスから切断した後、特定のプロトコルに対する既存のディスパッチャ・プロセスを終了します。

関連項目:

alter_system_reset_clause

この句を使用すると、初期化パラメータをリセットできます。

この句のセマンティクスは、初期化パラメータの値を変更するかわりに、初期化パラメータの設定を削除する点を除き、set_parameter_clauseに似ています。リセットできるパラメータおよびSCOPEおよびSID句のセマンティクスについて学習するには、「set_parameter_clause」を参照してください。

RELOCATE CLIENT

この句は、Oracle Flex ASMを使用している場合にのみ有効です。この句の発行は、通常のデータベース・インスタンスからではなく、Oracle ASMインスタンスから行う必要があります。

この句を使用すると、特定のクライアントを最も負荷が低いOracle ASMインスタンスに再配置できます。この句を発行すると、クライアントとの接続が終了し、クライアントは最も負荷が低いインスタンスにフェイルオーバーします。クライアントが最も少なくロードされたインスタンスに現在接続している場合、クライアントへの接続は終了し、クライアントはその同じインスタンスにフェイルオーバーします。

client_idには、次の形式の文字列を一重引用符で囲って指定します。

instance_name:db_name

ここで、instance_nameはクライアントの識別子、db_nameはクライアントのデータベース名です。これらの値を確認するには、V$ASM_CLIENT動的パフォーマンス・ビューのINSTANCE_NAME列とDB_NAME列を問い合せます。

関連項目:

cancel_sql_clause

この句を使用して、パラレル・サーバーなどのリソースを過度に消費しているSQL操作を終了します。アクティブなSQL文を取り消すセッションのセッションIDおよびセッション・シリアル番号を指定する必要があります。セッションがアイドル状態(アクティブにSQL文を実行していない)場合、次のSQL文が取り消されます。次のSQL文が取り消されないようにするには、取り消すSQL文を識別するために引数にsql_idを指定します。

  • session_idは必須であり、セッション識別子を表します。

  • serial_numberで必須であり、セッションのシリアル番号を表します。

  • instance_idはオプションです。この引数を省略すると、現在のセッションのインスタンスIDが使用されます。

  • sql_idはオプションです。この引数が指定されている場合、sql_idは、SQLを終了する前にセッション内でアクティブに実行されているSQL文と一致します。セッションでsql_id引数で指定されたSQL文以外のSQL文が実行されている場合は、エラーが発生します。

REDOログの手動アーカイブ: 例

次の文は、SCN 9356083のREDOログ・エントリを含むREDOログ・ファイル・グループを手動でアーカイブします。

ALTER SYSTEM ARCHIVE LOG CHANGE 9356083; 

次の文は、メンバー'diskl:log6.log'を含むREDOログ・ファイル・グループを、'diska:[arch$]'という場所にあるアーカイブREDOログ・ファイルに手動でアーカイブします。

ALTER SYSTEM ARCHIVE LOG 
    LOGFILE 'diskl:log6.log' 
    TO 'diska:[arch$]'; 

クエリー・リライトの有効化: 例

次の文は、クエリー・リライトが明示的に無効にされていないすべてのマテリアライズド・ビューに対するすべてのセッションで、クエリー・リライトを有効にします。

ALTER SYSTEM SET QUERY_REWRITE_ENABLED = TRUE;

セッションの制限: 例

たとえば、アプリケーションのメンテナンス中は、RESTRICTED SESSIONシステム権限が付与されているアプリケーション開発者のみがログインできるようにセッションを制限できます。このためには、次の文を発行します。

ALTER SYSTEM
   ENABLE RESTRICTED SESSION; 

次に、ALTER SYSTEM文のKILL SESSION句を使用すると、既存のセッションをどれでも終了できます。

アプリケーションのメンテナンスが終了した後で、次の文を発行することによって、CREATE SESSIONシステム権限が付与されているユーザーもログインできるようになります。

ALTER SYSTEM
   DISABLE RESTRICTED SESSION; 

ウォレットおよび暗号化キーの確立: 例

次の文は、サーバー・ウォレットからメモリーに情報をロードし、透過的データ暗号化マスター・キーを設定します。

ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "password";
ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY "password"; 

これらの文では、セキュリティ・モジュールが初期化済で、passwordを使用してウォレットが作成済であることを前提としています。

ウォレットのクローズ: 例

次の文は、パスワード・ベースのウォレット情報をメモリーから削除します。

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE IDENTIFIED BY "password";

次の文を使用すると、パスワードベースのウォレット情報および自動ログイン情報(存在する場合)をメモリーから削除できます。

ALTER SYSTEM SET ENCRYPTION WALLET CLOSE;

共有プールのクリア: 例

たとえば、パフォーマンス分析を開始する前に、共有プールをクリアできます。共有プールをクリアする場合、次の文を発行します。

ALTER SYSTEM FLUSH SHARED_POOL;

チェックポイントの強制実行: 例

次の文は、チェックポイントを強制実行します。

ALTER SYSTEM CHECKPOINT; 

リソース制限の有効化: 例

このALTER SYSTEM文は、リソース制限を動的に有効にします。

ALTER SYSTEM SET RESOURCE_LIMIT = TRUE; 

共有サーバー設定の変更: 例

次の文は、共有サーバー・プロセスの最小数を25に変更します。

ALTER SYSTEM SET SHARED_SERVERS = 25; 

共有サーバー・プロセスの数が25より少ない場合は追加作成されます。共有サーバー・プロセスが25より多く、25あれば負荷を管理できる場合は、現行のコールによる処理が終了した時点で、25を超える分の共有サーバー・プロセスは終了します。

次の文は、TCP/IPプロトコルのディスパッチャ・プロセス数を5に、ipcプロトコルのディスパッチャ・プロセス数を10に動的に変更します。

ALTER SYSTEM 
   SET DISPATCHERS = 
      '(INDEX=0)(PROTOCOL=TCP)(DISPATCHERS=5)',
      '(INDEX=1)(PROTOCOL=ipc)(DISPATCHERS=10)'; 

TCPのディスパッチャ・プロセスの数が5より少ない場合、ディスパッチャ・プロセスが新しく作成されます。5より多い場合は、接続されているユーザーが接続を切断した後に、5を超える分のディスパッチャ・プロセスは終了します。

ipcのディスパッチャ・プロセスの数が10より少ない場合、ディスパッチャ・プロセスが新しく作成されます。10より多い場合は、接続されているユーザーが接続を切断した後に、10を超える分のディスパッチャ・プロセスは終了します。

これ以外のプロトコル用として既存ディスパッチャがある場合、この文は、そのディスパッチャの数に影響しません。

ライセンス・パラメータの変更: 例

次の文は、インスタンスにおけるセッションの最大数を64に、セッションの警告しきい値を54に動的に変更します。

ALTER SYSTEM 
   SET LICENSE_MAX_SESSIONS = 64 
   LICENSE_SESSIONS_WARNING = 54; 

セッション数が54に達した場合、後続の各セッションのALERTファイルに警告メッセージが書き込まれます。RESTRICTED SESSIONシステム権限を持つユーザーも、後続セッションを開始する場合に、警告メッセージを受け取ります。

セッション数が64に達した場合、セッション数が再び64を下回るまでは、RESTRICTED SESSIONシステム権限を持つユーザー以外は新しいセッションを開始できません。

次の文は、インスタンスのセッションの最大数を動的に使用禁止にします。この文の実行後は、インスタンスのセッション数に制限がなくなります。

ALTER SYSTEM SET LICENSE_MAX_SESSIONS = 0; 

次の文は、データベースのユーザー数の制限を200に動的に変更します。この文の実行後は、データベース・ユーザー数が200を超えることはありません。

ALTER SYSTEM SET LICENSE_MAX_USERS = 200; 

ログ・スイッチの強制実行: 例

強制的なログ・スイッチが必要になるのは、たとえば現行のREDOログ・ファイル・グループまたはそのメンバーの削除や名前の変更を行う場合です(Oracle Databaseが書き込んでいるファイルの削除や名前変更はできないため)。強制ログ・スイッチの影響を受けるのは、このインスタンスのREDOログ・スレッドのみです。次の文は、ログ・スイッチを強制します。

ALTER SYSTEM SWITCH LOGFILE; 

分散リカバリの有効化: 例

次の文は、分散リカバリを有効にします。

ALTER SYSTEM ENABLE DISTRIBUTED RECOVERY;

デモンストレーションまたはテストの目的で、分散リカバリを使用禁止にする場合があります。次の文は、シングルプロセス・モードとマルチプロセス・モードの両方で分散リカバリを使用禁止にします。

ALTER SYSTEM DISABLE DISTRIBUTED RECOVERY; 

デモンストレーションまたはテストが終了した場合、ALTER SYSTEM文にENABLE DISTRIBUTED RECOVERY句を指定して実行すると、分散リカバリを再び使用可能にできます。

セッションの終了: 例

たとえば、他のユーザーが必要とするリソースを保持しているユーザーのセッションを終了できます。そのユーザーは、セッションが終了したことを示すエラー・メッセージを受け取ります。そのユーザーがデータベースに対する呼出しを行うには、新しいセッションを開始する必要があります。V$SESSION動的パフォーマンス表に次のデータがあるとします(ユーザーSYSoeの両方がセッションを開いています)。

SELECT sid, serial#, username
   FROM V$SESSION; 

       SID    SERIAL# USERNAME
---------- ---------- ------------------------------
        29         85 SYS
        33          1
        35          8
        39         23 OE
        40          1
. . .

次の文は、V$SESSIONSID値とSERIAL#値を使用して、ユーザーscottのセッションを終了します。

ALTER SYSTEM KILL SESSION '39, 23';

セッションの切断: 例

次の文は、V$SESSIONSIDSERIAL#の値を使用して、ユーザーscottのセッションを切断します。

ALTER SYSTEM DISCONNECT SESSION '13, 8' POST_TRANSACTION;