非コンテナデータベースをマルチテナントプラガブルデータベースに変換します
TriCoreが最初に公開したもの:2017年8月29日
Oracle®バージョン12cは、単一のコンテナデータベース(CDB)を備えたホストマルチプラグ可能データベース(PDB)用のマルチテナントデータベースオプションを提供します。非CDBデータベースをCDBプラガブルデータベースに変換する必要がある場合があります。このブログでは、非CDBデータベースをCDBデータベースに変換するために使用できる方法について説明しています。
このテストシナリオは、非CDBデータベースインスタンスnoncdb12c
から始まります。 、マシンABC123.xyz.com
で実行されています 。タスクは、CDBデータベースcdb12c
を作成することです。 、同じマシン上。変換されたCDBデータベースを保持するのに十分なディスク容量があることを確認する必要があります。
ホストサーバー :ABC123.xyz.com
非CDBデータベース :noncdb12c
Oracleバージョン :12.1.0.2
次の画像は、テストシナリオを示しています。
このセクションの手順を使用して、非CDBデータベースをCDBデータベースに変換します。
ステップ1:クリーンシャットダウンを実行する
非CDBデータベースをクリーンにシャットダウンするには、次の手順を実行します。
-
環境を
noncdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
shutdown immediate
ステップ2:データベースを読み取り専用として開きます
データベースを正常にシャットダウンしたら、次の手順を実行してデータベースをマウント専用モードで起動し、データベースを読み取り専用モードで開きます。
-
環境を
noncdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
startup mount exclusive alter database open read only;
ステップ3:PDBマニフェストファイルを生成する
非CDBからPDBマニフェストファイルを生成するには、次の手順を実行します。
-
環境を
noncdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
exec dbms_pdb.describe (pdb_descr_file=>'/tmp/noncdb12c_manifest_file.xml');
ステップ4:非CDBをシャットダウンします
手順3が完了したら、次の手順を実行して非CDBファイルをシャットダウンします。
-
環境を
noncdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
shutdown immediate
ステップ5:CDBを開始します
CDBがまだ実行されていない場合は、次の手順を実行してCDBを起動し、互換性を確認します。
-
環境を
cdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
startup SET SERVEROUTPUT ON; DECLARE Compatible CONSTANT VARCHAR2(3) :=CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY (pdb_descr_file => '/tmp/noncdb12c_manifest_file.xml') WHEN TRUE THEN 'YES' ELSE 'NO' END; BEGIN DBMS_OUTPUT.PUT_LINE(compatible); END; /
ステップ6:エラーを確認する
CDBデータベースの起動が完了したら、次の手順を実行して、PDB_PLUG_IN_VIOLATIONS
のエラーを確認します。 ビュー:
-
環境を
cdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
startup SELECT name, cause, type, message, status FROM PDB_PLUG_IN_VIOLATIONS WHERE name='NONCDB12C';
注 :エラーがある場合は、続行する前に修正してください。
ステップ7:CDBに接続し、PDBに接続します
次の手順を実行して、CDBに接続し、非CDBマニフェストファイルを使用してPDDB12Cデータベースに接続します。
-
環境を
cdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
CREATE PLUGGABLE DATABASE pdb12c USING '/tmp/noncdb12c_manifest_file.xml' COPY FILE_NAME_CONVERT = ('<Datafile_Location_for_noncdb>', 'Datafile_Location_for_pdb');
注 :次のオプションがサポートされており、環境に基づいて1つを選択できます:
- コピー :
noncdb
のデータファイル そのままで、noncdb
をコピーして、新しい場所にPDBを作成し、元のデータファイルを元の場所にそのまま保持します。これは、PDBの作成後も非cdbデータベースが引き続き機能していることを意味します。 - 移動 :
noncdb
のデータファイル PDBを作成するために新しい場所に移動されます。この場合、noncdb
PDBの作成後、データベースは使用できなくなります。 - コピーなし :
noncdb
のデータファイル PDB2の作成に使用され、noncdb
と同じ場所を使用します 。この場合、noncdb
PDBの作成後、データベースは使用できなくなります。
FILE_NAME_CONVERT
を使用できます COPY のいずれかを使用しているときに、データファイルの新しい場所を指定するパラメータ または移動 オプション。
ステップ8:変換スクリプトを実行します
手順7が正常に完了したら、次の手順を実行してPDBコンテナに切り替え、変換スクリプト$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
を実行します。 :
-
環境を
cdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
alter session set container=pdb12c @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
ステップ9:PDBを起動し、モードを確認します
次の手順を実行してPDBを起動し、モードが開いていることを確認します :
-
環境を
cdb12c
に設定します 。 -
次のコマンドを実行します。
sqlplus / as sysdba
-
SQLプロンプトで次のコードを実行します。
alter pluggable database open; SELECT name, open_mode FROM v$pdbs;
非CDBデータベースをCDBプラガブルデータベースに変換する場合、データベースのサイズに応じていくつかのオプションから選択できます。
データベースが非常に大きい場合は、 NOCOPYを使用できます。 オプション。これにより、必要な余分なスペースの量が最小限に抑えられ、変換操作の実行にかかる時間が短縮されます。 NOCOPY ただし、元のデータベースファイルをそのまま保持しないため、このオプションにはリスクが伴います。したがって、データベースを以前の状態に復元する必要がある場合は、変換アクティビティの前に作成されたバックアップを使用してデータベースを復元する必要があります。
データベースのサイズが小さい場合は、コピーを使用する必要があります これにより、問題が発生した場合でも、元のファイルは常にそのままであるため、古い非CDBへのフォールバックが簡単になります。
[フィードバック]タブを使用して、コメントを書き込んだり、質問したりします。
Rackspaceアプリケーションサービスの詳細をご覧ください。
-
SYSAUX表領域を管理する
Oracle®10gは、 PERMANENTなどの必須属性を備えたSYSAUXと呼ばれる新しい必須テーブルスペースを導入しました。 、読み取り/書き込み 、ローカルの拡張管理 、および SEGMENT SPACE MANAGEMENT AUTO 。この投稿では、このテーブルスペースが大きくなるにつれて管理する方法について説明します。 はじめに SYSAUX表領域を使用して、次のタスクを実行できます。 インストールおよび削除オプションによって引き起こされるSYSTEMテーブルスペースの断片化を回避します。 SYSTEM表領域の破損やスペース不足のリスクを回避します。 データベース管理者のメ
-
MongoDBの実験的なプラガブルストレージエンジン
先月のMongoDBWorldで、MongoDBの創設者でCTOのEliot Horowitzは、2.8リリースが予定されているプラガブルストレージエンジンのサポートを発表しました。これは、mongoユーザーが自分のワークロードに最適なストレージエンジンを選択できるようになり、APIがすべてのMongoDB機能を完全にサポートするように計画されているため、現在の機能を放棄する必要がないため、エキサイティングなものです。楽しい。それだけでなく、同じレプリカセット内のノードは、さまざまなストレージエンジンを使用できるようになり、さまざまなニーズに対応するあらゆる種類の興味深い構成が可能になりま