用途
ALTER PLUGGABLE DATABASE文を使用すると、プラガブル・データベース(PDB)を変更できます。
この句で実行できるタスクは、次のとおりです。
PDBをマルチテナント・コンテナ・データベース(CDB)から切断する(pdb_unplug_clauseを使用)。
PDBの設定を変更する(pdb_settings_clausesを使用)。
PDBデータファイルをオンラインまたはオフラインにする(pdb_datafile_clauseを使用)。
PDBをバックアップおよびリカバリする(pdb_recovery_clausesを使用)。
PDBの状態を変更する(pdb_change_state句を使用)。
CDB内の複数のPDBの状態を変更する(pdb_change_state_from_root句を使用)。
|
注意: PDBに接続して、対応するALTER DATABASE文を実行することにより、すべてのALTER PLUGGABLE DATABASEタスクを実行できます。この機能は、CDBに移行したアプリケーションの下位互換性を維持するために用意されています。例外はPDBストレージの限度の変更です。これには、ALTER PLUGGABLE DATABASEのpdb_storage_clauseを使用する必要があります。 |
前提条件
CDBに接続している必要があります。
pdb_unplug_clauseを指定するには、現在のコンテナがルートである必要があります。また、AS SYSDBAまたはAS SYSOPERとして認証される必要があるとともに、共通に付与されているSYSDBA権限またはSYSOPER権限か、ルートと切断対象のPDBのそれぞれでローカルに付与されているこれらのどちらかの権限が必要です。
pdb_settings_clausesを指定するには、現在のコンテナが設定の変更対象のPDBである必要があります。また、ALTER DATABASE権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。pdb_logging_clausesまたはRENAME GLOBAL_NAME句を指定するには、RESTRICTED SESSION権限(共通に付与されている権限か、名前を変更するPDBでローカルに付与されている権限のいずれか)も必要です。PDBはREAD WRITE RESTRICTEDモードである必要があります。
pdb_datafile_clauseを指定するには、現在のコンテナが、データファイルをオンラインまたはオフラインにするPDBである必要があり、ALTER DATABASE権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。
pdb_recovery_clausesを指定するには、現在のコンテナがバックアップまたはリカバリの実行対象のPDBである必要があります。また、ALTER DATABASE権限(共通に付与されている権限か、そのPDBでローカルに付与されている権限のいずれか)が必要です。
pdb_change_state句を指定するには、現在のコンテナが状態の変更対象のPDBである必要があります。また、AS SYSBACKUP、AS SYSDBA、AS SYSDGまたはAS SYSOPERとして認証される必要があります。
pdb_change_state_from_root句を指定するには、現在のコンテナがルートである必要があります。また、AS SYSBACKUP、AS SYSDBA、AS SYSDGまたはAS SYSOPERとして認証される必要があるとともに、共通に付与されているSYSBACKUP、SYSDBA、SYSDGまたはSYSOPER権限か、ルートと状態の変更対象のPDBのそれぞれでローカルに付与されているこれらのいずれかの権限が必要です。
構文
alter_pluggable_database::=

(pdb_unplug_clause::=、pdb_settings_clauses::=、pdb_datafile_clause::=、pdb_recovery_clauses::=、pdb_change_state::=、pdb_change_state_from_root::=を参照)


(set_time_zone_clause::=、database_file_clauses ::=、supplemental_db_logging ::=、pdb_storage_clause::=、pdb_logging_clauses::=)

(size_clause::=を参照)







(pdb_open::=、pdb_close::=、pdb_save_or_discard_state::=)
pdb_open::=


pdb_close::=




セマンティクス
この句を使用すると、CDBからPDBを切断できます。PDBを切断すると、OracleはそのPDBのメタデータをXMLファイルに保存します。その後、このXMLファイルを使用して、そのPDBをCDBに接続できます。
pdb_nameには、切断するPDBの名前を指定します。PDBはクローズされている必要があります。つまり、オープン・モードは、MOUNTEDである必要があります。Oracle Real Application Clusters(Oracle RAC)環境では、すべてのOracle RACインスタンスでそのPDBがクローズされている必要があります。
filenameには、切断されるPDBのメタデータを格納するXMLファイルのフルパス名を指定します。
切断後、そのPDBは、オープン・モードMOUNTED、ステータスUNPLUGGEDとしてCDBに留まります。切断されたPDBに対して実行できる操作は、DROP PLUGGABLE DATABASEのみです。この操作により、PDBはCDBから削除されます。同じCDBまたは別のCDBにPDBを接続するには、先にそのPDBを削除する必要があります。
|
関連項目:
|
pdb_settings_clauses
これらの句を使用すると、PDBの様々な設定を変更できます。
pdb_name
オプションでpdb_nameを使用して、設定を変更するPDBの名前を指定できます。
この句を使用すると、指定したエディションをPDBのデフォルト・エディションとして設定できます。この句のセマンティクスの詳細は、ALTER DATABASEの「DEFAULT EDITION句」を参照してください。
SET DEFAULT TABLESPACE句
この句を使用すると、以降にPDBで作成する表領域のデフォルト・タイプを指定または変更できます。この句のセマンティクスの詳細は、ALTER DATABASEの「SET DEFAULT TABLESPACE句」を参照してください。
この句を使用すると、PDBのデフォルトの永続表領域を構築または変更できます。この句のセマンティクスの詳細は、ALTER DATABASEの「DEFAULT TABLESPACE句」を参照してください。
この句を使用すると、PDBのデフォルトの一時表領域を、新しい表領域または表領域グループに変更できます。この句のセマンティクスの詳細は、ALTER DATABASEの「DEFAULT TEMPORARY TABLESPACE句」を参照してください。
この句を使用して、PDBのグローバル名を変更できます。新しいグローバル名は、CDB内で一意にする必要があります。Oracle Real Application Clusters(Oracle RAC)データベースの場合は、PDBを現在のインスタンスのみでREAD WRITE RESTRICTEDモードで開く必要があります。その他すべてのインスタンスでは、PDBをクローズする必要があります。この句のセマンティクスの詳細は、ALTER DATABASEの「RENAME GLOBAL_NAME句」を参照してください。
|
注意: PDBのグローバル名を変更するときには必ず、そのPDBへの接続に使用しているデータベース・サービスのPLUGGABLE DATABASEプロパティを変更してください。 |
この句を使用すると、PDBのタイムゾーン設定を変更できます。この句のセマンティクスの詳細は、ALTER DATABASEのset_time_zone_clauseを参照してください。
この句を使用すると、PDBのデータファイルと一時ファイルを変更できます。この句のセマンティクスの詳細は、ALTER DATABASEのdatabase_file_clausesを参照してください。
supplemental_db_logging
これらの句を使用すると、PDBのログ・ストリームへのサプリメンタル・データを追加する(または追加を停止する)ようにOracle Databaseに指示できます。ADD SUPPLEMENTAL LOG句には、CDBのログ・ストリームに最小限のサプリメンタル・データを追加する(または追加を停止する)ように指示するという副作用があります。この句のセマンティクスの詳細は、ALTER DATABASEのsupplemental_db_loggingを参照してください。
この句を使用して、PDBのストレージ制限を変更できます。
この句のセマンティクスは、CREATE PLUGGABLE DATABASEのpdb_storage_clauseと同じですが、次が追加されます。
MAXSIZE size_clauseを指定する場合は、size_clauseに、PDBの既存の表領域の合計サイズ以上の値を指定する必要があります。それ以外の場合はエラーが発生します。
MAX_SHARED_TEMP_SIZE size_clauseを指定する場合、size_clauseに、PDBに接続されたセッションによって使用される量より少ない値を指定すると、PDBに接続されたセッションによって使用されるストレージの量が、size_clauseで指定された値を下回らないかぎり、PDBに接続されたセッションで使用できる共有一時表領域内のストレージの量は増えません。
pdb_logging_clauses
この句を使用すると、PDBのロギング特性を設定または変更できます。
logging_clause
この句を使用して、PDB内で以降に作成する表領域のデフォルトのロギング属性を変更します。この句のセマンティクスは、CREATE PLUGGABLE DATABASEのlogging_clauseと同じです。
pdb_force_logging_clause
この句を使用してPDBを強制ロギングまたは強制ロギングなしモードにするか、PDBの強制ロギングまたは強制ロギングなしモードを解除します。
強制ロギング・モードでは、一時表領域および一時セグメントの変更を除くPDBのすべての変更の記録をデータベースに指示します。強制ロギングなしモードでは、PDBの変更を記録しないようデータベースに指示します。
CDB全体の強制ロギング・モードは、PDBレベルの強制ロギングなしモードより優先されます。PDBレベルの強制ロギング・モードおよび強制ロギングなしモードは、PDBの個々の表領域に指定するLOGGING、NOLOGGINGまたはFORCE LOGGING設定あるいはPDBの個々のデータベース・オブジェクトに指定するLOGGINGまたはNOLOGGING設定よりも優先され、これらの設定には影響されません。
ENABLE FORCE LOGGINGを指定して、強制ロギング・モードのPDBを配置します。PDBが現在強制ロギングなしモードである場合、この句を指定するとエラーになります。最初にDISABLE FORCE NOLOGGINGを指定する必要があります。
DISABLE FORCE LOGGINGを指定して、PDBの強制ロギング・モードを解除します。PDBが現在強制ロギング・モードでない場合、この句を指定するとエラーになります。
ENABLE FORCE NOLOGGINGを指定して、強制ロギングなしモードのPDBを配置します。PDBが現在強制ロギング・モードである場合、この句を指定するとエラーになります。最初にDISABLE FORCE LOGGINGを指定する必要があります。
DISABLE FORCE NOLOGGINGを指定して、PDBの強制ロギングなしモードを解除します。PDBが現在強制ロギングなしモードでない場合、この句を指定するとエラーになります。
この句は、logging_clauseで指定されたPDBのデフォルトのLOGGINGまたはNOLOGGINGモードを変更しません。
pdb_datafile_clause
この句を使用して、PDBに関連付けられたデータファイルをオンラインまたはオフラインにできます。この句を発行するときには、そのPDBがクローズされている必要があります。
pdb_nameには、PDBの名前を指定します。現在のコンテナがそのPDBである場合は、pdb_nameは省略できます。
DATAFILE句では、オンラインまたはオフラインにするデータファイルを指定できます。filenameまたはfilenumberを使用して、特定のデータファイルを名前または番号によって識別します。V$DATAFILE動的パフォーマンス・ビューのNAME列とFILE#列の問合せを実行することによって、データファイルの名前と番号を表示できます。そのPDBに関連付けられたすべてのデータファイルを指定するには、ALLを使用します。
データファイルをオンラインにする場合はONLINEを指定し、データファイルをオフラインにする場合はOFFLINEを指定します。
pdb_recovery_clauses
pdb_recovery_clausesを使用して、PDBをバックアップおよびリカバリできます。
pdb_name
オプションでpdb_nameを使用して、バックアップまたはリカバリするPDBの名前を指定できます。
pdb_general_recovery
この句を指定すると、PDB、スタンバイ・データベース、または指定した表領域やファイルのメディア・リカバリを制御できます。pdb_general_recovery句は、ALTER DATABASEのgeneral_recovery句と同じセマンティクスを持ちます。詳細は、ALTER DATABASEのgeneral_recovery句を参照してください。
この句を使用すると、PDB内のすべてのデータファイルをオンライン・バックアップ・モード(ホット・バックアップ・モードともいう)にしたり、このモードから戻すことができます。これらの句についてのセマンティクスは、ALTER PLUGGABLE DATABASEおよびALTER DATABASEと同じです。詳細は、ALTER DATABASEの「BACKUP句」を参照してください。
これらの句を使用して、リカバリのPDBを有効化または無効化します。PDBはクローズされている必要があります。つまり、オープン・モードは、MOUNTEDである必要があります。Oracle Database 12cリリース1(12.1.0.2)より、RECOVERY句を使用できます。
ENABLE RECOVERYを指定して、PDBに属するすべてのデータファイルをオンラインにし、リカバリのPDBを有効化します。
DISABLE RECOVERYを指定して、PDBに属するすべてのデータファイルをオフラインにし、リカバリのPDBを無効化します。
|
関連項目: RECOVERY句の詳細は、『Oracle Data Guard概要および管理』を参照してください。 |
この句を使用すると、PDBの状態またはオープン・モードを変更できます。表11-1 は、PDBのオープン・モードを示しています。
オープン・モードをREAD WRITE、READ ONLYまたはMIGRATEに変更するには、pdb_open句を指定します。
オープン・モードをMOUNTEDに変更するには、pdb_close句を指定します。
表11-1 PDBのオープン・モード
| オープン・モード | 説明 |
|---|---|
|
|
読取り/書込みオープン・モードのPDBでは、問合せおよびユーザー・トランザクションを実行でき、ユーザーはREDOログを生成できます。 |
|
|
読取り専用オープン・モードのPDBでは、問合せは実行できますが、ユーザー変更を実行することはできません。 |
|
|
PDBが移行オープン・モードの場合は、PDBでデータベース・アップグレード・スクリプトを実行できます。 |
|
|
PDBは、マウント・モードでは、マウント・モードの非CDBと同じように動作します。どのオブジェクトの変更も行えず、またデータベース管理者のみがアクセス可能です。データファイルからの読取りも、データファイルへの書込みもできません。PDBに関する情報は、メモリー・キャッシュから削除されます。PDBのコールド・バックアップを実行できます。 |
V$PDBSビューのOPEN_MODE列を問い合せて、PDBのオープン・モードを表示できます。
|
関連項目: PDBのオープン・モードの詳細は、『Oracle Database管理者ガイド』を参照してください。 |
pdb_name
オプションでpdb_nameを使用して、オープン・モードを変更するPDBの名前を指定できます。
pdb_open
この句を使用して、PDBのオープン・モードをREAD WRITE、READ ONLYまたはMIGRATEに変更できます。この句を指定するときにFORCEキーワードを指定しない場合は、そのPDBがMOUNTEDモードになっている必要があります。
READ WRITEまたはREAD ONLYを指定しない場合は、デフォルトでREAD WRITEが設定されます。例外は、そのPDBが、フィジカル・スタンバイ・データベースとして使用されるCDBに属している場合です。この場合、デフォルトはREAD ONLYになります。
READ WRITE この句を指定すると、オープン・モードをREAD WRITEに変更できます。
READ ONLY この句を指定すると、オープン・モードをREAD ONLYに変更できます。
[READ WRITE] UPGRADE この句を指定すると、オープン・モードをMIGRATEに変更できます。READ WRITEキーワードはオプションであり、意味を明確にするためのものです。
RESTRICTED オプションのRESTRICTEDキーワードを指定すると、そのPDBにおけるRESTRICTED SESSION権限を持つユーザーのみがそのPDBにアクセス可能になります。
PDBがREAD WRITEまたはREAD ONLYモードにあるときに、RESTRICTEDキーワードとFORCEキーワードを指定してオープン・モードの変更を実行すると、そのPDBに接続しているセッションのうち、そのPDBにおけるRESTRICTED SESSION権限を持っていないすべてのセッションが終了され、ロールバックされます。
FORCE このキーワードを指定すると、PDBのオープン・モードをREAD WRITEからREAD ONLYに、またはREAD ONLYからREAD WRITEに変更できます。FORCEキーワードを使用すると、オープン・モードの変更中にユーザーがPDBへの接続を維持できます。
READ WRITEからREAD ONLYへのPDBのオープン・モードの変更でFORCEを指定すると、オープン・モードの変更時にオープンになっているあらゆるREAD WRITEトランザクションが、DML操作をそれ以上実行できなくなり、またCOMMITもできなくなります。
FORCEの制限事項: PDBが現在MIGRATEモードにある場合は、FORCEキーワードは指定できません。また、現在オープン状態になっているPDBをMIGRATEモードに変更する際には、FORCEキーワードは指定できません。
RESETLOGS この句を指定すると、新しいPDBインカネーションを作成し、PDBのポイント・イン・タイム・リカバリ後に、そのPDBをREAD WRITEモードでオープンできます。
|
関連項目: CDBおよびPDBのPoint-in-Timeリカバリの実行の詳細は、『Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド』を参照してください。 |
instances_clause Oracle Real Application Clusters環境でこの句を使用すると、指定されたOracle RACインスタンス内のPDBの状態を変更できます。この句を省略すると、PDBの状態は現在のインスタンス内のみで変更されます。
instance_nameを使用して、1つ以上のインスタンス名のカンマ区切りのリストをかっこで囲んで指定します。これにより、それらのインスタンスのみPDBの状態が変更されます。
Specify ALLを指定すると、すべてのインスタンス内のPDBの状態を変更できます。
ALL EXCEPTを指定すると、指定されたインスタンスを除くすべてのインスタンス内のPDBの状態を変更できます。
PDBが1つ以上のインスタンス内ですでにオープンされている場合、別のインスタンス内でもオープンできますが、すでにオープンされているPDBと同じモードでオープンする必要があります。
pdb_close
この句を使用すると、PDBのオープン・モードをMOUNTEDに変更できます。この句を指定するときには、そのPDBがREAD WRITE、READ ONLYまたはMIGRATEモードにある必要があります。この句は、PDBでのSQL*Plus SHUTDOWNコマンドに相当します。
IMMEDIATE オプションのIMMEDIATEキーワードを指定した場合、この句は、PDBでの即時モードのSQL*Plus SHUTDOWNコマンドに相当します。それ以外の場合、PDBは通常モードでシャットダウンされます。
|
関連項目: SQL*Plus SHUTDOWNコマンドの詳細は、『SQL*Plusユーザーズ・ガイドおよびリファレンス』を参照してください。 |
instances_clause Oracle Real Application Clusters環境でこの句を使用すると、指定されたOracle RACインスタンス内のPDBの状態を変更できます。PDBは、いくつかのインスタンスでクローズし、別のインスタンスでオープンしておくことができます。この句のセマンティクスの詳細は、instances_clauseを参照してください。
relocate_clause Oracle Real Application Clusters環境では、この句を使用して、異なるOracle RACインスタンス上でPDBを再オープンするようにデータベースに指示できます。
Oracle Databaseで選択された別のインスタンス上のPDBを再オープンするには、RELOCATEを指定します。
指定されたインスタンス内でPDBを再オープンするには、RELOCATE TO 'instance_name'を指定します。
現在のインスタンス内でPDBをクローズするには、NORELOCATEを指定します。これはデフォルトです。
pdb_save_or_discard_state
この句を使用して、CDBの再起動時にPDBのオープン・モードを保存または破棄するようデータベースに指示します。
SAVEを指定する場合、CDBの再起動後のPDBのオープン・モードは、CDBの再起動前のオープン・モードと同じです。
DISCARDを指定する場合、CDBの再起動後のPDBのオープン・モードはMOUNTEDになります。これはデフォルトです。
instances_clause Oracle Real Application Clusters環境でこの句を使用して、指定されたOracle RACインスタンス内のPDBのオープン・モードを保存または破棄するようデータベースに指示します。この句を省略すると、データベースはSAVEまたはDISCARD設定を現在のインスタンスのPDBにのみ適用します。
instance_nameを使用して、1つ以上のインスタンス名のカンマ区切りのリストをかっこで囲んで指定します。これにより、SAVEまたはDISCARD設定がそれらのインスタンスのPDBにのみ適用されます。
ALLを指定して、SAVEまたはDISCARD設定をすべてのインスタンスのPDBに適用します。
ALL EXCEPTを指定して、SAVEまたはDISCARD設定を指定されたインスタンスを除くすべてのインスタンスのPDBに適用します。
この句を使用して、1つ以上のPDBの状態を変更できます。
状態を変更する1つ以上のPDBのpdb_nameを指定します。
ALLを指定すると、CDB内のすべてのPDBの状態を変更できます。
ALL EXCEPTを指定すると、pdb_nameを使用して指定したPDBを除く、CDB内のすべてのPDBの状態を変更できます。
PDBがすでに指定した状態にある場合は、PDBの状態は変わらず、エラーは返されません。状態を変更できないPDBがあると、そのPDBにエラーが発生します。
CDBからPDBを切断する例: 次の文はPDB pdb1を切断し、PDBのメタデータをXMLファイル/oracle/data/pdb1.xmlに格納します。
ALTER PLUGGABLE DATABASE pdb1 UNPLUG INTO '/oracle/data/pdb1.xml';
PDBの設定を変更する例: 次の文は、PDB pdb2内のすべての表領域によって使用されるストレージ量の制限を500Mに変更します。
ALTER PLUGGABLE DATABASE pdb2 STORAGE (MAXSIZE 500M);
PDBのデータファイルをオフラインにする例: 次の文は、PDB pdb3に関連付けられたデータファイルをオフラインにします。
ALTER PLUGGABLE DATABASE pdb3 DATAFILE ALL OFFLINE;
PDBの状態の変更: 例 PDB pdb4がクローズされている、つまり、オープン・モードがMOUNTEDであることが前提となります。次の文は、READ ONLYオープン・モードでpdb4をオープンします。
ALTER PLUGGABLE DATABASE pdb4 OPEN READ ONLY;
次の文は、FORCEキーワードを使用して、pdb4のオープン・モードをREAD ONLYからREAD WRITEに変更します。
ALTER PLUGGABLE DATABASE pdb4 OPEN READ WRITE FORCE;
次の文は、PDB pdb4をクローズします。
ALTER PLUGGABLE DATABASE pdb4 CLOSE;
次の文は、READ ONLYオープン・モードでPDB pdb4をオープンします。RESTRICTEDキーワードが指定されているため、PDBへのアクセスは、PDBの中でRESTRICTED SESSION権限を持っているユーザーのみに許可されます。
ALTER PLUGGABLE DATABASE pdb4 OPEN READ ONLY RESTRICTED;
PDB pdb5がクローズされている、つまり、オープン・モードがMOUNTEDであることが前提となります。Oracle Real Application Clusters環境で、次の文は、インスタンスORCLDB_1およびORCLDB_2の中でPDB pdb5をREAD WRITEオープン・モードでオープンします。
ALTER PLUGGABLE DATABASE pdb5
OPEN READ WRITE INSTANCES = ('ORCLDB_1', 'ORCLDB_2');
Oracle Real Application Clusters環境で、次の文は、現在のインスタンスの中のPDB pdb6をクローズして、インスタンスORCLDB_3の中でpdb6を再オープンするようにデータベースに指示します。
ALTER PLUGGABLE DATABASE pdb6 CLOSE RELOCATE TO 'ORCLDB_3';
CDB内のすべてのPDBの状態を変更する例: 現在のコンテナがルートであることが前提となります。次の文はCDB内のすべてのPDBをREAD ONLYオープン・モードでオープンします。
ALTER PLUGGABLE DATABASE ALL OPEN READ ONLY;