Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Verwalten der CDB-Flotte in der Oracle-Datenbank 18c

Oracle Database 18c führt das CDB-Flottenkonzept ein, bei dem es sich um eine Sammlung verschiedener CDBs handelt, die als eine logische CDB verwaltet werden können.

Diese Funktion ist derzeit auf die Enterprise Edition auf Engineered Systems wie Exadata und die Enterprise Edition auf Oracle Database Cloud Services beschränkt.

Es gibt zwei mögliche Rollen in einer Flotte:LEAD_CDB und MEMBER_CDB . Der LEAD_CDB kann definiert werden, indem die Eigenschaft LEAD_CDB auf „TRUE“ gesetzt wird. Alle anderen CDBs in der Flotte würden als MEMBER_CDBs fungieren.

Im Beispiel unten sind zwei CDBs und PDBs enthalten.

cdbvert011 :Container-Datenbank mit Pluggables-Datenbanken PDBDP, PDBDW, PDBMV, PDBSWD und PDBADDADOS. Dies wird der Flottenführer sein.
cdbhor011 :Container-Datenbank mit Plug-in-Datenbank PDBWEBDW1.

Pluggables-Datenbanken in der Container-Datenbank 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

Pluggable-Datenbank in Container-Datenbank 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


Konfigurieren Sie CDBVERT011 als LEAD CDB:


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

Gewähren Sie dem allgemeinen Benutzer im CDB-Lead die entsprechenden Berechtigungen:


sql> grant sysoper to system CONTAINER=ALL;

Grant succeeded.

Erstellen Sie den Datenbanklink und legen Sie ihn als Mitglied der Flotte fest:


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


Verbinden Sie sich auf CDBVERT011 und listen Sie alle PDBs auf. Der STUB-Wert in der Spalte STATUS definiert die CDB und ihre PDBs als Mitglieder in der Flotte. Nachdem Sie die CDB-Flotte konfiguriert haben, werden PDB-Informationen von den verschiedenen CDB-Mitgliedern einschließlich des CDB-Mitglieds mit der führenden CDB synchronisiert.


$ 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.

Deaktivieren Sie das CDB-Lead:


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.

Deaktivieren Sie das CDB-Mitglied:


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.

Referenzen

Verwaltung einer CDB-Flotte. Verfügbar unter https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/administering-cdb-fleet.html#GUID-0AA7FC65-F350-473B-96D2-976313514069