Zkontrolujte, zda je databáze CDB nebo jiná než CDB
SQL> vyberte cdb z v$database;CDB---YES
Připojování ke kontejneru
$ export ORACLE_SID=pcdb01$ sqlplus / jako sysdbaSQL> zobrazit con_nameCON_NAME------------------------------CDB$ROOTSQL> zobrazit con_idCON_ID------------------------------1SQL> zobrazit pdbs;CON_ID CON_NAME OTEVŘENÝ REŽIM OMEZENÝ--------- -- ------------------------------ ---------- -------- --2 PDB$SEED POUZE ČTĚTE NE3 PRD_PDB_CON ČTĚTE ZÁPIS NE4 PRD_PDB_TEN ČTĚTE ZÁPIS NE
Navigace mezi PNR
SQL> alter session set container=PDB$SEED;Session altered.SQL> alter session set container=PRD_PDB_CON;Session altered.SQL>
Informace o PNR
SQL> SLOUPEC PDB_NAME FORMAT A15SQL> COLUMN PDB_NAME FORMAT A15SQL> VYBERTE PDB_ID, PDB_NAME, STATUS FROM DBA_PDBS ORDER BY PDB_ID;PDB_ID PDB_NAME STATUS---------------- ----- ---------2 PDB$SEED NORMAL3 PRD_PDB_CON NORMAL4 PRD_PDB_TEN NORMAL
Kontrola/změna parametru
SQL> vybrat * z v$system_parameter;SQL> vybrat * z PDB_SPFILE$;SQL> změnit systémovou sadu název_parametru=hodnota;SQL> změnit systémovou sadu název_parametru=hodnota CONTAINER=CURRENT;
Spuštění a vypnutí PDB
Některé typické hodnoty:
STARTUP [NOMOUNT | HORA | OMEZIT | UPGRADE | SÍLA | POUZE KE ČTENÍ]
VYPNUTÍ [OKAMŽITÉ | ABORT]
$ export ORACLE_SID=pcdb01$ sqlplus / as sysdbaSQL> okamžité vypnutí;
Zastavit připojitelnou databázi
SQL> změnit zásuvnou databázi PRD_PDB_CON zavřít [okamžitě];SQL> změnit připojitelnou databázi VŠE KROMĚ PRD_PDB_CON zavřít [okamžitě];SQL> změnit připojitelnou databázi VŠE zavřít;SQL> změnit připojitelnou databázi PRD_PDB_CON zavřít [okamžitě] [instance=vše];
Nebo:
SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;SQL> okamžité vypnutí;
Spustit připojitelnou databázi
STARTUP FORCE
SPUŠTĚNÍ OTEVŘÍT ČÍST ZAPISOVAT [OMEZIT]
SPUŠTĚNÍ OTEVŘENO POUZE PRO ČTENÍ [OMEZIT]
SPUŠTĚNÍ AKTUALIZACE
VYPNUTÍ [OKAMŽITÉ]
SQL> změnit zásuvnou databázi PDB01 otevřeno;SQL> změnit zásuvnou databázi VŠE KROMĚ PRD_PDB_CON otevřené;SQL> změnit zásuvnou databázi VŠE otevřeno;SQL> změnit zásuvnou databázi PDB01 otevřít [instance=all];
Nebo:
SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;SQL> spuštění;SQL> alter PLUGGABLE DATABASEOTEVŘÍT ČÍST ZÁPIS [OMEZENO] [FORCE];SQL> změnit PLUGGABLE DATABÁZI OTEVŘÍT POUZE PRO ČTENÍ [OMEZENO][FORCE];SQL> změnit ZÁSUVNOU DATABÁZI OTEVŘÍT AKTUALIZACI [OMEZENO];SQL> změnit ZÁSUVNOU DATABÁZI ZAVŘÍT [OKAMŽITÉ];
Zachovat stav spuštění PDB (12.1.0.2 a novější)
SQL> alter PLUGGABLE DATABASE pdb2 OPEN;SQL> alter PLUGGABLE DATABASE pdb2 SAVE STATE;
Zobrazení DBA_PDB_SAVED_STATES zobrazuje informace o uloženém stavu kontejnerů.
SQL> COLUMN con_name FORMAT A20SQL> COLUMN instance_name FORMAT A20SQL> SELECT con_name, instance_name, state FROM dba_pdb_saved_states;CON_NAME INSTANCE_NAME STATE-------------------- --- ----------------- --------------PRD_PDB_CON pcdb01 OPEN
Velikost připojitelné databáze
SQL> FORMÁT NÁZVU SLOUPCE A20SQL> VYBERTE DBID, NÁZEV, CON_ID, CON_UID, TOTAL_SIZE Z V$CONTAINERS ORDER BY CON_ID;DBID NAME CON_IDCON_UID TOTAL_SIZE---------- -------- ---------------------- ---------- ---------- -------- --2732069181 CDB$ROOT 1 1 03552543733 PDB$SEED 2 3552543733 7759462404008367944 PRD_PDB_CON 3 4008367944 4008367944 4008367944 4008367944 2408367944 28527 12942037PD8727 1243426 PD872727 1243427 PD17072727TEN243427PD
Doba spouštění zásuvné databáze
SQL> nastavit velikost řádku 180SQL> název sloupce pro a30SQL> sloupec open_time pro a33SQL> vyberte con_id,name,dbid,open_mode,open_time z v$containers;CON_ID NAME DBID OPEN_MODE OPEN_TIME---------- - --------------- -------------- ---------- ----------- --------------------------------1 CDB$ROOT 456650806 PŘEČTĚTE ZAPISOVAT 17. Března-18 11.59.36.176 -03 :002 PDB $ Seed 2688102972 Přečtěte si pouze 17-Mar-18 11.59.36,182 PM -03:003 PDB_PN1O0101 1079206163 Číst Write 18-MAR-18-MAR-185, 12.00485, 12.00485, 12.00, 18-MAR-185, 12.00, 18-MAR-185, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00, 12.00,58, 12,00,00,58, 12,00,00,589. Jsou vybrány řádky AM -03:004.
Doba provozu zásuvné databáze
SQL> nastavit velikost řádku 180SQL> název sloupce pro a30SQL> sloupec open_time pro a28SQL> vyberte název,podlaží(sysdate-cast(open_time jako datum))||'Dny '||podlaží(((sysdate-cast(open_time as) datum))-podlaží(sysdate-cast(open_time jako datum)))*24)||'hodiny '||kolo(((sysdate-cast(open_time jako datum)-floor(sysdate-cast(open_time jako datum) ) ) *24)-floor((sysdate-cast(open_time as date)-floor(sysdate-cast(open_time as date))*24)))*60)||'minutes' "Uptime Database"from v$containers;NAME Provozní doba databáze--------------- ---------------------------CDB$ ROOT 1331 dní 11 hodin 28 minutPDB $SEED 1331 dní 11 hodin 28 minutPDB_PN1O0101 1331 dní 11 hodin 28 minutPDB_BATCHWEB 1331 dní 11 hodin 28 minut 4 vybrané řádky.
Název služeb
SQL> NÁZEV SLOUPCE FORMÁT A30SQL> VYBERTE JMÉNO,CON_ID,PDB Z V$SERVICES ORDER BY CON_ID;NAME CON_ID PDB----------------------- ------- ---------- ------------------------------pcdb01XDB 1 CDB $ROOTSYS$BACKGROUND 1 CDB$ROOTSYS$USERS 1 CDB$ROOTpcdb01 1 CDB$ROOTprd_pdb_con 3 PRD_PDB_CONprd_pdb_ten 4 vybrané řádky PRD_PDB_TEN6.
Vytvořte společné uživatele s přístupem ke všem pdbsSQL> VYTVOŘIT UŽIVATELE c##user1 IDENTIFIKOVAN PODLE hesla1 KONTEJNER=VŠECHNY;Uživatel vytvořen.SQL> UDĚLIT VYTVOŘENÍ REZE KONTEJNERU c##user1 KONTEJNER=VŠE;Udělení bylo úspěšné.Vytvářejte běžné uživatele bez přístupu k pdbs
SQL> VYTVOŘIT UŽIVATELE c##user2 IDENTIFIKOVANÉHO heslem1;Vytvořeno uživatelem.SQL> UDĚLIT VYTVOŘENÍ REZE K c##user2;Udělení bylo úspěšné.Vytvořit místního uživatele s přístupem pouze k pdb
SQL> VYTVOŘIT UŽIVATELE user3 IDENTIFIKOVANÉ heslem3 KONTEJNER=AKTUÁLNÍ;Vytvořeno uživatelem.SQL> UDĚLIT VYTVOŘIT RELACI uživateli3 KONTEJNER=AKTUÁLNÍ;Udělení bylo úspěšné.Vytvořit společnou roli
SQL> CONN / AS SYSDBASQL> VYTVOŘIT ROLE c##role1;Role vytvořena.SQL> GRANT VYTVOŘIT RELACI C##role1;Grant byl úspěšný.
Udělit roli běžnému uživateli
SQL> GRANT c##role1 TO c##user1 CONTAINER=ALL;Grant byl úspěšný.
Udělit roli běžnému uživateli místnímu uživateli
SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Session altered.SQL> GRANT c##role1 TO user2;Grant byl úspěšný.Místní role
SQL> CONN / AS SYSDBASQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Relace změněna.SQL> VYTVOŘIT ROLE role1;Role vytvořena.SQL> UDĚLIT VYTVOŘIT RELACI roli1;Udělení bylo úspěšné.Vytváření PNR
SQL> vytvořit připojitelnou databázi správce HMLPDB uživatel admin identifikovaný PassDw1 role =(DBA);SQL> vytvořit připojitelnou databázi DSVPDB admin uživatel admin identifikovaný Manager1roles =(DBA) úložiště (MAXSIZE 1G) FILE_NAME_CONVERT=('/u01/app /oracle/oradata/pcdb01/pcdb01_pdbseed_','/u01/app/oracle/oradata/dsvpdb/dsvpdb_');SQL> vytvořit zásuvnou databázi DSVPDB1 z DSVPDB název_souboru_convert=('/DSVPDB/','/DSVPDB1/');Kromě PNR
SQL> změnit připojitelnou databázi DSVPDB1 zavřít [okamžitě] [instances=all];SQL> zrušit připojitelnou databázi DSVPDB1 včetně datových souborů;Odpojení PDB
$ sqlplus / jako sysdbaSQL> změnit připojitelnou databázi PRD_PDB_CON zavřít;SQL> změnit připojitelnou databázi PRD_PDB_CON odpojit do '/tmp/prd_pdb_con.xml';Připojování PDB
$ sqlplus / as sysdbaSQL> vytvořte připojitelnou databázi PRD_PDB_CON pomocí '/tmp/prd_pdb_con.xml' FILE_NAME_CONVERT=('/oradata/cdb1/prd_pdb_con', '/oradata/cdb2/prd_pdblter plug_con');BSQL databáze PRD_pdblter_congable otevřít;Konfigurace služeb na Oracle RAC s CDB
$ srvctl přidat službu -db CDB01 -služba nová_služba -pdb PRD_PDB_CON$ srvctl upravit službu -db CDB01 -služba nová_služba -pdb PRD_PDB_CON$ srvctl odebrat službu -db CDB01 -služba nová_službaBEGINDBMS_SERVICE.CREATE_SERVICE(název_nové_služby =',síť' => 'new_service.com');END;/BEGINDBMS_SERVICE.DELETE_SERVICE(service_name => 'new_service');END;/S kořenovým kontejnerem máme cdb_tablespaces a cdb_data_files ukazuje tabulkový prostor a datové soubory všech kontejnerů v CDB.
Po připojení k PDB cdb_tablespaces a cdb_data_files zobrazují stejné informace jako dba_tablespaces, dba_data_files pro PDB.
SQL> alter session set container=CDB$ROOT;Session altered.SQL> vybrat tablespace_name, con_id z cdb_tablespaces pořadí podle con_id;TABLESPACE_NAME CON_ID-------------------- ----------- -------- System 1Sysaux 1Undotbs2 1Temp 1Users 1Undotbs1 1system 3Sysaux 3TBS_01 3TEMP 3TBS_CON_IDX_01 3TBS_CON_DT_01 3Uses; ----------------------------- SYSTEMSYSAUXUNDOTBS1TEMPUSERSUNDOTBS vybráno 26 řádků.Jak zkontrolovat funkci Místní zpět ve verzi 12.2
V Oracle Database 12c Release 1 sdílely všechny kontejnery v instanci stejný tabulkový prostor pro vrácení zpět.
V Oracle 12c Release 2 může každý kontejner v instanci používat svůj vlastní tabulkový prostor pro vrácení zpět.
SQL> okamžité vypnutí;SQL> upgrade při spuštění;SQL> alter databáze místní zpět zapnout;SQL> okamžité vypnutí;SQL> spuštění;SQL> col název_vlastnosti formát a30SQL> formát hodnota_souboru a30SQL> vyberte název_vlastnosti, hodnotu_vlastnosti z_vlastností_databáze kde název_vlastnosti ='LOCAL_UNDO_ENABLED';PROPERTY_NAME PROPERTY_VALUE---------------- -------------- LOCAL_UNDO_ENABLED TRUEOdkazy
https://docs.oracle.com