ノート:
- このチュートリアルではOracle Cloudへのアクセスが必要です。無料アカウントにサインアップするには、Oracle Cloud Infrastructure Free Tierの開始を参照してください。
- Oracle Cloud Infrastructure資格証明、テナンシおよびコンパートメントの値の例を使用します。演習を完了する場合は、これらの値をクラウド環境に固有の値に置き換えてください。
データベース・リンクを使用した、Oracle Base Database ServiceのDBシステム間のプラガブル・データベースのオンライン・クローニング
イントロダクション
DB Systemの同じデータベース(コンテナ・データベース)内にプラガブル・データベース(PDB)のクローンを作成できます。この操作はローカル・クローニングと呼ばれます。これはコンソールを使用して簡単に実行できます。PDBを別のDBシステムの別のデータベース(コンテナ・データベース)にクローニングすることもできます。この操作はリモート・クローニングと呼ばれます。
各DB Systemは1つのデータベース(コンテナ・データベース)のみをサポートするため、リモート・クローニングには2つのDB Systemが必要です。PDBのリモート・クローニングはまだコンソールでは使用できません。データベース・リンクおよびOCI CLI、SDK、TerraformなどのAPIベースのツールを使用して、RemoteclonePluggabledatabase APIを使用してリモート・クローンを作成できます。
このチュートリアルでは、Oracle Base Database Serviceのデータベース・リンクを使用してPDBをリモート・クローニングするステップを示します。
目的
データベース・リンクを使用した、Oracle Base Database Service内の別のDBシステムへのPDBのリモート・オンライン・クローニング。
前提条件
- Oracle Base Database Serviceの理解。
- 同じVCN内または異なるVCN内の2つのOracleベース・データベース・サービス。
- これらのDBシステムが別のVCNVCNピアリング上にある場合、VCNピアリング。
- 次に、このチュートリアルで使用する環境名を示します。
- ソースDBシステム名: SOURCE
- 宛先DBシステム名: TARGET
- ソースPDB名: SOURCE_PDB1
- クローンPDB名: CLONE_PDB1
タスク1: ソース環境の準備
-
次のコマンドを使用して、ソースCDBでクローニングの目的のユーザーを作成します。
CREATE USER c##clone IDENTIFIED BY <PASSWORD> CONTAINER=ALL; GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone CONTAINER=ALL;
-
ソースPDBのオブジェクトの内容を確認します。この例では、
TEST.PERSONS
表を参照することを検討しています。-
スキーマ名: TEST
-
表名: PERSONS
-
タスク2: 宛先環境の準備
-
宛先CDBで
local_undo_enabled
がtrueに設定されていることを確認します。 -
宛先CDBが
archivelog
モードであることを確認します。ノート: 宛先CDBがARCHIVELOGモードおよびLOCAL UNDO MODEの場合、ソースPDBは読取り/書込みモードでオープンでき、クローニング・プロセス中に動作します。この手法は、ホット・クローニングと呼ばれます。
-
宛先DBシステム・ノードの
$ORACLE_HOME/network/admin/
ディレクトリにあるtnsnames.ora
ファイル内のソースCDBサービス名のアドレスを更新します。<addressname> = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <hostname>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <service_name>) ) )
次に、完成した例を示します。
SOURCE_CDB = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = source.**************.*****.oraclevcn.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SOURCE_iad1zr.**************.*****.oraclevcn.com) ) )
-
ソースCDBを指すデータベース・リンクを宛先CDBに作成します。
CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by <PASSWORD> using '<ADDRESSNAME>'; CREATE PUBLIC DATABASE LINK clone_pdb_dblink CONNECT TO c##clone identified by ************** using 'SOURCE_CDB';
-
データベース・リンク経由の接続が宛先CDBで正常に機能するかどうかを確認します。接続先のデータベースと同じ名前のデータベース・リンクを使用していないため、さらに
global_names parameter
をfalseに設定する必要があります。そうしないと、ORA-02085エラーが発生します。alter session set global_names=false; select * from dual@clone_pdb_dblink;
タスク3: リモートPDBのクローニング
-
宛先CDBにログインして、ソースPDBを宛先CDBにクローニングします。宛先環境の
TDE_WALLET_PASSWORD
を指定します。alter session set global_names=false; create pluggable database <CLONE_PDB_NAME> from <SOURCE_PDB_NAME>@<DB_LINK_NAME> keystore identified by <TDE_WALLET_PASSWORD>; create pluggable database CLONE_PDB1 from SOURCE_PDB1@clone_pdb_dblink keystore identified by <TDE_WALLET_PASSWORD>;
-
クローニングしたPDBを読取り/書込みモードでオープンします。作成したPDBはマウント・モードになります。Oracle Databaseで新しいPDBを宛先CDBに統合するには、クローニングした新しいPDBを読取り/書込みモードでオープンする必要があります。
alter pluggable database CLONE_PDB1 open read write;
-
すべてのオブジェクト・データがクローンPDBにクローニングされているかどうかを確認します。
データがソースPDBから宛先DBシステムのクローンPDBに正常にコピーされたことがわかります。
関連リンク
承認
- 作成者 - Leona Dsouza、シニア・クラウド・エンジニア
その他の学習リソース
docs.oracle.com/learnで他のラボをご覧いただくか、Oracle Learning YouTubeチャネルでより無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスして、Oracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Clone a Pluggable Database online remotely between DB Systems in Oracle Base Database Service using database link
F87175-01
September 2023
Copyright © 2023, Oracle and/or its affiliates.