Oracle Database 18cでは、1つの論理CDBとして管理できるさまざまなCDBのコレクションであるCDBフリートの概念が導入されています。
この機能は現在、ExadataなどのエンジニアドシステムのEnterprise Edition、およびOracle DatabaseCloudServicesのEnterpriseEditionに制限されています。
フリートには2つの可能な役割があります: LEAD_CDB およびMEMBER_CDB 。 LEAD_CDBは、LEAD_CDBプロパティを「TRUE」に設定することで定義できます。フリート内の他のすべてのCDBは、MEMBER_CDBとして機能します。
以下の例では、2つのCDBとPDBが含まれています。
cdbvert011 :プラガブルデータベースPDBDP、PDBDW、PDBMV、PDBSWD、およびPDBADDADOSを含むコンテナデータベース。これがフリートリードになります。
cdbhor011 :プラガブルデータベースPDBWEBDW1を備えたコンテナデータベース。
コンテナデータベースcdbvert011のプラガブルデータベース:
$ export ORACLE_SID=cdbvert011 $ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Wed May 27 08:36:16 2020 Version 18.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.2.0.0.0 sql> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBDP READ WRITE NO 4 PDBDW READ WRITE NO 5 PDBMV READ WRITE NO 6 PDBSWD READ WRITE NO 7 PDBADDADOS READ WRITE NO
コンテナデータベースcdbhor011のプラグ可能なデータベース:
$ export ORACLE_SID=cdbhor011 $ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Wed May 27 08:36:16 2020 Version 18.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.2.0.0.0 sql> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBWEBDW1 READ WRITE NO
CDBVERT011をLEADCDBとして構成します:
sql> select property_value from database_properties where property_name='LEAD_CDB'; no rows selected sql> alter database set lead_cdb=TRUE; Database altered. sql> select property_value from database_properties where property_name='LEAD_CDB'; PROPERTY_VALUE ------------------------------ TRUE
CDBリードの一般ユーザーに適切な権限を付与します:
sql> grant sysoper to system CONTAINER=ALL; Grant succeeded.
データベースリンクを作成し、フリートのメンバーとして設定します:
Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.2.0.0.0 sql> select property_value from database_properties where property_name='LEAD_CDB_URI'; no rows selected sql> create database link dblink_lead connect to system identified by password using 'CDBVERT011'; Database link created. sql> alter database set LEAD_CDB_URI='dblink:dblink_lead'; Database altered. sql> select property_value from database_properties where property_name='LEAD_CDB_URI'; PROPERTY_VALUE -------------------------------------------------------------------------------- dblink:dblink_lead
CDBVERT011に接続し、すべてのPDBを一覧表示します。 STATUS列のSTUB値は、CDBとそのPDBをフリートのメンバーとして定義します。 CDBフリートを構成した後、CDBメンバーを含むさまざまなCDBメンバーからのPDB情報がリードCDBと同期されます。
$ export ORACLE_SID=cdbvert011 $ sqlplus / as sysdba SQL*Plus: Release 18.0.0.0.0 - Production on Wed May 27 08:36:16 2020 Version 18.2.0.0.0 Copyright (c) 1982, 2018, Oracle. All rights reserved. Connected to: Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.2.0.0.0 sql> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDBDP READ WRITE NO 4 PDBDW READ WRITE NO 5 PDBMV READ WRITE NO 6 PDBSWD READ WRITE NO 7 PDBADDADOS READ WRITE NO 9 PDBWEBDW1 MOUNTED sql> select pdb_id, pdb_name, status, is_proxy_pdb from dba_pdbs; PDB_ID PDB_NAME STATUS IS_PROXY_ ------- -------- ------ ---------- 3 PDBDP NORMAL NO 2 PDB$SEED NORMAL NO 4 PDBDW NORMAL NO 5 PDBMV NORMAL NO 6 PDBSWD NORMAL NO 7 PDBADDADOS NORMAL NO 8 CDBHOR011 STUB YES 9 PDBWEBDW1 STUB YES 8 rows selected.
CDBリードを無効にする:
sql> ALTER DATABASE SET LEAD_CDB = false; Database altered. sql> select pdb_id, pdb_name, status, is_proxy_pdb from dba_pdbs; PDB_ID PDB_NAME STATUS IS_PROXY_ ------- -------- ------ ---------- 3 PDBDP NORMAL NO 2 PDB$SEED NORMAL NO 4 PDBDW NORMAL NO 5 PDBMV NORMAL NO 6 PDBSWD NORMAL NO 7 PDBADDADOS NORMAL NO 6 rows selected.
CDBメンバーを無効にする:
sql> alter database set lead_cdb_uri=''; Database altered. sql> select pdb_id, pdb_name, status, is_proxy_pdb from dba_pdbs; PDB_ID PDB_NAME STATUS IS_PROXY_ ------- -------- ------ ---------- 3 PDBWEBDW1 NORMAL NO 2 PDB$SEED NORMAL NO sql> drop database link dblink_lead; Database link dropped.
参考資料
CDBフリートの管理。 https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/administering-cdb-fleet.html#GUID-0AA7FC65-F350-473B-96D2-976313514069で入手可能