用途
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;