sql >> データベース >  >> RDS >> Oracle

OracleDatabase18cでのCDBフリートの管理

    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で入手可能


    1. Debian 6でMySQLリレーショナルデータベースを使用する(Squeeze)

    2. MySQL条件付き挿入

    3. MySQL utf8mb4、絵文字を保存するときのエラー

    4. NLSパラメータとその優先順位を設定する方法(Oracleデータベース)