16 PDBの管理
PDBの管理には、PDBへの接続、PDBの変更、PDBに関連付けられたサービスの管理などのタスクが含まれます。
- PDB管理について
プラガブル・データベース(PDB)の管理には、CDBの管理に必要なタスクのサブセットが含まれます。 - PDBへの接続の管理
PDBの接続はCDBと同じ方法で管理しますが、特別な考慮事項がいくつかあります。 - システム・レベルでのPDBの変更
ALTER SYSTEM
文を使用してPDBを変更できます。 - データベース・レベルでのPDBの変更
ALTER PLUGGABLE DATABASE
文を使用してPDBを変更できます。 - PDBのオープン・モードの変更
PDBのオープン・モードは、ALTER PLUGGABLE DATABASE
のSQL文またはSQL*PlusのSTARTUP
コマンドを使用して変更できます。
関連トピック
親トピック: マルチテナント環境の管理
PDB管理について
プラガブル・データベース(PDB)の管理には、CDBの管理に必要なタスクのサブセットが含まれます。
タスクのこのサブセットは、ほとんどがPDBとCDBで同じですが、違いもあります。たとえば、PDBのオープン・モードを変更する場合に違いがあります。また、PDB管理者は、単一のPDBの管理に限定され、マルチテナント・コンテナ・データベース(CDB)内の他のPDBは管理できません。
- PDBとCDBに共通するタスク
ほとんどの管理タスクがPDBとCDBで同じです。 - CDBに固有のタスク
現在のコンテナがPDBである場合に、いくつかの管理タスクを実行できません。
関連項目:
現在のPDBのオープン・モードを変更するには、「データベース・レベルでのPDBの変更」を参照してください
親トピック: PDBの管理
PDBとCDBに共通するタスク
ほとんどの管理タスクがPDBとCDBで同じです。
PDBを管理する場合、ALTER DATABASE
、ALTER PLUGGABLE DATABASE
またはALTER SYSTEM
文を使用してPDBを変更できます。また、PDBでDDL文を実行することもできます。次の表は、PDBとCDBに共通する一部のタスクについて説明しています。
表16-1 PDBとCDBに共通する管理タスク
タスク | 説明 | 追加情報 |
---|---|---|
表領域の管理 |
PDBの表領域を作成、変更および削除できます。各PDBのデフォルト表領域およびデフォルト表領域タイプを指定できます。また、各PDBのデフォルト一時表領域があります。必要に応じて、個々のPDBで使用する追加の一時表領域を作成できます。 |
表領域の管理の詳細は、『Oracle Database管理者ガイド』を参照してください |
データファイルおよび一時ファイルの管理 |
各PDBには独自のデータファイルがあります。CDBで管理しているのと同じ方法で、データ・ファイルおよび一時ファイルを管理できます。 |
データファイルおよび一時ファイルの管理の詳細は、『Oracle Database管理者ガイド』を参照してください |
スキーマ・オブジェクトの管理 |
CDBで行うのと同じ方法で、PDB内のスキーマ・オブジェクトを作成、変更および削除できます。特定のPDBで起動するトリガーを作成することもできます。 CDBのデータベース・リンクを管理する場合、ルートには一意のグローバル・データベース名があり、各PDBも同様です。ルートのグローバル名は、 |
スキーマ・オブジェクトの詳細は、『Oracle Database管理者ガイド』を参照してください Oracle Database管理者ガイドCDBでのトリガーの作成の詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください |
親トピック: PDB管理について
CDBに固有のタスク
現在のコンテナがPDBである場合に、いくつかの管理タスクを実行できません。
次のタスクは、現在のコンテナがルートである場合にCDB全体またはCDBルートで共通ユーザーが実行します。
-
CDBインスタンスの起動および停止
-
ALTER DATABASE
文を使用したCDBまたはルートの変更 -
ALTER SYSTEM
文を使用したCDBまたはルートの変更 -
CDBまたはルートでのデータ定義言語(DDL)文の実行
-
次のコンポーネントの管理:
-
プロセス
-
メモリー
-
エラーおよびアラート
-
診断データ
-
制御ファイル
-
オンラインREDOログ・ファイルおよびアーカイブREDOログ・ファイル
-
UNDO
-
-
PDBの作成、接続、切断および削除
現在のコンテナがルートである共通ユーザーは、1つ以上のPDBのオープン・モードを変更することもできます。同様に、現在のコンテナがPDBである共通ユーザーまたはローカル・ユーザーは、現在のPDBのオープン・モードを変更できます。
PDBへの接続の管理
PDBの接続はCDBと同じ方法で管理しますが、特別な考慮事項がいくつかあります。
- PDBへの接続
いくつかの手法を使用して、SQL*PlusCONNECT
コマンドでPDBに接続できます。 - PDBのサービスの管理
PDBのサービスを作成、変更または削除できます。 - 参照先PDBのリスナー設定の変更
プロキシPDBによって参照されているPDBは参照先PDBと呼ばれます。
親トピック: PDBの管理
PDBへの接続
いくつかの手法を使用して、SQL*Plus CONNECT
コマンドでPDBに接続できます。
この項では、SQL*PlusでCDBに接続する方法を理解していることを想定しています。
次の手法を使用して、SQL*Plus CONNECT
コマンドでPDBに接続できます。
-
オペレーティング・システム認証を使用したローカル接続
-
簡易接続を使用したデータベース接続
-
サービス名を使用したデータベース接続
前提条件
次の前提条件を満たしている必要があります。
-
PDBに接続するユーザーは、そのPDBで
CREATE SESSION
権限を付与されている必要があります。 -
SYSDBA
、SYSOPER
、SYSBACKUP
またはSYSDG
の管理権限を持たないユーザーとしてPDBに接続するには、PDBをオープンにしている必要があります。
ノート:
この項では、PDBに接続するユーザーはローカル・ユーザー・アカウントを使用することを想定しています。共通ユーザーとしてPDBに接続することも可能で、共通ユーザーとしてルートに接続してからPDBに切り替えることができます。
SQL*Plus CONNECTコマンドを使用してPDBに接続するには:
-
SQL*Plusを起動できるよう、環境を構成します。
-
/NOLOG
引数を使用してSQL*Plusを起動します。sqlplus /nolog
-
簡易接続またはネット・サービス名を使用して
CONNECT
コマンドを発行し、PDBに接続します。PDBに接続するには、
PDB
プロパティを指定してサービスに接続します。
例16-1 PDBのネット・サービス名を使用したSQL*PlusでのPDBへの接続
次のコマンドでは、hrapp
サービスを使用してhr
ユーザーに接続します。hrapp
サービスには、hrpdb
PDBのPDB
プロパティが含まれています。この例では、hrapp
サービスのネット・サービス名を持つようにクライアントが設定されていると想定しています。
CONNECT hr@hrapp
関連項目:
-
PDBのオープン・モードの変更の詳細は、「PDBのオープン・モードの変更」および「データベース・レベルでのPDBの変更」を参照してください。
-
共通ユーザーとしてPDBに接続する方法の詳細は、「CDB内のコンテナへのアクセスについて」を参照してください
-
SQL*Plusを使用してデータベースに接続する方法の詳細は、『Oracle Database管理者ガイド』を参照してください
親トピック: PDBへの接続の管理
PDBのサービスの管理
PDBのサービスを作成、変更または削除できます。
- PDBのサービスについて
各PDBにはデフォルトのサービスがありますが、SRVCTLまたはDBMS_SERVICE
を使用して独自のサービスを作成できます。 - SRVCTLおよびDBMS_SERVICEを使用したPDBのサービスの管理
PDB
プロパティを指定して、サービスを作成、変更または削除できます。
関連項目:
親トピック: PDBへの接続の管理
PDBのサービスについて
各PDBにはデフォルトのサービスがありますが、SRVCTLまたはDBMS_SERVICE
を使用して独自のサービスを作成できます。
- PDBプロパティ
PDB
プロパティによって、PDBにサービスが関連付けられます。PDB
プロパティを使用してクライアントがサービスに接続する場合、接続の現在のコンテナはPDBになります。 - デフォルトおよびユーザー定義のサービス
PDBを作成すると、PDBの新しいデフォルト・サービスが自動的に作成されます。 - サービスを管理するためのツール
サービスの作成および変更にSRVCTLユーティリティを使用することをお薦めします。または、DBMS_SERVICE
パッケージも使用できます。
親トピック: PDBのサービスの管理
PDBプロパティ
PDB
プロパティによって、PDBにサービスが関連付けられます。PDB
プロパティを使用してクライアントがサービスに接続する場合、接続の現在のコンテナはPDBになります。
PDB
プロパティは、次のいずれかを行う場合にのみ必要です。
-
サービスの作成
-
サービスの
PDB
プロパティの変更
サービスを開始、停止または削除するときには、PDB
プロパティを指定しません。また、サービスのPDB
プロパティを変更せずにサービスを変更する場合、PDB
プロパティを指定する必要はありません。
ALL_SERVICES
データ・ディクショナリ・ビューを問い合せると、サービスのPDB
プロパティを表示できます。また、SRVCTLユーティリティを使用する場合は、srvctl config service
コマンドを使用できます。
関連項目:
親トピック: PDBのサービスについて
デフォルトおよびユーザー定義のサービス
PDBを作成すると、PDBの新しいデフォルト・サービスが自動的に作成されます。
各データベース・サービス名は、1つのCDB内で一意である必要があり、特定のリスナーからアクセスされるインスタンスを持つすべてのCDBのスコープ内で一意である必要があります。デフォルト・サービスの名前はPDBと同じになります。このサービスは、ユーザーが管理できず、管理タスクにのみ使用する必要があります。
アプリケーションには常にユーザー定義のサービスを使用します。これは、ユーザー定義のサービスはアプリケーションの要件に適合するようにカスタマイズできるためです。デフォルトのPDBサービスをアプリケーションに使用しないことをお薦めします。
ノート:
サービスをプロキシPDBと関連付けないでください。
Oracle Clusterware環境では、PDBに作成される各サービスにOracle Clusterwareリソースを作成する必要があります。データベースがOracle RestartまたはOracle Clusterwareで管理され、SRVCTLユーティリティを使用して、クローズするPDBのPDBプロパティを指定してサービスを開始する場合、PDBは、サービスが開始されたノードにおいて読取り/書込みモードでオープンされます。ただし、PDBサービスを停止しても、PDBのオープン・モードは変更されません。
PDBを切断または削除した場合、切断または削除されたPDBのサービスは自動的に削除されません。これらのサービスは、手動で削除する必要があります。
関連項目:
-
PDBのオープン・モードの変更の詳細は、「ALTER PLUGGABLE DATABASE文を使用したPDBの変更」を参照してください
親トピック: PDBのサービスについて
サービスを管理するためのツール
サービスの作成および変更にSRVCTLユーティリティを使用することをお薦めします。または、DBMS_SERVICE
パッケージも使用できます。
SRVCTL
単一インスタンス・データベースがOracle Restartで管理されている場合、またはOracle RACデータベースがOracle Clusterwareで管理されている場合は、サーバー制御(SRVCTL)ユーティリティを使用して、サービスを作成、変更または削除します。
SRVCTLユーティリティを使用してPDBのサービスを作成する場合は、add
service
コマンドを使用し、-pdb
パラメータでPDBを指定します。-pdb
を指定しない場合、そのサービスはルートに関連付けられます。
SRVCTLユーティリティを使用してサービスのPDB
プロパティを変更する場合は、modify
service
コマンドを使用し、-pdb
パラメータでPDBを指定します。SRVCTLユーティリティを使用してPDBのサービスを削除するには、remove
service
コマンドを使用します。
-pdb
パラメータが含まれていない場合でも、start service
、stop service
、relocate service
コマンドなどの他のSRVCTLコマンドを使用してサービスを管理できます。
SRVCTLユーティリティを使用してサービスを作成または変更する場合、PDB名は検証されません。ただし、無効なPDB名を使用してサービスを開始しようとすると、エラーが発生します。
DBMS_SERVICE
データベースがOracle RestartまたはOracle Clusterwareで管理されていない場合は、DBMS_SERVICE
パッケージを使用して、データベース・サービスを作成または削除します。
DBMS_SERVICE
は、ルート・レベルで各PDBに存在します。各レベルのSYS
によって所有され、実行されます。PDB管理者は、別のPDBによって所有されているサービスの接続を停止、再配置またはテストできません。
DBMS_SERVICE
パッケージを使用してサービスを作成する場合、サービスのPDB
プロパティは現在のコンテナに設定されます。したがって、特定のPDBに設定されたPDB
プロパティを持つサービスをDBMS_SERVICE
パッケージを使用して作成するには、PDBが現在のコンテナであるときにCREATE_SERVICE
プロシージャを実行します。現在のコンテナがルートの場合にCREATE_SERVICE
プロシージャを使用してサービスを作成すると、そのサービスはルートと関連付けられます。
DBMS_SERVICE
パッケージを使用してサービスのPDB
プロパティは変更できません。ただし、1つのPDBからサービスを削除し、同様なサービスを別のPDBに作成できます。この場合、新しいサービスのPDB
プロパティは、それが作成されたPDBのものになります。
START_SERVICE
プロシージャやSTOP_SERVICE
プロシージャなど、他のDBMS_SERVICE
サブプログラムを使用してサービスを管理することもできます。DBMS_SERVICE.*_CONNECTION_TEST
プロシージャを使用して、計画メンテナンス中にデータベース接続の状態をチェックできます。DELETE_SERVICE
プロシージャを使用してサービスを削除します。
関連項目:
-
Oracleデータベースの自動再起動の構成の詳細は、『Oracle Database管理者ガイド』を参照してください
-
DBMS_SERVICE
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください -
Oracle Real Application Clusters (Oracle RAC)環境でサービスを作成する方法の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照
親トピック: PDBのサービスについて
SRVCTLおよびDBMS_SERVICEを使用したPDBのサービスの管理
PDB
プロパティを使用してサービスを作成、変更または削除できます。
SRVCTLユーティリティを使用し、PDBプロパティを使用してサービスを管理するには:
-
正しいユーザー・アカウントを使用して、ホスト・コンピュータにログインします。
-
正しいOracleホームからSRVCTLを実行していることを確認します。
-
次のどちらかの操作を実行します。
-
サービスを作成または変更するには、
add service
コマンドを実行し、-pdb
パラメータでPDBを指定します。 -
サービスの
PDB
プロパティを変更する場合は、modify service
コマンドを実行し、-pdb
パラメータでPDBを指定します。 -
サービスを削除するには、
remove service
コマンドを実行します。
-
DBMS_SERVICEパッケージを使用してPDBのサービスを作成または削除するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
「PDBへの接続」を参照してください。
-
DBMS_SERVICE
パッケージ内の適切なサブプログラムを実行します。
ノート:
データベースがOracle RestartまたはOracle Clusterwareで管理されている場合は、SRVCTLユーティリティを使用してサービスを管理します。DBMS_SERVICE
パッケージは使用しないでください。
例16-2 SRVCTLユーティリティを使用したPDBのサービスの作成
この例では、DB_UNIQUE_NAME mycdb
で指定されたCDB内のPDB salespdb
にsalesrep
サービスを追加します。
srvctl add service -db mycdb -service salesrep -pdb salespdb
例16-3 SRVCTLユーティリティを使用したサービスのPDBプロパティの変更
この例では、DB_UNIQUE_NAME mycdb
で指定されたCDBでsalesrep
サービスを変更して、このサービスをhrpdb
PDBに関連付けます。
srvctl modify service
-db mycdb
-service salesrep
-pdb hrpdb
例16-4 SRVCTLユーティリティを使用したOracle RACでのサービスの再配置
relocate service
コマンドを使用して、サービスが現在実行中のOracle RACインスタンスから、実行可能な別のインスタンスにサービスを再配置できます。この手法は、管理者管理データベースのサービス、およびポリシー管理データベースのシングルトン・サービスの両方に適用されます。
次のコマンドは、現在実行中のOracle RACインスタンスcdb_inst1
から、現在実行されていないインスタンスcdb_inst2
に、サービスsvc1
を再配置します。
srvctl relocate service
db cdb
service svc1
oldinst cdb_inst1
newinst cdb_inst2
–drain_timeout NNN
–stopoption immediate
次のコマンドは、ポリシー管理データベースの場合と同じ操作を実行します。
srvctl relocate service
db cdb
service svc1
currentnode cdb_inst1
targetnode cdb_inst2
–drain_timeout NNN
–stopoption immediate
例16-5 SRVCTLユーティリティを使用したサービスの削除
この例では、DB_UNIQUE_NAME
mycdb
で指定されたCDBでsalesrep
サービスを削除します。
srvctl remove service
-db mycdb
-service salesrep
例16-6 DBMS_SERVICEパッケージを使用したPDBのサービスの作成
この例では、現在のPDBにsalesrep
サービスを作成します。
BEGIN
DBMS_SERVICE.CREATE_SERVICE(
service_name => 'salesrep',
network_name => 'salesrep.example.com');
END;
/
サービスのPDB
プロパティが現在のコンテナに設定されます。たとえば、現在のコンテナがsalespdb
PDBの場合、サービスのPDBプロパティはsalespdb
になります。
例16-7 DBMS_SERVICEパッケージを使用したサービスの削除
この例では、現在のPDBのsalesrep
サービスを削除します。
BEGIN
DBMS_SERVICE.DELETE_SERVICE(
service_name => 'salesrep');
END;
/
関連項目:
-
DBMS_SERVICE
パッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください -
Oracle Real Application Clusters (Oracle RAC)環境でサービスを管理する方法の詳細は、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照
親トピック: PDBのサービスの管理
参照先PDBのリスナー設定の変更
プロキシPDBによって参照されているPDBは参照先PDBと呼ばれます。
参照先PDBのリスナーのポートまたはホスト名が変更された場合は、プロキシPDBが引き続き正しく機能するように参照先PDBのリスナー設定をリセットする必要があります。
- 参照先PDBのリスナー・ホスト名の変更
参照先PDBのリスナーのホスト名が変更された場合は、ALTER PLUGGABLE DATABASE CONTAINERS HOST
文を実行して、プロキシPDBが引き続き正しく機能するように参照先PDBのホスト名をリセットする必要があります。 - 参照先PDBのリスナー・ポート番号の変更
参照先PDBのリスナーのポート番号が変更された場合は、ALTER PLUGGABLE DATABASE CONTAINERS PORT
文を実行して、プロキシPDBが引き続き正しく機能するように参照先PDBのポート番号をリセットする必要があります。
関連トピック
親トピック: PDBへの接続の管理
参照PDBのリスナー・ホスト名の変更
参照先PDBのリスナーのホスト名が変更された場合は、ALTER PLUGGABLE DATABASE CONTAINERS HOST
文を実行して、プロキシPDBが引き続き正しく機能するように参照先PDBのホスト名をリセットする必要があります。
プロキシPDBは、PDBの作成中に、データベース・リンクを使用してその参照先PDBと通信を確立します。通信が確立された後、プロキシPDBはPDBの作成時に使用されたデータベース・リンクを使用せずに参照先PDBと直接通信し、データベース・リンクを削除できます。参照先PDBのリスナー・ホスト名が変更された場合、各プロキシPDBは参照先PDBとの通信を再確立する必要があります。
Oracle Database 19cバージョン19.10以降では、ALTER PLUGGABLE DATABASE CONTAINERS HOST
コマンドを、CDBルート、アプリケーション・ルートまたはPDBで、PDB名を含めることにより実行できます。
ALTER DATABASE
システム権限を持っている必要があり、その権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。
例16-8 参照先PDBのリスナー・ホスト名の変更
この例では、参照先PDBのホスト名をmyhost.example.com
に変更しています。
ALTER PLUGGABLE DATABASE CONTAINERS HOST='myhost.example.com';
例16-9 リスナー・ホスト名のデフォルト値へのリセット
この例は、参照先PDBのホスト名をデフォルト値にリセットしています。デフォルト値は参照先PDBのホスト名です。
ALTER PLUGGABLE DATABASE CONTAINERS HOST RESET;
関連項目:
例16-10 リスナー・ホスト名の変更時におけるPDB名の使用
この例では、PDB01
という名前のPDBのホスト名をmyhost.example.com
に変更します。
ALTER PLUGGABLE DATABASE PDB01 CONTAINERS HOST='myhost.example.com';
親トピック: 参照先PDBのリスナー設定の変更
参照先PDBのリスナー・ポート番号の変更
参照先PDBのリスナーのポート番号が変更された場合は、ALTER PLUGGABLE DATABASE CONTAINERS PORT
文を実行して、プロキシPDBが引き続き正しく機能するように参照先PDBのポート番号をリセットする必要があります。
プロキシPDBは、PDBの作成中に、データベース・リンクを使用してその参照先PDBと通信を確立します。通信が確立された後、プロキシPDBはPDBの作成時に使用されたデータベース・リンクを使用せずに参照先PDBと直接通信し、データベース・リンクを削除できます。参照先PDBのリスナーのポート番号が変更された場合、各プロキシPDBは参照先PDBと通信を再確立する必要があります。
Oracle Database 19cバージョン19.10以降では、ALTER PLUGGABLE DATABASE CONTAINERS PORT
コマンドを、CDBルート、アプリケーション・ルートまたはPDBで、PDB名を含めることにより実行できます。
ALTER
DATABASE
システム権限を持っている必要があり、その権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。
- SQL*Plusで、現在のコンテナが参照先PDBであることを確認します。
ALTER PLUGGABLE DATABASE CONTAINERS PORT
文を実行して新しいポート番号を指定するか、RESET
キーワードを指定してポート番号をデフォルト設定(1521)に戻します。- 参照先PDBを参照するプロキシPDBを削除して再作成し、各プロキシPDBと参照先PDBの通信を再確立します。
例16-11 参照先PDBのリスナー・ポート番号の変更
この例では、参照先PDBのポート番号を1543
に変更しています。
ALTER PLUGGABLE DATABASE CONTAINERS PORT=1543;
例16-12 リスナー・ポート番号のデフォルト値へのリセット
この例は、参照先PDBのポート番号をデフォルト値にリセットしています。ポート番号のデフォルト値は1521です。
ALTER PLUGGABLE DATABASE CONTAINERS PORT RESET;
例16-13 ポート番号の変更時におけるPDB名の使用
この例では、PDB01
という名前のPDBのポート番号を1543
に変更します。
ALTER PLUGGABLE DATABASE PDB01 CONTAINERS PORT=1543;
関連トピック
親トピック: 参照先PDBのリスナー設定の変更
システム・レベルでのPDBの変更
ALTER SYSTEM
文を使用してPDBを変更できます。
- PDBのシステム・レベルの変更について
ALTER SYSTEM
文によって、PDBを動的に変更できます。PDBが動作する方法を変更する場合は、ALTER SYSTEM
文を発行できます。 - ALTER SYSTEMを使用したPDBの変更
システム・レベルでPDBを変更するには、ALTER SYSTEM
文を使用します。
親トピック: PDBの管理
PDBのシステム・レベルの変更について
ALTER SYSTEM
文によって、PDBを動的に変更できます。PDBが動作する方法を変更する場合は、ALTER SYSTEM
文を発行できます。
現在のコンテナがPDBである場合、次のALTER SYSTEM
文を実行できます。
-
ALTER SYSTEM FLUSH { SHARED_POOL | BUFFER_CACHE | FLASH_CACHE }
-
ALTER SYSTEM { ENABLE | DISABLE } RESTRICTED SESSION
-
ALTER SYSTEM SET USE_STORED_OUTLINES
-
ALTER SYSTEM { SUSPEND | RESUME }
-
ALTER SYSTEM CHECKPOINT
-
ALTER SYSTEM CHECK DATAFILES
-
ALTER SYSTEM REGISTER
-
ALTER SYSTEM { KILL | DISCONNECT } SESSION
-
ALTER SYSTEM SET initialization_parameter
(初期化パラメータのサブセットの場合)
その他のすべてのALTER SYSTEM
文は、CDB全体に影響し、ルートの共通ユーザーによって実行される必要があります。
ALTER SYSTEM SET initialization_parameter
文では、PDBの一部の初期化パラメータのみを変更できます。すべての初期化パラメータは、ルートに対して設定できます。初期化パラメータがPDB用に明示的に設定されていない場合、PDBではルートからパラメータ値を継承します。
V$SYSTEM_PARAMETER
ビューのパラメータのISPDB_MODIFIABLE
列がTRUE
の場合は、PDBの初期化パラメータを変更できます。次の問合せにより、PDBで変更可能なすべての初期化パラメータがリストされます。
SELECT NAME
FROM V$SYSTEM_PARAMETER
WHERE ISPDB_MODIFIABLE='TRUE'
ORDER BY NAME;
現在のコンテナがPDBである場合、ALTER SYSTEM SET initialization_parameter
文を実行して、PDBを変更します。この文は、ルートまたは他のPDBには影響しません。次の表は、サーバー・パラメータ・ファイル(SPFILE)を使用し、ALTER SYSTEM SET
文をPDBで実行した場合のSCOPE
句の動作について説明しています。
SCOPE設定 | 動作 |
---|---|
|
初期化パラメータ設定は、メモリーで変更され、PDBで即時に有効になります。新しい設定は、PDBにのみ影響を及ぼします。 この設定によって、次のいずれかの場合、ルートで設定された値に戻ります。
|
|
初期化パラメータ設定は、PDBに対して変更されて永続的に格納されます。新しい設定は、次の場合に有効になります。
これらの場合、新しい設定はPDBにのみ影響を及ぼします。 |
|
初期化パラメータ設定は、メモリーで変更され、PDBに対して変更されて永続的に格納されます。新しい設定はPDBで即時に有効になり、PDBが停止して再オープンされた後、またはCDBが停止して再オープンされた後も保持されます。新しい設定は、PDBにのみ影響を及ぼします。 |
PDBがCDBから切断されると、SCOPE=BOTH
またはSCOPE=SPFILE
を使用してPDBに指定された初期化パラメータの値は、PDBのXMLメタデータ・ファイルに追加されます。これらの値は、PDBがCDBに接続したときにPDBでリストアされます。
ノート:
テキスト初期化パラメータ・ファイル(PFILE)には、PDB固有のパラメータ値を含めることはできません。
ALTER SYSTEMを使用したPDBの変更
システム・レベルでPDBを変更するには、ALTER SYSTEM
文を使用します。
前提条件
現行ユーザーは次の権限を付与されている必要があり、権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。
-
CREATE SESSION
-
ALTER SYSTEM
ALTER SYSTEMを使用してPDBを変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
「PDBへの接続」を参照してください。
-
ALTER SYSTEM
文を実行します。
例16-14 PDBでのセッション制限の有効化
PDBでセッションを制限するには、次の文を発行します。
ALTER SYSTEM ENABLE RESTRICTED SESSION;
例16-15 PDBの統計収集レベルの変更
次のALTER SYSTEM
文によって、現在のPDBのSTATISTICS_LEVEL
初期化パラメータがALL
に設定されます。
ALTER SYSTEM SET STATISTICS_LEVEL = ALL SCOPE = MEMORY;
データベース・レベルでのPDBの変更
ALTER PLUGGABLE DATABASE
文を使用してPDBを変更できます。
- PDBレベルの変更について
PDBのALTER PLUGGABLE DATABASE
は、CDBのALTER DATABASE
に似ています。 - ALTER PLUGGABLE DATABASE文を使用したPDBの変更
単一のPDBの属性を変更するには、ALTER PLUGGABLE DATABASE
文を使用します。 - PDBのグローバル・データベース名の変更
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO
文を使用して、PDBのグローバル・データベース名を変更できます。 - リフレッシュ可能なクローンPDBの管理
リフレッシュ可能なクローンPDBは、ソースPDBと定期的に同期できる読取り専用クローンです。
親トピック: PDBの管理
PDBレベルの変更について
PDBのALTER PLUGGABLE DATABASE
は、CDBのALTER DATABASE
に似ています。
ノート:
ALTER PLUGGABLE DATABASE
文でサポートされている句が含まれ、現在のコンテナがPDBである場合に発行されたALTER DATABASE
文は、対応するALTER PLUGGABLE DATABASE
文と同じ効果があります。ただし、これらの文には、pdb_storage_clause、pdb_change_state_clause、logging_clause,、pdb_recovery_clauseなど、PDBに固有の句を含めることはできません。
- 記憶域の句
ALTER PLUGGABLE DATABASE
を使用して、PDBレベルで記憶域を構成します。 - ロギングおよびリカバリの句
ALTER PLUGGABLE DATABASE
を使用して、PDBレベルでロギング、リカバリおよびリカバリ・モードを設定します。 - その他の句
ALTER PLUGGABLE DATABASE
を使用して、オープン・モード、グローバル名、タイム・ゾーンおよびデフォルト・エディションを変更できます。
親トピック: データベース・レベルでのPDBの変更
記憶域の句
ALTER PLUGGABLE DATABASE
を使用して、PDBレベルで記憶域を構成します。
ALTER PLUGGABLE DATABASE
の次の句は、PDB記憶域を変更します。
-
database_file_clauses
この句は、
ALTER DATABASE
文での場合と同様に機能しますが、文は現在のPDBに適用されます。 -
DEFAULT TABLESPACE
句現在のコンテナがPDBである間に作成されたユーザーの場合、この句では、デフォルト表領域が
CREATE USER
文で指定されていない場合に、ユーザーのデフォルト表領域を指定します。 -
DEFAULT TEMPORARY TABLESPACE
句現在のコンテナがPDBである間に作成されたユーザーの場合、この句では、デフォルト一時表領域が
CREATE USER
文で指定されていない場合に、ユーザーのデフォルト一時表領域を指定します。 -
SET DEFAULT { BIGFILE | SMALLFILE } TABLESPACE
句この句によって、PDBで以降に作成される表領域のデフォルト・タイプがbigfileまたはsmallfileに変更されます。この句は、
ALTER DATABASE
文での場合と同様に機能しますが、現在のPDBに適用されます。 -
pdb_storage_clause
この句によって、PDBに属するすべての表領域が使用する記憶域の量に対する制限が設定されます。この制限は、PDBに属している表領域を構成するすべてのデータファイルおよび一時ファイルの合計サイズに適用されます。
この句では、PDB内の統合監査OSスピルオーバー(.bin形式)ファイルに使用できるストレージ量の制限を設定することもできます。この制限に達した場合は、これらのファイルにストレージを追加できません。
この句では、PDBに接続しているセッションが使用できる共有一時表領域の記憶域の量に対する制限も設定できます。制限に達すると、PDBに接続しているセッションは、共有一時表領域で追加の記憶域を使用できなくなります。
親トピック: PDBレベルの変更について
ロギングおよびリカバリの句
ALTER PLUGGABLE DATABASE
を使用して、PDBレベルでロギング、リカバリおよびリカバリ・モードを設定します。
logging_clause
ノート:
この句は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
この句では、PDBのロギング属性を指定します。ロギング属性は、特定のDML操作をREDOログ・ファイルに記録する(LOGGING
)か記録しない(NOLOGGING
)かを制御します。
この句を使用して、次の属性のいずれかを指定できます。
-
LOGGING
は、PDB内で今後作成される表領域がいずれも、デフォルトでLOGGING
属性を使用して作成されることを示します。このデフォルトのロギング属性は、CREATE TABLE
文などのスキーマ・オブジェクト・レベルでNOLOGGING
を指定することで上書きできます。 -
NOLOGGING
は、PDB内で今後作成される表領域がいずれも、デフォルトでNOLOGGING
属性を使用して作成されることを示します。このデフォルトのロギング属性は、CREATE TABLE
文などのスキーマ・オブジェクト・レベルでLOGGING
を指定することで上書きできます。
指定の属性は、CREATE TABLESPACE
文にlogging_clauseが指定されていない場合に、PDB内で作成される表領域のロギング属性の設定に使用されます。
DBA_PDBS
ビューには、PDBの現在のロギング属性が表示されます。
ノート:
この句を使用するには、PDBを制限モードでオープンする必要があります。
pdb_force_logging_clause
ノート:
この句は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
この句は、PDBを強制ロギング・モードまたは強制ロギングなしモードにするか、PDBの強制ロギングモードまたは強制ロギングなしモードを解除します。
この句を使用して、次の属性のいずれかを指定できます。
-
ENABLE FORCE LOGGING
はPDBを強制ロギング・モードにし、これにより、一時表領域および一時セグメントでの変更を除いたPDBでの変更はすべて記録されます。強制ロギング・モードは、スキーマ・オブジェクト・レベルで上書きできません。PDBレベルの強制ロギング・モードは、PDBの各表領域で指定する
NOLOGGING
またはFORCE LOGGING
設定、およびPDBの各データベース・オブジェクトで指定するNOLOGGING
設定より優先され、これらの設定には影響されません。ENABLE FORCE LOGGING
は、PDBが強制ロギングなしモードである場合、指定できません。DISABLE FORCE NOLOGGING
は、最初に指定する必要があります。 -
DISABLE FORCE LOGGING
は、現在強制ロギング・モードであるPDBのそのモードを解除します。PDBが現在強制ロギング・モードでない場合、DISABLE FORCE LOGGING
を指定するとエラーになります。 -
ENABLE FORCE NOLOGGING
はPDBを強制ロギングなしモードにし、これにより、PDBでの変更は記録されません。強制ロギングなしモードは、スキーマ・オブジェクト・レベルで上書きできません。CDB全体の強制ロギング・モードは、PDBレベルの強制ロギングなしモードより優先されます。PDBレベルの強制ロギングなしモードは、PDBの各表領域で指定する
LOGGING
またはFORCE LOGGING
設定、およびPDBの各データベース・オブジェクトで指定するLOGGING
設定より優先され、これらの設定には影響されません。ENABLE FORCE NOLOGGING
は、PDBが強制ロギング・モードである場合、指定できません。DISABLE FORCE LOGGING
は、最初に指定する必要があります。 -
DISABLE FORCE NOLOGGING
は、現在強制ロギングなしモードであるPDBのそのモードを解除します。PDBが現在強制ロギングなしモードでない場合、DISABLE FORCE NOLOGGING
を指定するとエラーになります。
DBA_PDBS
ビューには、PDBが強制ロギング・モードであるか、強制ロギングなしモードであるかが表示されます。
ノート:
この句を使用するには、PDBを制限モードでオープンする必要があります。
pdb_recovery_clause
ノート:
この句は、Oracle Database 12cリリース1 (12.1.0.2)以上で使用できます。
ALTER PLUGGABLE DATABASE DISABLE RECOVERY
は、PDBに属するデータファイルをオフラインにし、PDBのリカバリを無効にします。PDBデータファイルは、リカバリが再度有効になるまで、リカバリ・セッションに含まれません。リカバリ中に作成された新しいデータファイルはいずれも無効になり、PDBの無名ファイルとして作成されます。
ALTER PLUGGABLE DATABASE ENABLE RECOVERY
は、PDBに属するデータファイルをオンラインにし、PDBをアクティブ・リカバリとマークします。このようなファイルはリカバリ・セッションに含まれます。
PDBのリカバリ・ステータスを確認するには、V$PDBS
ビューのRECOVERY_STATUS
列を問い合せます。
関連項目:
-
pdb_recovery_clauseの詳細は、『Oracle Data Guard概要および管理』を参照してください。
-
REDOレコードの書込みの管理の詳細は、『Oracle Database管理者ガイド』を参照してください
-
ロギング属性の詳細は、『Oracle Database SQL言語リファレンス』を参照してください
親トピック: PDBレベルの変更について
その他の句
ALTER PLUGGABLE DATABASE
を使用して、オープン・モード、グローバル名、タイム・ゾーンおよびデフォルト・エディションを変更できます。
現在のコンテナがPDBである場合、次のいずれかの句が含まれたALTER PLUGGABLE DATABASE
文によりPDBが変更されます。
-
pdb_change_state_clause
この句によって、現在のPDBのオープン・モードが変更されます。
オプションの
RESTRICTED
キーワードを指定すると、PDBへのアクセスはPDB内でRESTRICTED SESSION
権限を持つユーザーに限られます。この句で
FORCE
を指定すると、ALTER PLUGGABLE DATABASE
文のセマンティクスが変わるため、現在閉じているPDBをオープンする以外に、すでに開いているPDBのオープン・モードを変更するために使用できます。 -
RENAME GLOBAL_NAME
句この句によって、PDBの一意のグローバル・データベース名が変更されます。新しいグローバル・データベース名は、CDB内のいずれのコンテナ名とも異なる必要があります。PDBのグローバル・データベース名を変更すると、そのPDB名は、グローバル・データベース名の、最初のピリオドの前の部分の名前に変更されます。
グローバル・データベース名を変更する場合は、PDBへの接続に使用するデータベース・サービスの
PDB
プロパティを変更する必要があります。 -
set_time_zone_clause
この句は、
ALTER DATABASE
文での場合と同様に機能しますが、現在のPDBに適用されます。 -
DEFAULT EDITION
句この句は、
ALTER DATABASE
文での場合と同様に機能しますが、現在のPDBに適用されます。各PDBはエディションに基づく再定義を使用でき、あるPDBのエディションは他のPDBのエディションに影響しません。各PDBに独自のアプリケーションがあるマルチテナント環境では、個別のアプリケーションごとに、エディションに基づく再定義を独立して使用できます。
ALTER PLUGGABLE DATABASE文を使用したPDBの変更
単一のPDBの属性を変更するには、ALTER PLUGGABLE DATABASE
文を使用します。
現在のコンテナがPDBである場合は、ALTER PLUGGABLE DATABASE
文でPDBを変更します。この変更により、PDBのルートのデフォルト設定が上書きされます。この変更は、CDBルートまたは他のPDBには影響しません。
前提条件
次の前提条件を満たしている必要があります。
-
PDBのオープン・モードをマウントからオープンに、またはオープンからマウントに変更するには、現在のユーザーに
SYSDBA
、SYSOPER
、SYSBACKUP
またはSYSDG
管理権限が必要です。権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。ユーザーは、接続時にAS sys_privilege_name
を使用して権限を行使する必要があります。 -
ALTER PLUGGABLE DATABASE
文を使用して実行される他のすべての操作については、現在のユーザーにALTER DATABASE
システム権限が必要であり、その権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。 -
PDBをクローズするには、そのPDBがオープンされている必要があります。
ノート:
この項では、ALTER PLUGGABLE DATABASE
文を使用したPDBのグローバル・データベース名の変更については説明していません。
PDBを変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
ALTER PLUGGABLE DATABASE
文を実行します。
例16-16 PDBのオープン・モードの変更
-
ALTER PLUGGABLE DATABASE
文によって、現在のPDBのオープン・モードがマウントに変更されます。ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
-
次の文では、現在のPDBのオープン・モードを読取り専用に変更します。
ALTER PLUGGABLE DATABASE OPEN READ ONLY;
-
FORCE
キーワードを指定する場合を除き、PDBのオープン・モードをハイブリッド読取り専用に変更するには、マウント・モードである必要があります。次の文では、現在のPDBのオープン・モードをマウントまたは読取り専用オープンから読取り/書込みオープンに変更します。ALTER PLUGGABLE DATABASE OPEN HYBRID READ ONLY;
-
FORCE
キーワードを指定する場合を除き、PDBのオープン・モードを読取り専用または読取り/書込みに変更するには、マウント・モードである必要があります。次の文では、現在のPDBのオープン・モードをマウントまたは読取り専用オープンから読取り/書込みオープンに変更します。
ALTER PLUGGABLE DATABASE OPEN FORCE;
-
次の文では、現在のPDBのオープン・モードをマウントから移行に変更します。
ALTER PLUGGABLE DATABASE OPEN UPGRADE;
例16-17 PDBのデータファイルのオンライン化
このALTER PLUGGABLE DATABASE
文では、database_file_clauseを使用して、/u03/oracle/pdb1_01.dbf
データファイルをオンラインにします。
ALTER PLUGGABLE DATABASE DATAFILE '/u03/oracle/pdb1_01.dbf' ONLINE;
例16-18 PDBのデフォルト表領域の変更
-
次の
ALTER PLUGGABLE DATABASE
文では、DEFAULT TABLESPACE
句を使用して、PDBのデフォルト表領域をpdb1_tbs
に設定します。ALTER PLUGGABLE DATABASE DEFAULT TABLESPACE pdb1_tbs;
-
次の
ALTER PLUGGABLE DATABASE
文では、DEFAULT TEMPORARY TABLESPACE
句を使用して、PDBのデフォルト一時表領域をpdb1_temp
に設定します。ALTER PLUGGABLE DATABASE DEFAULT TEMPORARY TABLESPACE pdb1_temp;
ALTER PLUGGABLE DATABASE
文で指定した表領域または表領域グループは、PDBに存在する必要があります。現在のコンテナがPDBであり、デフォルトの表領域または一時表領域が明示的に割り当てられていないユーザーは、PDBのデフォルトの表領域または一時表領域を使用します。
例16-19 PDBのデフォルト表領域タイプの変更
次のALTER DATABASE
文では、SET DEFAULT TABLESPACE
句を使用して、PDBのデフォルトの表領域タイプをbigfileに変更します。
ALTER PLUGGABLE DATABASE SET DEFAULT BIGFILE TABLESPACE;
例16-20 PDBのストレージ制限の設定
-
次の文では、PDBに属しているすべての表領域のストレージ制限を2GBに設定します。
ALTER PLUGGABLE DATABASE STORAGE(MAXSIZE 2G);
-
次の文では、PDBに属している表領域にストレージ制限がないことを指定します。
ALTER PLUGGABLE DATABASE STORAGE(MAXSIZE UNLIMITED);
-
次の文では、PDBに属している表領域にストレージ制限がないこと、およびPDBに接続しているセッションが使用できる共有一時表領域にストレージ制限がないことを指定します。
ALTER PLUGGABLE DATABASE STORAGE UNLIMITED;
例16-21 PDBのロギング属性の設定
PDBが制限モードでオープンしている場合、次の文では、PDBにNOLOGGING
属性を指定します。
ALTER PLUGGABLE DATABASE NOLOGGING;
例16-22 PDBの強制ロギング・モードの設定
次の文では、PDBに対して強制ロギング・モードを有効にします。
ALTER PLUGGABLE DATABASE ENABLE FORCE LOGGING;
例16-23 PDBのデフォルト・エディションの設定
この例では、現在のPDBのデフォルト・エディションをPDB1E3
に設定します。
ALTER PLUGGABLE DATABASE DEFAULT EDITION = PDB1E3;
関連項目:
-
単一のPDBの属性を変更する句の詳細は、PDBレベルの変更についてを参照してください
-
ALTER PLUGGABLE DATABASE
文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください -
エディションに基づく再定義の詳細な説明は、『Oracle Database開発ガイド』を参照してください
親トピック: データベース・レベルでのPDBの変更
PDBのグローバル・データベース名の変更
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO
文を使用して、PDBのグローバル・データベース名を変更できます。
PDBのグローバル・データベース名を変更した場合、新しいグローバル・データベース名は、CDB内のいずれのコンテナ名とも異なる必要があります。
前提条件
次の前提条件を満たしている必要があります。
-
現行ユーザーは、
ALTER DATABASE
システム権限を持っている必要があり、その権限は共通に付与されているか、またはPDBでローカルに付与されている必要があります。 -
Oracle Real Application Clusters (Oracle RAC)データベースでは、現在のインスタンスのみでPDBをオープンする必要があります。その他すべてのインスタンスでは、PDBをクローズする必要があります。
-
変更するPDBは、PDBでの
RESTRICTED SESSION
権限を持つユーザーのみがアクセスできるよう、RESTRICTED
を指定して読取り/書込みモードで現在のインスタンス上でオープンされている必要があります。
PDBのグローバル・データベース名を変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO
文を実行します。次の例は、PDBのグローバル・データベース名を
salespdb.example.com
に変更します。ALTER PLUGGABLE DATABASE RENAME GLOBAL_NAME TO salespdb.example.com;
-
PDBをクローズします。
-
読取り/書込みモードでPDBをオープンします。
PDBのグローバル・データベース名を変更すると、そのPDB名は、新しいグローバル名の最初の部分(最初のピリオドの前の部分)に変更されます。また、Oracle DatabaseはPDBのデフォルトのデータベース・サービス名を自動的に変更します。Oracle Databaseは、PDB内のすべてのデータベース・サービスのPDB
プロパティを、PDBの新しいグローバル名に変更します。PDBをクローズして読取り/書込みモードでオープンし、Oracle Databaseで新しいPDBのサービス名がCDBに統合されるようにする必要があります。
データベース・サービスにアクセスするクライアントで、Oracle Net Serviceが正しく構成されている必要があります。PDBの名前を変更したため、Oracle Net Servicesの構成の変更も必要になる場合があります。
関連項目:
-
PDBおよびデータベース・サービスの詳細は、「PDBのサービスの管理」を参照してください
親トピック: データベース・レベルでのPDBの変更
リフレッシュ可能なクローンPDBの管理
リフレッシュ可能なクローンPDBは、ソースPDBと定期的に同期できる読取り専用クローンです。
- PDBのリフレッシュ
リフレッシュ可能なクローンとして作成されたPDBをリフレッシュできます。 - リフレッシュ可能なクローンPDBのスイッチオーバー
ソースPDBとそのリフレッシュ可能なクローンPDBのロールを切り替えることができます。
親トピック: データベース・レベルでのPDBの変更
PDBのリフレッシュ
リフレッシュ可能なクローンとして作成されたPDBをリフレッシュできます。
PDBを手動でリフレッシュする場合、最後のリフレッシュ以降にソースPDBに対して行った変更は、リフレッシュされているPDBに伝播されます。自動リフレッシュが構成されているPDBを手動でリフレッシュできます。
前提条件
PDBをリフレッシュするには、REFRESH MODE MANUAL
またはREFRESH MODE EVERY minutes
句を含めてPDBがクローンとして作成されている必要があります。
関連トピック
親トピック: リフレッシュ可能なクローンPDBの管理
リフレッシュ可能なクローンPDBのスイッチオーバー
ソースPDBとそのリフレッシュ可能なクローンPDBのロールを切り替えることができます。
次の文は、スイッチオーバーを実行します。
ALTER PLUGGABLE DATABASE refresh_mode FROM clonepdb@dblink SWITCHOVER;
refresh_mode
にREFRESH MODE NONE
を指定しないでください。FROM
句で指定されたデータベース・リンクは、クローンPDBが存在するCDBのルートを指し示す必要があります。
スイッチオーバーが完了した後、ソースPDBはリフレッシュ可能なクローンPDBになり、READ ONLY
モードでのみオープンできます。
前提条件
次の前提条件を満たしている必要があります。
-
ALTER PLUGGABLE DATABASE ... SWITCHOVER
を発行するときに、ソースPDBに接続している必要があります。 -
ソースPDBとクローンPDBが別々のCDB内にある場合、データベース・リンクで指定されたユーザーは、ソースPDBとクローンPDBで同じ名前とパスワードを使用する必要があります。
ソースPDBおよびクローンPDBのロールを切り替えるには:
-
SQL*PlusまたはSQL Developerで、ソースPDBにログインします。
-
ALTER PLUGGABLE DATABASE refresh_mode FROM clonepdb@dblink SWITCHOVER
文を実行します。文が完了すると、現在接続されているPDBがリフレッシュ可能なクローンPDBになります。
-
必要に応じて、クローンPDBをリフレッシュします。
ALTER PLUGGABLE DATABASE REFRESH;
例16-24 リフレッシュ可能なクローンPDBのスイッチオーバー
この例では、使用しているデータ・センターにcdb1
およびcdb2
という名前のCDBが含まれていることを想定しています。cdb1_pdb1
という名前のPDBはcdb1
内に存在します。このPDBのリフレッシュ可能なクローンをcdb2
に作成し、cdb1_pdb1_ref
という名前を付けます。目的は、ソースPDBおよびcdb1_pdb1
がクローンPDBになるように、cdb1_pdb1_ref
をスイッチオーバーすることです。
-
SQL*Plusで、管理者権限を持つユーザーとして
cdb1
に接続し、cdb1_pdb1
が読取り/書込みモードでオープンしていることを確認します(出力例も示します)。CONNECT SYS@cdb1 AS SYSDBA Enter password: ******* ALTER PLUGGABLE DATABASE ALL CLOSE; ALTER PLUGGABLE DATABASE cdb1_pdb1 OPEN READ WRITE; SHOW PDBS; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 CDB1_PDB1 READ WRITE NO
-
c##u1
という名前の共通ユーザーを作成します(pwdはユーザー指定のパスワードに置き換えます)。DROP USER c##u1 CASCADE; CREATE USER c##u1 IDENTIFIED BY pwd; GRANT CREATE SESSION, RESOURCE, CREATE ANY TABLE, UNLIMITED TABLESPACE TO c##u1 CONTAINER=ALL; GRANT CREATE PLUGGABLE DATABASE TO c##u1 CONTAINER=ALL; GRANT SYSOPER TO c##u1 CONTAINER=ALL;
-
コンテナを
cdb1_pdb1
に設定し、表t1
を作成して、テスト用に使用します(出力例も示します)。ALTER SESSION SET CONTAINER = cdb1_pdb1; CREATE TABLE t1(n1 NUMBER); INSERT INTO t1 VALUES(1); COMMIT; SELECT * FROM t1; N1 ---------- 1
-
管理者権限を持つユーザーとして
cdb2
に接続し、c##u1
という名前の共通ユーザーを作成します(pwdはユーザー指定のパスワードに置き換えます)。CONNECT SYS@cdb2 AS SYSDBA Enter password: ******* DROP USER c##u1 CASCADE; CREATE USER c##u1 IDENTIFIED BY pwd; GRANT CREATE SESSION, RESOURCE, CREATE ANY TABLE, UNLIMITED TABLESPACE TO c##u1 CONTAINER=ALL; GRANT CREATE PLUGGABLE DATABASE TO c##u1 CONTAINER=ALL; GRANT SYSOPER TO c##u1 CONTAINER=ALL;
これで、
cdb1
とcdb2
の両方に、同じ名前(c##u1
)とパスワードを持つ共通ユーザーが含まれます。 -
cdb1
へのデータベース・リンクを作成します。次のコマンドは、ユーザー
c##u1
、パスワードpwd、およびサービス名cdb1
を指定します。CREATE DATABASE LINK cdb1_datalink CONNECT TO c##u1 IDENTIFIED BY pwd USING 'cdb1';
-
cdb1_pdb1_ref
という名前の手動でリフレッシュ可能なPDBを作成します。次の文は、データベース・リンク
cdb1_datalink
、およびファイル宛先/dsk1/df
を指定します。CREATE PLUGGABLE DATABASE cdb1_pdb1_ref FROM cdb1_pdb1@cdb1_datalink CREATE_FILE_DEST='/dsk1/df' REFRESH MODE MANUAL;
-
cdb1_pdb1_ref
をリフレッシュします。ALTER SESSION SET CONTAINER = cdb1_pdb1_ref; ALTER PLUGGABLE DATABASE REFRESH;
-
t1
を問い合せて、リフレッシュ可能なクローンPDBに正しい内容が含まれていることを確認します(出力例も示します)。ALTER PLUGGABLE DATABASE OPEN READ ONLY; SELECT * FROM t1; N1 ---------- 1
-
管理者権限を持つユーザーとして
cdb1
に接続し、cdb2
へのデータベース・リンクを作成します。CONNECT SYS@cdb1 AS SYSDBA Enter password: ******* CREATE DATABASE LINK cdb2_datalink CONNECT TO c##u1 IDENTIFIED BY pwd USING 'cdb2';
前述の文は、ユーザー
c##u1
、パスワードpwd、およびサービス名cdb2
を指定しています。 -
コンテナを
cdb1_pdb1
に設定し、cdb1_pdb1_ref
がプライマリPDBになり、現在のPDBがクローンになるようにスイッチオーバーします。ALTER SESSION SET CONTAINER = cdb1_pdb1; ALTER PLUGGABLE DATABASE REFRESH MODE MANUAL FROM cdb1_pdb1_ref@cdb2_datalink SWITCHOVER;
-
t1
を問い合せて、リフレッシュ可能なクローンPDBになった現在のPDBに正しい内容が含まれていることを確認します(出力例も示します)。ALTER PLUGGABLE DATABASE OPEN READ ONLY; SELECT * FROM t1; N1 ---------- 1
-
管理者権限を持つユーザーとして
cdb2
に接続し、コンテナを新しいソースPDBcdb1_pdb1_ref
に設定して、表t1
に新規の行を挿入します(出力例も示します)。CONNECT SYS@cdb2 AS SYSDBA Enter password: ******* ALTER SESSION SET CONTAINER = cdb1_pdb1_ref; SELECT * FROM t1; N1 ---------- 1 INSERT INTO t1 VALUES(2); COMMIT; SELECT * FROM t1; N1 ---------- 1 2
-
管理者権限を持つユーザーとして
cdb1
に接続し、コンテナをcdb1_pdb1
(新しいクローン)に設定し、これをリフレッシュしてからt1
を問い合せます。CONNECT SYS@cdb1 AS SYSDBA Enter password: ******* ALTER SESSION SET CONTAINER = cdb1_pdb1; ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE; ALTER PLUGGABLE DATABASE REFRESH; ALTER PLUGGABLE DATABASE OPEN READ ONLY; SELECT * FROM t1; N1 ---------- 1 2
前述の出力は、クローン
cdb1_pdb1
はソースcdb1_pdb1_ref
からリフレッシュされたことを示しています。
親トピック: リフレッシュ可能なクローンPDBの管理
PDBのオープン・モードの変更
PDBのオープン・モードは、ALTER PLUGGABLE DATABASE
のSQL文またはSQL*PlusのSTARTUP
コマンドを使用して変更できます。
- PDBのオープン・モードについて
PDBがマウントされると、読取り/書込み、読取り専用、ハイブリッド読取り専用またはMIGRATE
モードでオープンできます。PDBをオープンせずにマウントすることもできます。 - ALTER PLUGGABLE DATABASEを使用したPDBのオープン・モードの変更
pdb_change_state句を指定したALTER PLUGGABLE DATABASE
文を使用して、PDBのオープン・モードを変更できます。 - PDBユーザーの読取り専用アクセス権の設定
ALTER USER
文やCREATE USER
文を使用して、PDBへのローカル・ユーザーのアクセス権をREAD ONLY
またはREAD WRITE
に設定できます。 - CDB再起動時のPDBのオープン・モードの保持または破棄
pdb_save_or_discard_state句を指定してALTER PLUGGABLE DATABASE
SQL文を使用すると、CDBの再起動時に1つ以上のPDBのオープン・モードを保持できます。 - STARTUPおよびSHUTDOWNを使用したPDBのオープン・モードの変更
現在のコンテナがPDBの場合、SQL*PlusのSTARTUP
コマンドを使用してPDBをオープンし、SQL*PlusのSHUTDOWN
コマンドを使用してPDBをクローズできます。 - Oracle RACでのPDBの起動および停止
SRVCTLコマンドを使用してPDBを管理できます。
親トピック: PDBの管理
PDBのオープン・モードについて
PDBがマウントされると、読取り/書込み、読取り専用、ハイブリッド読取り専用またはMIGRATE
モードでオープンできます。PDBをオープンせずにマウントすることもできます。
- PDBのオープン・モードのサマリー
ALTER PLUGGABLE DATABASE OPEN
で指定したオプションに応じて、PDBは異なるモードでオープンします。 - ハイブリッド読取り専用モードでのプラガブル・データベースのオープン
ハイブリッド読取り専用オープン・モードは、接続されているユーザーに応じてPDBが読取り/書込みとしても、読取り専用としても動作する特殊なオープン・モードです。 - PDBのオープン状態を変更する句
現在のコンテナがCDBルートである場合にPDBのオープン・モードを変更するには、ALTER PLUGGABLE DATABASE
のpdb_change_state句を指定します。 - PDBのオープン時の互換性チェック
PDBをオープンすると、Oracle DatabaseによってPDBとCDBとの互換性がチェックされます。 - リプレイ・アップグレードを無効または有効にする方法
デフォルトで、Oracle Multitenant Replay Upgrade (リプレイ・アップグレード)メソッドはPDBおよびCDBでのアップグレードに対して有効になっています。ただし、リプレイ・アップグレード方式の使用を有効または無効にできます。
親トピック: PDBのオープン・モードの変更
PDBのオープン・モードのサマリー
ALTER PLUGGABLE DATABASE OPEN
で指定したオプションに応じて、PDBは異なるモードでオープンします。
PDBの現在のオープン・モードを表示するには、V$PDBS.OPEN_MODE
列を問い合せます。次の表に、使用可能なPDBオープン・モードの説明を示します。
表16-2 PDBのマウントおよびオープン・モード
モード | 説明 | ノート |
---|---|---|
読取り/書込み |
これは、PDBがフィジカル・スタンバイ・データベースに属している場合を除き、デフォルトのオープン・モードです。 |
オプションの |
読取り専用 |
これは、PDBがフィジカル・スタンバイ・データベースに属している場合の、デフォルトのオープン・モードです。 |
データベース管理者は、CDB内の共通ユーザーおよびロールを作成、変更または削除できます。これらの変更は、PDBのオープン・モードが読取り/書込みモードに変更されると、CDBによってPDBに適用されます。変更が適用される前には、PDBにおける共通ユーザーおよびロールの記述が、CDBの残りの部分における説明と異なる場合があります。 オプションの |
ハイブリッド読取り専用 |
|
共通ユーザーは、DDL、DMLおよびDCL文を正常に実行する必要があります。 共通ユーザーおよびローカル・ユーザーの両方が、DQL文(問合せおよびその他の読取り操作)を正常に実行する必要があります。 ローカル・ユーザーは、DDL、DMLおよびDCL文の実行に失敗します。ローカル・ユーザーによる書込み操作は失敗します |
移行 |
|
オプションの |
マウント済 |
オープンされているPDBで |
データベース管理者は、CDBで共通ユーザーおよびロールを作成、変更または削除できます。PDBのオープン・モードが読取り/書込みモードに変更されると、CDBによってこれらの変更がPDBに適用されます。変更が適用される前には、PDBにおける共通ユーザーおよびロールの記述が、CDBの残りの部分における説明と異なる場合があります。 |
関連項目:
ALTER PLUGGABLE DATABASE OPEN
コマンドについてさらに学習するには、『Oracle Database SQL言語リファレンス』を参照してください
重要:
Oracle Real Application Clusters (Oracle RAC)デプロイメントではPDBの状態を設定しないでください。Oracle RACのPDB状態の設定は、PDBのオープン/クローズ操作を実行するデータベース・エージェントと競合します。親トピック: PDBのオープン・モードについて
ハイブリッド読取り専用モードでのプラガブル・データベースのオープン
ハイブリッド読取り専用オープン・モードは、接続されているユーザーに応じてPDBが読取り/書込みとしても、読取り専用としても動作する特殊なオープン・モードです。
プラガブル・データベースをハイブリッド読取り専用モードでオープンすると、オンライン・データの内容が変更される可能性を排除した上で、オープンしたデータベースを問い合せることができます。
- CDB共通ユーザーがハイブリッド読取り専用モードでオープンしているPDBに接続すると、PDBは読取り/書込みモードでオープンしているように見えます。PDBへの書込みは共通ユーザーに許可されます。
-
PDBローカル・ユーザーまたはアプリケーション共通ユーザーがそのPDBに接続すると、読取り専用モードでオープンしているように見えます。
ハイブリッド読取り専用モードを使用する利点は、データベース管理者およびアプリケーション管理者が、より高い権限を持つユーザーを含むローカル・ユーザーがPDBの継続的な保守運用を妨害するリスクなしで、オープンPDBの安全なモードでアプリケーションにパッチを適用してメンテナンスできることです。
次の文では、データベースが読取り専用モードでオープンします。
ALTER DATABASE OPEN HYBRID READ ONLY;
表16-3 ユーザー・セッションで有効なオープン・モード
オープン・モード | ユーザー・セッションで有効なオープン・モード - CDB共通ユーザー | ユーザー・セッションで有効なオープン・モード - アプリケーション共通ユーザー | ユーザー・セッションで有効なオープン・モード - PDBローカル・ユーザー |
---|---|---|---|
読取り/書込み | 読取り/書込み | 読取り/書込み | 読取り/書込み |
読取り専用 | 読取り専用 | 読取り専用 | 読取り専用 |
ハイブリッド読取り専用 | 読取り/書込み | 読取り専用 | 読取り専用 |
親トピック: PDBのオープン・モードについて
PDBのオープン状態を変更する句
現在のコンテナがCDBルートである場合にPDBのオープン・モードを変更するには、ALTER PLUGGABLE DATABASE
のpdb_change_state句を指定します。
- OPEN句とCLOSE句
オープンされているPDBが、フィジカル・スタンバイ・データベースとして使用されているCDBに属する場合(この場合は、READ ONLY
がデフォルト)を除き、READ WRITE
がALTER PLUGGABLE DATABASE OPEN
のデフォルトとなります。 - SERVICES句
services句を使用して、単一PDBのオープン時に開始されるサービスを指定できます。 - INSTANCES句
Oracle RAC CDBでは、instances句を使用して、PDBを変更するインスタンスを指定できます。 - RELOCATE句
Oracle Real Application Clusters環境では、RELOCATE
を使用して、異なるOracle RACインスタンス上でPDBを再オープンするようにデータベースに指示できます。 - PDBの優先度を設定するには
ALTER PLUGGABLE DATABASE <databasename> Priority <value>を使用して優先度を設定します。
親トピック: PDBのオープン・モードについて
OPEN句とCLOSE句
オープンされているPDBが、フィジカル・スタンバイ・データベースとして使用されているCDBに属する場合(この場合は、READ ONLY
がデフォルト)を除き、READ WRITE
がALTER PLUGGABLE DATABASE OPEN
のデフォルトとなります。
ノート:
ノート:
優先度がいずれかのPDBに設定されている場合、PDBは最も低い優先度(1)から優先度順にオープンされます。オープンまたはクローズするPDBを指定する場合には、次の操作を実行できます。
-
1つ以上のPDBをリストします。
-
すべてのPDBを変更するには、
ALL
を指定します。 -
リストされたPDBを除くすべてのPDBを変更するには、
ALL EXCEPT
を指定します。
次の表は、PDBのモードを変更するALTER PLUGGABLE DATABASE
文の句について説明しています。
表16-4 PDBのモードを変更するALTER PLUGGABLE DATABASEの句
句 | 説明 |
---|---|
|
読取り/書込みモードでPDBをオープンします。
|
|
読取り専用モードでPDBをオープンします。
|
OPEN HYBRID READ ONLY [RESTRICTED][FORCE] |
ハイブリッド読取り専用モードでPDBをオープンします。 |
|
移行モードでPDBをオープンします。
|
|
PDBをマウント・モードにします。
CDBが PDBキーストアがオープン状態であった場合は、 |
親トピック: PDBのオープン状態を変更する句
SERVICES句
services句を使用して、単一PDBのオープン時に開始されるサービスを指定できます。
この句には次のようなバリエーションがあります。
-
次の形式で、services句に1つ以上のサービスをリストします。
SERVICES = ('service_name' [,'service_name'] … )
-
次の例のように、services句に
ALL
を指定してすべてのPDBのサービスを開始します。SERVICES = ALL
-
次の形式でservices句に
ALL EXCEPT
を指定して、リストされているサービスを除くすべてのPDBのサービスを開始します。SERVICES = ALL EXCEPT('service_name' [,'service_name'] … )
-
次の例のように、services句に
NONE
を指定して、PDBのデフォルト・サービスのみ開始し、他のPDBのサービスは開始しません。SERVICES = NONE
NONE
は、services句のデフォルト設定です。PDBのデフォルト・サービスは、services句の設定にかかわらず、常に開始されます。
親トピック: PDBのオープン状態を変更する句
INSTANCES句
Oracle RAC CDBでは、instances句を使用して、PDBを変更するインスタンスを指定できます。
PDBは、いくつかのインスタンスでクローズし、別のインスタンスでオープンしておくことができます。instances句には次のようなバリエーションがあります。
-
次の形式で、instances句に1つ以上のインスタンスをリストします。
INSTANCES = ('instance_name' [,'instance_name'] … )
-
すべての実行中のインスタンスのPDBを変更するには、次の例のように、instances句に
ALL
を指定します。INSTANCES = ALL
-
リストされたインスタンスを除くすべてのインスタンスのPDBを変更するには、次の形式で、instances句に
ALL EXCEPT
を指定します。INSTANCES = ALL EXCEPT('instance_name' [,'instance_name'] … )
親トピック: PDBのオープン状態を変更する句
RELOCATE句
Oracle Real Application Clusters環境では、RELOCATE
を使用して、異なるOracle RACインスタンス上でPDBを再オープンするようにデータベースに指示できます。
次のオプションを使用できます。
-
現行インスタンスでPDBをクローズするには、デフォルトである
NORELOCATE
を指定します。 -
指定したインスタンスでPDBを再オープンするには、
RELOCATE TO
を指定してインスタンス名を指定します。 -
Oracle Databaseで選択された別のインスタンス上のPDBを再オープンするには、
RELOCATE
を指定します。
ノート:
services句とinstances句の両方が同じALTER PLUGGABLE DATABASE
文に指定されている場合、指定されたサービスは指定したインスタンスで開始されます。
親トピック: PDBのオープン状態を変更する句
PDBの優先度を設定するには
ALTER PLUGGABLE DATABASE <databasename> Priority <value>を使用して優先度を設定します。
Oracle Database 23cでは、オープン、状態のリストア、アップグレードなどの様々な操作のためにPDB優先度の概念が導入されています。
ノート: PRIORITY句は、PDBのアップグレードの優先度(ALTER PLUGGABLE DATABASE xxx UPGRADE PRIORITY n; )を指定できるようにOracle Database12cR2で導入されました。この構文は、アップグレード・ガイドに記載されています。
様々な種類のPDBを管理するために、次の順序付けルールが適用されます。
- PDBは、優先度の昇順で処理されます。優先度の値が低いPDBは、優先度の値が大きいPDBより前に処理されます。
- 同じ優先度を持つPDBは、任意の順序で処理できます。ただし、アプリケーションPDBとアプリケーション・ルートの優先度が同じ場合、または優先度が指定されていない場合でも、アプリケーション・ルートの後でアプリケーションPDBがオープンされます。優先度のないPDBは、最も低い優先度と見なされます。
- 特定のPDBのPDB優先度は、すべてのRACインスタンスに適用できます。つまり、優先度は特定のRACインスタンスに固有ではありません。
- 接続/切断またはリフレッシュ可能クローンによって、優先度がソースPDBからターゲットPDBにコピーされることはありません。
- アプリケーションPDBはアプリケーション・ルートより高い優先度を持つことはできません。
- アプリケーション・ルート・クローンはアプリケーション・ルートと同じ優先度であり、PDB優先度を明示的に指定することはできません。
- CDB$ROOTおよびPDB$SEEDはPDB優先度の対象外であり、優先度はOracle RDBMSによって内部的に決定されます。
優先度は、割り当てられた整数値によって決定されます。優先度1が最初にオープンまたはアップグレードされるPDBで、その後に他のPDBが昇順で続きます。優先度が割り当てられていない場合、すべてのPDBを任意の順序で処理できます。同じ優先度を持つPDBは、すべて任意の順序で処理できます。
ALTER PLUGGABLE DATABASE <PDB name> PRIORITY <value>
各項目の意味は次のとおりです。
- PDB名は必須です
- PRIORITY <value> - <value>は1から4096までの整数です
優先度が次の文の動作に与える影響
- ALTER PLUGGABLE DATABASE x OPEN ...
- ALTER PLUGGABLE DATABASE x CLOSE ...
- ALTER PLUGGABLE DATABASE x SAVE STATE ...
ここで、xはALL、PDBのリストまたはALL EXCEPT句です。基本的には、複数のPDBを指定する任意の構文です。
OPEN文が複数のPDBに適用される場合、優先度順序付けルールが適用されます。
親トピック: PDBのオープン状態を変更する句
PDBのオープン時の互換性チェック
PDBをオープンすると、Oracle DatabaseによってPDBとCDBとの互換性がチェックされます。
PDBのオープン時に、PDBとCDBルートの間でバージョンの不一致があった場合は、自動的にアップグレードされます。PDBオープン時のリプレイ・アップグレードの最適化(デフォルト)により、取得表に格納されている文を再実行することによって、手動のエラー修正を回避できます。このメカニズムは、アプリケーションの同期で使用されるものと同じです。Oracle Database 21cでは、次のシナリオでPDBオープン時のリプレイ・アップグレードが使用されます。
-
以前のリリースのCDBから切断されたPDBを接続する。PDBがオープンされると、データベースでリプレイ・アップグレードが自動的に実行されます。
-
以前のリリースのCDBはOracle Database 21cにアップグレードされたが、CDB内のPDBはアップグレードされていない。
OPEN UPGRADE
オプションを指定せずにこのPDBをオープンすると、CDBはPDBのリプレイ・アップグレードを自動的に実行します。
PDBオープン時のリプレイ・アップグレード機能を使用するには、データベース・プロパティPDB_UPGRADE_SYNC
およびUPGRADE_PDB_ON_OPEN
をデフォルト値のtrue
に設定する必要があります。いずれかのプロパティがfalse
の場合は、PDBをオープンする前にクラシック・アップグレードを実行する必要があります。リプレイ・アップグレードまたはクラシック・アップグレードの実行中に問題が発生した場合は、CDBで互換性違反が記録されます。
互換性違反は次のいずれかです。
-
警告
データベースによってアラート・ログに警告が記録され、PDBが通常どおりにオープンされます。警告メッセージは表示されません。
-
エラー
PDBをオープンすると、PDBがエラーを伴って変更されたというメッセージがデータベースに表示され、アラート・ログにエラーが記録されます。エラーの原因となった状況を修正する必要があります。エラーがある場合、PDBはオープンできますが、PDBへのアクセスは互換性違反に対処できるよう、
RESTRICTED SESSION
権限を持つユーザーに制限されます。PDB_PLUG_IN_VIOLATIONS
ビューを問い合せることで、違反の説明を表示できます。
関連項目:
-
現在のコンテナがルートの場合に1つ以上のPDBのオープン・モードを変更する方法を学習するには、「PDBのオープン・モードの変更」を参照してください
-
PDB_PLUG_IN_VIOLATIONS
ビューについて学習するには、『Oracle Databaseリファレンス』を参照してください
親トピック: PDBのオープン・モードについて
リプレイ・アップグレードを無効または有効にする方法
デフォルトでは、Oracle Multitenant Replay Upgrade (リプレイ・アップグレード)方式は、PDBおよびCDBのアップグレードで有効になります。ただし、リプレイ・アップグレード方式の使用を有効または無効にできます。
パラレル・アップグレード・ユーティリティ(catctl.pl
)のデフォルトであるリプレイ・アップグレードの実行を無効にするには、次のコマンドをCDB$ROOT
または特定のPDBで実行します。
ALTER DATABASE UPGRADE SYNC OFF
リプレイ・アップグレード動作を再び有効にするには、次のコマンドを入力します。
ALTER DATABASE UPGRADE SYNC ON
パラレル・アップグレード・ユーティリティ(catctl.pl
)のパラメータ-t
を設定することによって、リプレイ・アップグレードではないアップグレードを選択することもできます。これにより、リプレイ・アップグレードではない、従来のスクリプトを作成する方法を使用するアップグレードが強制されます。
ノート:
CDB$ROOT
または特定のPDBのどちらに接続しているかに応じて、CDB全体または個々のPDBのリプレイ・アップグレード方式の使用を管理できます。
CDB$ROOT
でUPGRADE SYNC
にOFF
が設定されている場合、CDBに接続されているPDBではリプレイ・アップグレード方式は使用されません。CDB$ROOT
ではUPGRADE SYNC
にON
が設定されているが、PDBではOFF
が設定されている場合、リプレイ・アップグレード方式は、UPGRADE SYNC
がOFF
のPDBでは使用されませんが、CDBに接続されている他のすべてのPDBでは使用されます。CDB$ROOT
でUPGRADE SYNC
にON
が設定され、すべてのPDBでON
が設定されている場合は(デフォルト)、CDBに接続されているすべてのPDBでリプレイ・アップグレード方式が使用されます。
親トピック: PDBのオープン・モードについて
ALTER PLUGGABLE DATABASEを使用したPDBのオープン・モードの変更
pdb_change_state句を指定したALTER PLUGGABLE DATABASE
文を使用して、PDBのオープン・モードを変更できます。
前提条件
ALTER PLUGGABLE DATABASE
文でPDBのオープン・モードを変更するには、次の前提条件を満たす必要があります。
-
現在のユーザーに、次のいずれかの管理権限が必要です。これは、共通で付与されているか、またはPDB内でローカルに付与されている必要があります。
-
SYSDBA
。接続時にAS SYSDBA
を使用することで権限が行使されている。 -
SYSOPER
。接続時にAS SYSOPER
を使用することで権限が行使されている。 -
SYSBACKUP
。接続時にSYSBACKUP
を使用することで権限が行使されている。 -
SYSDG
。接続時にAS SYSDG
を使用することで権限が行使されている。
ノート:
現在のコンテナがPDBである場合は、PDBのオープン・モードを変更できます。
-
-
RESTRICTED SESSION
が有効になっており、PDBがオープンされている場合は、RESTRICTED
を指定する必要があります。 -
Oracle RAC CDBでは、1つ以上のOracle RACインスタンス上でPDBがオープンされている場合に、それをさらに他のインスタンスでもオープンできます。ただし、そのPDBは、それがすでにオープンされているインスタンス上と同じモードでオープンする必要があります。一部のインスタンスでPDBをクローズし、他のインスタンスでオープンできます。
ALTER PLUGGABLE DATABASE
文を使用してPDBを特定のターゲット・モードにするには、次の表で説明されている要件を満たす必要があります。
表16-5 ALTER PLUGGABLE DATABASEを使用したPDBのオープン・モードの変更
PDBのターゲット・モード | ALLキーワードが含まれている | FORCEキーワードが含まれている | ルートに必要なモード | 変更対象のPDBごとに必要なモード |
---|---|---|---|---|
読取り/書込み |
はい |
はい |
読取り/書込み |
マウント、読取り専用または読取り/書込み |
読取り/書込み |
はい |
いいえ |
読取り/書込み |
マウントまたは読取り/書込み |
読取り/書込み |
いいえ |
はい |
読取り/書込み |
マウント、読取り専用または読取り/書込み |
読取り/書込み |
いいえ |
いいえ |
読取り/書込み |
マウント |
読取り専用 |
はい |
はい |
読取り専用または読取り/書込み |
マウント、読取り専用または読取り/書込み |
読取り専用 |
はい |
いいえ |
読取り専用または読取り/書込み |
マウント済または読取り専用 |
読取り専用 |
いいえ |
はい |
読取り専用または読取り/書込み |
マウント、読取り専用または読取り/書込み |
読取り専用 |
いいえ |
いいえ |
読取り専用または読取り/書込み |
マウント |
ハイブリッド読取り専用 | はい | はい | 読取り専用または読取り/書込み | |
ハイブリッド読取り専用 | はい | いいえ | 読取り専用または読取り/書込み | マウント、読取り専用または読取り/書込み |
ハイブリッド読取り専用 | いいえ | はい | 読取り専用または読取り/書込み | マウント済または読取り専用 |
ハイブリッド読取り専用 | いいえ | いいえ | 読取り専用または読取り/書込み | マウント、読取り専用または読取り/書込み |
移行 |
はい |
該当なし |
読取り専用または読取り/書込み |
マウント |
移行 |
いいえ |
該当なし |
読取り専用または読取り/書込み |
マウント |
マウント |
はい |
該当なし |
読取り専用または読取り/書込み |
マウント、読取り専用、移行または読取り/書込み |
マウント |
いいえ |
該当なし |
読取り専用または読取り/書込み |
読取り専用、移行または読取り/書込み |
オープン・モードを変更するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「CDB内のコンテナへのアクセスについて」を参照してください。
-
pdb_change_state句を含む
ALTER PLUGGABLE DATABASE
文を実行します。
例16-25 リストされたPDBのオープン・モードの変更
この文は、PDB salespdb
およびhrpdb
のオープン・モードを読取り/書込みモードでオープンするよう変更します。
ALTER PLUGGABLE DATABASE salespdb, hrpdb
OPEN READ WRITE;
この文は、PDB salespdb
のオープン・モードを読取り専用モードでオープンするよう変更します。RESTRICTED
により、PDBでのRESTRICTED
SESSION
権限を持つユーザーのみがPDBにアクセスできることを指定します。
ALTER PLUGGABLE DATABASE salespdb
OPEN READ ONLY RESTRICTED;
この文は、PDB salespdb
のオープン・モードを移行モードでオープンするよう変更します。
ALTER PLUGGABLE DATABASE salespdb
OPEN UPGRADE;
例16-26 すべてのPDBのオープン・モードの変更
次の問合せを実行して、CDBに関連付けられるPDBごとのオープン・モードを表示します。
SELECT NAME, OPEN_MODE FROM V$PDBS WHERE CON_ID > 2;
NAME OPEN_MODE
------------------------------ ----------
HRPDB READ WRITE
SALESPDB MOUNTED
DWPDB MOUNTED
hrpdb
はすでに読取り/書込みモードであることに注意してください。salespdb
およびdwpdb
のオープン・モードを読取り/書込みモードでオープンするよう変更するには、次の文を使用します。
ALTER PLUGGABLE DATABASE ALL
OPEN READ WRITE;
hrpdb
PDBはすでに読取り/書込みオープン・モードであるため、変更されません。2つのPDBはマウント・モードであり、1つのPDB (hrpdb
)は指定されたモード(読取り/書込み)であるため、この文はエラーを返しません。同様に、すべてのPDBがマウント・モードである場合、この文はエラーを返しません。
ただし、いずれかのPDBが読取り専用モードである場合、この文はエラーを返します。エラーを回避してCDB内ですべてのPDBを読取り/書込みモードで開くには、FORCE
キーワードを指定します。
ALTER PLUGGABLE DATABASE ALL
OPEN READ WRITE FORCE;
FORCE
のキーワードが含まれていると、読取り専用モードのPDBを含むすべてのPDBは読取り/書込みモードでオープンされます。
例16-27 リストされたPDBを除くすべてのPDBのオープン・モードの変更
この文は、salespdb
およびhrpdb
を除くすべてのPDBのモードをマウント・モードに変更します。
ALTER PLUGGABLE DATABASE ALL EXCEPT salespdb, hrpdb
CLOSE IMMEDIATE;
ノート:
PDBのオープン・モードを変更するALTER PLUGGABLE DATABASE
文は、インスタンス固有です。したがって、Oracle RACインスタンスに接続しているときにこの文を発行する場合、この文はそのインスタンスのPDBのオープン・モードにのみ影響を及ぼします。
関連項目:
-
PDBのその他の属性を変更するには、「データベース・レベルでのPDBの変更」を参照してください
-
データベース・モードおよびその使用方法の詳細は、『Oracle Database管理者ガイド』を参照してください
-
停止モードの詳細は、『Oracle Database概要』を参照してください
親トピック: PDBのオープン・モードの変更
PDBユーザーの読取り専用アクセス権の設定
ALTER USER
文やCREATE USER
文を使用して、PDBへのローカル・ユーザーのアクセス権をREAD ONLY
またはREAD WRITE
に設定できます。
PDBユーザーの読取り専用アクセス権を設定するには
ALTER USER
文またはCREATE USER
文でREAD ONLY
句を使用して、PDBユーザーに読取り専用アクセス権を設定できます。PDBユーザーに対して読取り専用アクセス権を有効にした場合は、そのユーザーがPDBに接続したときは常に、セッションの動作が、データベースが読取り専用モードでオープンされているのと同様になり、ユーザーが書込み操作を実行できなくなります。この文は、ALTER USER
またはCREATE USER
権限を持つすべてのユーザーが実行できます。ローカル・ユーザーの状態は*_USERS
ビューで確認できます。
例16-28 PDBユーザーの読取り専用アクセス権の有効化
PDBローカル・ユーザーに対して読取り専用アクセス権を有効にするには、READ ONLY
句を指定してALTER USER
文を使用します。READ ONLY
句をCREATE USER
文で使用することもできます。
alter user user1 read only;
例16-29 READ WRITE
句によるPDBユーザーの読取り専用アクセス権の取消し
PDBローカル・ユーザーの読取り専用アクセス権を取り消すには、READ WRITE
句を指定してALTER USER
文を使用します。
alter user user1 read write;
例16-30 CREATE USER
句によるPDBユーザーの読取り専用アクセス権の設定
PDBローカル・ユーザーの読取り専用アクセス権の設定には、READ ONLY
句を指定してCREATE USER
文を使用するという方法もあります。
create user u1 identified by u1 read only;
親トピック: PDBのオープン・モードの変更
CDB再起動時のPDBのオープン・モードの保持または破棄
pdb_save_or_discard_state句を指定してALTER PLUGGABLE DATABASE
SQL文を使用すると、CDBの再起動時に1つ以上のPDBのオープン・モードを保持できます。
次に示す方法で実行できます。
-
CDBの再起動時にPDBのモードを保持するには、
SAVE STATE
を指定します。たとえば、CDBの再起動前にPDBがオープンの読取り/書込みモードである場合、CDBの再起動後のPDBはオープンの読取り/書込みモードです。CDBの再起動前にPDBがマウント・モードの場合、CDBの再起動後のPDBはマウント・モードです。
-
CDBの再起動時にPDBのオープン・モードを無視するには、
DISCARD STATE
を指定します。PDBに
DISCARD STATE
を指定すると、CDBの再起動後のPDBは常にマウントされます。
変更するPDBは、次の方法で指定できます。
-
1つ以上のPDBをリストします。
-
すべてのPDBを変更するには、
ALL
を指定します。 -
リストされたPDBを除くすべてのPDBを変更するには、
ALL EXCEPT
を指定します。
Oracle RAC CDBの場合、pdb_save_or_discard_state句でinstances句を使用すると、PDBのオープン・モードを保持するインスタンスを次の方法で指定できます。
-
次の形式で、instances句に1つ以上のインスタンスをリストします。
INSTANCES = ('instance_name' [,'instance_name'] … )
-
すべての実行中のインスタンスのPDBを変更するには、次の例のように、instances句に
ALL
を指定します。INSTANCES = ALL
-
リストされたインスタンスを除くすべてのインスタンスのPDBを変更するには、次の形式で、instances句に
ALL EXCEPT
を指定します。INSTANCES = ALL EXCEPT('instance_name' [,'instance_name'] … )
Oracle RAC CDBのPDBの場合、SAVE STATE
およびDISCARD STATE
は現行インスタンスのモードにのみ作用します。instances句に複数のインスタンスを指定している場合でも、他のインスタンスのモードには作用しません。
pdb_save_or_discard_state句を指定してALTER PLUGGABLE DATABASE
SQL文を発行するには、現行ユーザーにルートでのALTER DATABASE
権限が必要です。
CDBのPDBについて保存された状態を確認するには、DBA_PDB_SAVED_STATES
ビューを問い合せます。
CDBの再起動時にPDBのオープン・モードを保持または破棄するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「CDB内のコンテナへのアクセスについて」を参照してください。
-
pdb_save_or_discard_state句を指定して
ALTER PLUGGABLE DATABASE
文を実行します。
次の例では、CDBの再起動時に、1つ以上のPDBのオープン・モードを保持または破棄しています。
例16-31 CDB再起動時のPDBのオープン・モードの保持
この文は、CDBの再起動時にsalespdb
のオープン・モードを保持します。
ALTER PLUGGABLE DATABASE salespdb SAVE STATE;
例16-32 CDB再起動時のPDBのオープン・モードの破棄
この文は、CDBの再起動時にsalespdb
のオープン・モードを破棄します。
ALTER PLUGGABLE DATABASE salespdb DISCARD STATE;
例16-33 CDB再起動時のすべてのPDBのオープン・モードの保持
この文は、CDBの再起動時にすべてのPDBのオープン・モードを保持します。
ALTER PLUGGABLE DATABASE ALL SAVE STATE;
例16-34 CDB再起動時のリストされたPDBのオープン・モードの保持
この文は、CDBの再起動時にsalespdb
およびhrpdb
のオープン・モードを保持します。
ALTER PLUGGABLE DATABASE salespdb, hrpdb SAVE STATE;
例16-35 CDB再起動時のリストされたPDB以外のすべてのPDBのオープン・モードの保持
この文は、salespdb
およびhrpdb
を除くすべてのPDBのオープン・モードを保持します。
ALTER PLUGGABLE DATABASE ALL EXCEPT salespdb, hrpdb SAVE STATE;
親トピック: PDBのオープン・モードの変更
STARTUPおよびSHUTDOWNを使用したPDBのオープン・モードの変更
現在のコンテナがPDBの場合、SQL*PlusのSTARTUP
コマンドを使用してPDBをオープンし、SQL*PlusのSHUTDOWN
コマンドを使用してPDBをクローズできます。
- SQL*PlusのSTARTUPコマンドを使用したPDBのオープン・モードの変更について
現在のコンテナがルートである場合、STARTUP PLUGGABLE DATABASE
コマンドを使用すると、単一のPDBをオープンできます。 - STARTUPコマンドを使用したPDBの起動
現在のコンテナがPDBの場合は、SQL*PlusのSTARTUP
コマンドでPDBをオープンします。 - SQL*PlusのSTARTUPコマンドを使用したPDBのオープン・モードの変更
STARTUP PLUGGABLE DATABASE
コマンドを使用して、単一のPDBをオープンできます。 - SHUTDOWNコマンドを使用したPDBの停止
現在のコンテナがPDBの場合は、SQL*PlusのSHUTDOWN
コマンドでPDBをクローズします。
親トピック: PDBのオープン・モードの変更
SQL*PlusのSTARTUPコマンドを使用したPDBのオープン・モードの変更について
現在のコンテナがルートである場合、STARTUP PLUGGABLE DATABASE
コマンドを使用すると、単一のPDBをオープンできます。
STARTUP PLUGGABLE DATABASE
コマンドの次のオプションを使用して、PDBをオープンします。
-
FORCE
読取り/書込みモードで再オープンする前に、オープン状態のPDBをクローズします。このオプションが指定されている場合、他のオプションは使用できません。
-
RESTRICT
PDBで
RESTRICTED SESSION
システム権限を持つユーザーのみがそのPDBにアクセスできるようにします。OPEN READ WRITE
もOPEN READ ONLY
も指定されていない場合、PDBは、属しているCDBがフィジカル・スタンバイ・データベースのときは読取り専用モードでオープンされます。そうでないときは、PDBは読取り/書込みモードでオープンされます。 -
OPEN
open_pdb_optionsPDBを読取り/書込みモードまたは読取り専用モードでオープンします。
OPEN READ WRITE
またはOPEN READ ONLY
を指定できます。他のオプションを使用しないでOPEN
を指定した場合は、READ WRITE
がデフォルトになります。
次の前提条件を満たしている必要があります。
-
現行ユーザーには、
SYSDBA
、SYSOPER
、SYSBACKUP
またはSYSDG
管理権限があり、その権限は共通に付与されているか、またはPDBでローカルで付与されている必要があります。ユーザーは、接続時にAS SYSDBA
、AS SYSOPER
、AS SYSBACKUP
またはAS SYSDG
をそれぞれ使用して、権限を行使する必要があります。 -
RESTRICTED SESSION
を有効にした場合、RESTRICT
はPDBがオープンされているときに指定する必要があります。
また、STARTUP PLUGGABLE DATABASE
コマンドを使用してPDBを特定のターゲット・モードにするには、次の表で説明されている要件を満たす必要があります。
表16-6 STARTUP PLUGGABLE DATABASEを使用したPDBのオープン・モードの変更
PDBのターゲット・モード | FORCEオプションが含まれている | ルートに必要なモード | 変更対象のPDBの必要なモード |
---|---|---|---|
読取り/書込み |
はい |
読取り/書込み |
マウント、読取り専用または読取り/書込み |
読取り/書込み |
いいえ |
読取り/書込み |
マウント |
読取り専用 |
いいえ |
読取り専用または読取り/書込み |
マウント |
ノート:
現在のコンテナがPDBである場合にPDBのオープン・モードを変更するには、STARTUP
コマンドを使用することもできます。
STARTUPコマンドを使用したPDBの起動
現在のコンテナがPDBである場合、SQL*PlusのSTARTUP
コマンドでPDBをオープンできます。
STARTUP
コマンドの次のオプションを使用して、PDBをオープンします。
-
FORCE
読取り/書込みモードで再オープンする前に、オープン状態のPDBをクローズします。このオプションが指定されている場合、他のオプションは使用できません。
-
RESTRICT
PDBで
RESTRICTED
SESSION
システム権限を持つユーザーのみがそのPDBにアクセスできるようにします。OPEN READ WRITE
もOPEN READ ONLY
も指定されず、RESTRICT
が指定されている場合、PDBは、属しているCDBがフィジカル・スタンバイ・データベースのときに読取り専用でオープンされます。そうでないときは、PDBは読取り/書込みモードでオープンされます。 -
OPEN open_pdb_options
PDBを読取り/書込みモードまたは読取り専用モードでオープンします。
OPEN READ WRITE
またはOPEN READ ONLY
を指定します。RESTRICT
が指定されていない場合、READ WRITE
が常にデフォルトです。
現在のコンテナがPDBの場合にSTARTUP
コマンドを発行するには、次の前提条件を満たしている必要があります。
-
現行ユーザーには、
SYSDBA
、SYSOPER
、SYSBACKUP
またはSYSDG
管理権限があり、その権限は共通に付与されているか、またはPDBでローカルで付与されている必要があります。ユーザーは、接続時にAS SYSDBA
、AS SYSOPER
、AS SYSBACKUP
またはAS SYSDG
をそれぞれ使用して、権限を行使する必要があります。 -
FORCE
オプションを使用する場合を除き、PDBをオープンするには、PDBがマウント・モードである必要があります。 -
PDBをマウント・モードにするには、そのPDBが読取り専用オープン・モードまたは読取り/書込みオープン・モードであることが必要です。
STARTUPコマンドを使用してPDBを変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
STARTUP
コマンドを実行します。
例16-36 STARTUPコマンドを使用してPDBを読取り/書込みモードでオープンする方法
STARTUP OPEN
例16-37 STARTUPコマンドを使用してPDBを読取り専用モードでオープンする方法
STARTUP OPEN READ ONLY
例16-38 STARTUPコマンドを使用してPDBを読取り専用制限モードでオープンする方法
STARTUP RESTRICT OPEN READ ONLY
例16-39 STARTUPコマンドおよびFORCEオプションを使用してPDBを読取り/書込みモードでオープンする方法
この例では、PDBが現在オープンしていると想定しています。FORCE
オプションによって、PDBがクローズされ、その後、読取り/書込みモードでオープンされます。
STARTUP FORCE
関連項目:
- 「PDBへの接続」
-
データベースの起動の詳細は、『Oracle Database管理者ガイド』を参照してください
SQL*PlusのSTARTUPコマンドを使用したPDBのオープン・モードの変更
STARTUP PLUGGABLE DATABASE
コマンドを使用して、単一のPDBをオープンできます。
STARTUP PLUGGABLE DATABASEコマンドを使用してPDBを変更するには:
-
SQL*Plusで、現在のコンテナがルートであることを確認します。
「CDB内のコンテナへのアクセスについて」を参照してください。
-
STARTUP PLUGGABLE DATABASE
コマンドを実行します。
ノート:
現在のコンテナがルートである場合、CDBインスタンスはSQL*PlusのSHUTDOWN
コマンドで常に停止されます。これを使用して個々のPDBをクローズすることはできません。
例16-40 STARTUPコマンドを使用してPDBを読取り/書込みモードでオープンする方法
STARTUP PLUGGABLE DATABASE hrpdb OPEN
例16-41 STARTUPコマンドを使用してPDBを読取り/書込み制限モードでオープンする方法
STARTUP PLUGGABLE DATABASE hrpdb RESTRICT
例16-42 STARTUPコマンドを使用してPDBを読取り専用制限モードでオープンする方法
STARTUP PLUGGABLE DATABASE hrpdb OPEN READ ONLY RESTRICT
例16-43 STARTUPコマンドを使用してPDBを読取り専用モードでオープンする方法
STARTUP PLUGGABLE DATABASE hrpdb OPEN READ ONLY
例16-44 STARTUPコマンドおよびFORCEオプションを使用してPDBを読取り/書込みモードでオープンする方法
この例では、hrpdb
PDBが現在オープンしていることを想定しています。FORCE
オプションによって、PDBがクローズされ、その後、読取り/書込みモードでオープンされます。
STARTUP PLUGGABLE DATABASE hrpdb FORCE
関連項目:
-
現在のコンテナがPDBである場合の
STARTUP
コマンドまたはSHUTDOWN
コマンドの使用については、STARTUPおよびSHUTDOWNの使用によるPDBのオープン・モードの変更を参照してください。
SHUTDOWNコマンドを使用したPDBの停止
現在のコンテナがPDBである場合、SQL*PlusのSHUTDOWN
コマンドでPDBをクローズできます。
SHUTDOWN
コマンドがPDBで正常に発行されると、PDBはマウント・モードになります。
SHUTDOWN
モードは次のいずれかになります。
-
SHUTDOWN
のみ指定した場合、PDBはNORMALモードで停止されます。 -
SHUTDOWN IMMEDIATE
を指定した場合、PDBはIMMEDIATEモードで停止されます。 -
SHUTDOWN ABORT
を指定した場合、PDBは強制的にクローズされます。単一インスタンスCDBでは、
SHUTDOWN ABORT
を指定する場合にPDBメディア・リカバリが必要です。Oracle Real Application Clusters (Oracle RAC) CDBでは、SHUTDOWN ABORT
コマンドが最後のオープン・インスタンスをクローズする場合にPDBメディア・リカバリが必要です。
PDBキーストアがオープン状態であった場合にはPDBレベルでSHUTDOWN
を発行してもそれはクローズされないということに注意してください。キーストアを閉じるには、ADMINISTER KEY MANAGEMENT SET KEYSTORE CLOSE IDENTIFIED BY "pdb_ks_pwd"
コマンドを実行します。
前提条件
現在のコンテナがPDBである場合にSHUTDOWN
コマンドを発行するには、次の前提条件を満たしている必要があります。
-
現行ユーザーには、
SYSDBA
、SYSOPER
、SYSBACKUP
またはSYSDG
管理権限があり、その権限は共通に付与されているか、またはPDBでローカルで付与されている必要があります。ユーザーは、接続時にAS SYSDBA
、AS SYSOPER
、AS SYSBACKUP
またはAS SYSDG
をそれぞれ使用して、権限を行使する必要があります。 -
PDBをクローズするには、そのPDBがオープンされている必要があります。
SHUTDOWN
コマンドを使用してPDBを変更するには:
-
SQL*Plusで、現在のコンテナがPDBであることを確認します。
-
SHUTDOWN
コマンドを実行します。
ノート:
-
現在のコンテナがPDBの場合、
SHUTDOWN
コマンドは、CDBインスタンスではなくPDBのみをクローズします。 -
CDBで使用できる
SHUTDOWN
TRANSACTIONAL
と同等のSHUTDOWN
コマンドは、PDBにはありません。
例16-45 SHUTDOWN IMMEDIATEコマンドを使用してPDBをクローズする方法
SHUTDOWN IMMEDIATE
Oracle RACでのPDBの起動および停止
SRVCTLコマンドを使用してPDBを管理できます。
ノート:
Oracle Database 21c以降では、非CDBのOracle Databaseアーキテクチャのインストールはサポートされなくなりました。ポリシー管理型のデータベース・デプロイメント・オプションは、Oracle Database 23cではサポートされなくなりました。Oracle Database 21c以降では、PDBはOracle Clusterwareによって管理されるリソースです。spark
というPDBがあるraccont
という管理者管理CDBを考えてみます。
ノート:
最初にPDBを作成せずにサービスを作成しようとすると、PDBリソースを最初に作成する必要があることを示すエラー・メッセージが表示されます。カーディナリティに1、2またはALLを設定してPDB spark
が作成されていて、PDBにplug
というサービスを作成する場合は、そのサービスに–cardinality
引数も使用できます。-cardinality
引数を指定せずにspark
PDBを作成した場合、PDBに作成した新しいサービスでは、–cardinality
引数ではなく-preferred
または-available
引数を使用します。
PDBはOracle Clusterwareのリソースとして管理されるため、一般的なOracle RACベースの管理動作が適用されます。このため、PDB spark
がオンライン状態で、このサービスをホストしているサーバー上でOracle Clusterwareが停止している場合、このサーバー上のOracle Clusterwareの再起動後に、PDBは元の状態にリストアされます。したがって、PDBの起動は、他のOracle RACデータベースと同様に自動化されます。
$ srvctl start pdb -db db_name -pdb pdb_name [-startoption start_options]
$ srvctl start pdb -db db_name -pdb pdb_name -node node_list
[-startoption start_options]
IMMEDIATEオプションを使用して、データベース内のすべてのノードでPDBおよびそのすべてのサービスを停止するには:
$ srvctl stop pdb -db db_name -pdb pdb_name -stopoption IMMEDIATE -drain_timeout 0
-stopsvcoption IMMEDIATE
$ srvctl stop pdb -db db_name -pdb pdb_name -node node_list
[-stopoption stop_options] [-stopsvcoption stop_service_options
[-drain_timeout timeout]
Oracle RACデータベースをすべてのノードまたは特定のノードで再起動するときに、PDB spark
が再起動されないようにする場合は、次のコマンドを使用します。
srvctl disable pdb -db raccont -pdb spark [-node node_name]
PDBのplug
サービスのステータスを表示するには、次のコマンドを使用します。
srvctl status service -db raccont -service plug -verbose
PDB spark
のステータスを表示するには、次のコマンドを使用します。
srvctl status pdb -db raccont -pdb plug -detail
PDBの構成を変更するには、次のコマンドを使用します。
srvctl modify pdb -db db_unique_name -pdb pdb_name
[-cardinality {num_of_instances | ALL}]
[-maxcpu max_cpu_usage] [-mincpuunit min_cpu_usage]
[-rank rank] [-startoption start_options]
[-stopoption stop_options] [-policy policy]
ノート:
-cardinality
パラメータは、PDBの作成時に-cardinality
パラメータを設定した場合にのみ変更できます。