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でローカルに付与されている権限のいずれか)が必要です。
構文
alter_system::=
(archive_log_clause::=、checkpoint_clause::=、check_datafiles_clause::=、distributed_recov_clauses::=、end_session_clauses::=、quiesce_clauses::=、rolling_migration_clauses::=、rolling_patch_clauses::=、security_clauses::=、shutdown_dispatcher_clause::=、alter_system_set_clause::=、alter_system_reset_clause::=)
archive_log_clause::=
checkpoint_clause::=
check_datafiles_clause::=
distributed_recov_clauses::=
flush_clause
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
を指定すると、指定したスレッド内のログ順序番号integer
によって識別されるオンラインREDOログ・ファイル・グループを手動でアーカイブできます。THREAD
パラメータを指定しなかった場合、インスタンスに割り当てられているスレッドから、指定したグループがアーカイブされます。
CHANGE
を指定すると、指定されたスレッド内の、integer
で指定されたシステム変更番号(SCN)を持つREDOログ・エントリが格納されているオンラインREDOログ・ファイル・グループを、手動でアーカイブできます。このSCNが現行のREDOログ・ファイル・グループ内にある場合は、ログ・スイッチが実行されます。THREAD
パラメータを省略した場合は、使用可能な状態にあるすべてのスレッドから、このSCNが含まれているグループがアーカイブされます。
インスタンスでデータベースをオープンしている場合にのみ、この句を使用できます。
CURRENT
を指定すると、ログ・スイッチを強制的に発生させ、指定したスレッドの現行のREDOログ・ファイル・グループを手動でアーカイブできます。THREAD
パラメータを指定しない場合、すべての使用可能なスレッドから、現行のログ以前のログも含むすべてのREDOログ・ファイル・グループがアーカイブされます。データベースがオープンしているときのみ、CURRENT
を指定できます。
NOSWITCH
NOSWITCH
を指定すると、ログ・スイッチの強制実行なしで現行のREDOログ・ファイル・グループを手動でアーカイブできます。この設定は、プライマリ・データベースが停止したときに、データ分岐が発生しないようにするために、主にスタンバイ・データベースで使用されます。データ分岐は、プライマリ・データベースに障害が発生した場合に、データが消失する可能性があることを意味します。
インスタンスでデータベースがマウントされているがオープンされていない場合にのみ、NOSWITCH
句を使用できます。データベースがオープンしている場合は、この操作によってデータベースは自動的にクローズされます。再オープンする前にデータベースを手動で停止する必要があります。
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
を指定すると、一杯になってもアーカイブされていない次のオンラインREDOログ・ファイル・グループを、指定したスレッドから手動でアーカイブできます。THREAD
パラメータを指定しない場合、使用可能な任意のスレッド上の、アーカイブされていない最初のREDOログ・ファイル・グループがアーカイブされます。
ALL
を指定すると、一杯になってもアーカイブされていないすべてのオンラインREDOログ・ファイル・グループを、指定したスレッドから手動でアーカイブできます。THREAD
パラメータを指定しない場合、使用可能なすべてのスレッドから、一杯でアーカイブされていないすべてのREDOログ・ファイル・グループがアーカイブされます。
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
句を指定すると、KEEP
、RECYCLE
および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
句を使用すると、専用サーバー・プロセス(共有サーバーによって接続が確立されていた場合は、仮想回路)を破棄することによって、現行のセッションが切断されます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。次の両方の値を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
句を指定すると、セッションの状態は終了済となり、実行中のトランザクションがロールバックされ、すべてのセッション・ロックが解放され、セッション・リソースの部分的リカバリが行われます。この句を使用する場合、インスタンスでデータベースをオープンする必要があります。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
FORCE
はIMMEDIATE
に似ていますが、タイムアウトが発生すると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
句を指定すると、Oracle Databaseにログインできるユーザーを制限できます。インスタンスでデータベースがマウントされていてもディスマウントされていても、またはオープン状態でもクローズ状態でも、この句を使用できます。
-
ENABLE
を指定すると、RESTRICTED
SESSION
システム権限が付与されているユーザーのみがOracle Databaseにログインできます。既存のセッションは終了しません。この句は、現行のインスタンスのみに適用されます。そのため、Oracle RAC環境では、
RESTRICTED
SESSION
システム権限を持たない認可済ユーザーも他のインスタンスでデータベースにアクセスできます。 -
DISABLE
を指定すると、ENABLE
RESTRICTED
SESSION
句の効果が逆になり、CREATE
SESSION
システム権限が付与されているすべてのユーザーがOracle Databaseにログオンできるようになります。これはデフォルトです。
関連項目:
この句を使用すると、データの透過的暗号化(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管理およびデプロイメント・ガイド』を参照してください。
この句を使用すると、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
.ora
のENCRYPTION_WALLET_LOCATION
で指定されたディレクトリの外に移動します。暗号化ウォレットを削除したり、ウォレット・パスワードを忘れないよう注意してください。
関連項目:
mkstore
ウォレット管理コマンドライン・ツールは、Oracle Database 23cでは非推奨であり、将来のリリースで削除される可能性があります。ウォレットを管理するには、
orapki
コマンドライン・ツールの使用をお薦めします。-
ENCRYPTION_WALLET_LOCATION
パラメータは非推奨です。今後は、静的な初期化パラメータWALLET_ROOT
と、動的な初期化パラメータTDE_CONFIGURATION
を使用することをお薦めします。 -
透過的データ暗号化の詳細は、『Oracle Database Advanced Securityガイド』を参照してください。
-
この機能を利用して表の列を暗号化する方法の詳細は、「
CREATE
TABLE
」の「encryption_spec」を参照してください。
affinity_clauses
RAC
データベースに対するキャッシュ・アフィニティを提供できるようにします。アフィニティにより、データの個別のサブセットが各インスタンスに割り当てられるように、データが複数のRAC
インスタンスに論理的にパーティション化されます。シャーディング・キーを使用してデータがアクセスされると、要求は、データの対応するサブセットを保持しているインスタンスにルーティングされます。アフィニティには次の利点があります。
-
シャード認識アプリケーションのシャード・アクセス、および非シャード・アプリケーションの透過性
-
キャッシュの使用の効率化およびブロックのpingの減少
shutdown_dispatcher_clause
SHUTDOWN
句が意味を持つのは、Oracle Databaseの共有サーバー・アーキテクチャを使用しているシステムのみです。dispatcher_name
で指定されたディスパッチャが停止します。
ノート:
この句をSQL*PlusコマンドSHUTDOWN
(データベース全体を停止するために使用する)と混同しないでください。
dispatcher_name
は'D
xxx
'の形式の文字列で、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$PARAMETER
のISSYS_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
文によって、SCOPE
がBOTH
またはMEMORY
に等しい場合はルートのパラメータの値が設定され、PDBがクローズして再オープンされます。SCOPE
がSPFILE
と等しい場合、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$PARAMETER
、V$SYSTEM_PARAMETER
および V$SPPARAMETER
から問い合せることができます。
SID
SID
句を使用すると、値を有効にするインスタンスのSIDを指定できます。
-
このパラメータがまだ明示的に設定されていないすべてのインスタンスに対してパラメータ値をOracle Databaseで変更する場合は、
SID
='*'
を指定します。 -
sid
のインスタンスのみでパラメータ値を変更する場合、SID
='sid'
を指定します。この設定は、SID
='*'
を指定する前後のALTER
SYSTEM
SET
文より優先されます。
この句を指定しない場合は、次のようになります。
-
pfile(従来のプレーン・テキストの初期化パラメータ・ファイル)を使用してインスタンスを起動する場合、現行のインスタンスのSIDを指定したとみなされます。
-
spfile(サーバー・パラメータ・ファイル)を使用してインスタンスを起動する場合、
SID
=
'*'
を指定したとみなされます。
現行のインスタンス以外のインスタンスを指定すると、そのインスタンスに、メモリーのパラメータ値の変更を通知するメッセージが送信されます。
ノート:
ストアド・アウトラインは非推奨になりました。ストアド・アウトラインは、下位互換性を保つために今でもサポートされています。ただし、かわりにSQL計画管理を使用することをお薦めします。SQL計画管理の詳細は、Oracle Database SQLチューニング・ガイドを参照してください。
USE_STORED_OUTLINES
は、システム・パラメータであり、初期化パラメータではありません。pfileまたはspfile内に設定することはできませんが、ALTER
SYSTEM
文とともに設定できます。このパラメータは、オプティマイザが実行計画を生成するためにストアド・パブリック・アウトラインを使用するかどうかを指定します。
-
TRUE
に設定すると、要求をコンパイルするときに、オプティマイザはDEFAULT
カテゴリのストアド・アウトラインを使用します。 -
FALSE
に設定すると、オプティマイザはストアド・アウトラインを使用しません。これはデフォルトです。 -
category_name
に設定すると、要求をコンパイルするときに、オプティマイザはcategory_name
カテゴリのストアド・アウトラインを使用します。
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
によって指定される数まで作成できます。 -
現行のユーザー・プロセスがインスタンスから切断した後、特定のプロトコルに対する既存のディスパッチャ・プロセスを終了します。
関連項目:
-
Oracle Real Application Clusters環境の各インスタンス用のパラメータ値設定の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください
-
ALTER
SYSTEM
文を使用した例である「ライセンス・パラメータの変更: 例」、「クエリー・リライトの有効化: 例」、「リソース制限の有効化: 例」、「共有サーバーのパラメータ」および「共有サーバー設定の変更: 例」を参照してください。
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
列を問い合せます。
関連項目:
-
Oracle Flex ASMの管理の詳細は、『Oracle Automatic Storage Management管理者ガイド』を参照してください。
-
V$ASM_CLIENT
動的パフォーマンス・ビューの詳細は、『Oracle Databaseリファレンス』を参照してください。
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
動的パフォーマンス表に次のデータがあるとします(ユーザーSYS
とoe
の両方がセッションを開いています)。
SELECT sid, serial#, username FROM V$SESSION; SID SERIAL# USERNAME ---------- ---------- ------------------------------ 29 85 SYS 33 1 35 8 39 23 OE 40 1 . . .
次の文は、V$SESSION
のSID
値とSERIAL#
値を使用して、ユーザーscott
のセッションを終了します。
ALTER SYSTEM KILL SESSION '39, 23';
セッションの切断: 例
次の文は、V$SESSION
のSID
とSERIAL#
の値を使用して、ユーザーscott
のセッションを切断します。
ALTER SYSTEM DISCONNECT SESSION '13, 8' POST_TRANSACTION;