sql >> Databáze >  >> RDS >> Oracle

Základní správa Oracle 12c Multitenant

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 DATABASE  OTEVŘÍ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 pdbs

SQL> 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 TRUE
 

Odkazy

https://docs.oracle.com


  1. Jak předat parametry tabulky s hodnotou z java do uložené procedury serveru SQL?

  2. Oracle displej více než 24 hodin

  3. Jak zahrnout vyloučené řádky do RETURNING from INSERT ... ON CONFLICT

  4. Chyby T-SQL, úskalí a osvědčené postupy – spoje