sql >> Databasteknik >  >> RDS >> Oracle

Grundläggande administration av Oracle 12c Multitenant

Kontrollera om databasen är CDB eller icke-CDB

SQL> välj cdb från v$database;CDB---JA

Ansluter till behållare

$ export ORACLE_SID=pcdb01$ sqlplus / as sysdbaSQL> visa con_nameCON_NAME-------------------------------------CDB$ROOTSQL> visa con_idCON_ID--------------------------------------1SQL> visa pdbs;CON_ID CON_NAME ÖPPET LÄGE BEGRÄNSAT-------- ---------------------------------- ------------------ --2 PDB$SEED LÄS ENDAST NO3 PRD_PDB_CON LÄS SKRIV NO4 PRD_PDB_TEN LÄS SKRIV NEJ

Navigera över PDB

SQL> ändra sessionsuppsättning container=PDB$SEED;Session ändrad.SQL> ändra sessionsuppsättning container=PRD_PDB_CON;Session ändrad.SQL>

Information om PDB

SQL> COLUMN PDB_NAME FORMAT A15SQL> COLUMN PDB_NAME FORMAT A15SQL> VÄLJ PDB_ID, PDB_NAME, STATUS FRÅN DBA_PDBS BESTÄLLNING EFTER PDB_ID;PDB_ID PDB_NAME STATUS---------- ---------- ----- ----------2 PDB$SEED NORMAL3 PRD_PDB_CON NORMAL4 PRD_PDB_TEN NORMAL

Kontrollera/ändra parameter

SQL> välj * från v$system_parameter;SQL> välj * från PDB_SPFILE$;SQL> alter system set parameter_name=value;SQL> ändra system set parameter_name=value CONTAINER=CURRENT;

Start och avstängning av PDB

Några typiska värden:

STARTUP [NOMOUNT | MONTERA | BEGRÄNSA | UPPGRADERA | KRAFT | LÄS ENDAST]

AVSTÄNGNING [OMMEDDELANDE | AVBRYT]

$ export ORACLE_SID=pcdb01$ sqlplus / as sysdbaSQL> avstängning omedelbart;

Stoppa pluggbar databas

SQL> ändra pluggbar databas PRD_PDB_CON stäng [omedelbar];SQL> ändra pluggbar databas ALLA UTOM PRD_PDB_CON stäng [omedelbart];SQL> ändra pluggbar databas ALLA stäng;SQL> ändra pluggbar databas PRD_PDB_CON stäng [omedelbart=alla] [instanser;

Eller:

SQL> ändra SESSION SET CONTAINER =PRD_PDB_CON;SQL> avstängning omedelbart;

Starta pluggbar databas

STARTKRAFT

UPPSTART ÖPPEN LÄS SKRIV [BEGRÄNSA]

UPPSTART ÖPPEN LÄS ENDAST [BEGRÄNSA]

STARTUPPGRADERING

AVSTÄNGNING [OMMEDDELANDE]

SQL> ändra pluggbar databas PDB01 öppen;SQL> ändra pluggbar databas ALLA UTOM PRD_PDB_CON öppen;SQL> ändra pluggbar databas ALLA öppna;SQL> ändra pluggbar databas PDB01 öppen [instanser=alla];

Eller:

SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;SQL> startup;SQL> alter PLUGGABLE DATABASE  ÖPPNA LÄS SKRIV [BEGRÄNSAD] [FORCE];SQL> alter PLUGGABLE DATABASE-name-  alter PLUGGABLE DATABASE  ÖPPNA UPPGRADERING [RETRICTED];SQL> alter PLUGGABLE DATABASE  STÄNG [IMMEDIATE];

Bevara PDB-startläge (12.1.0.2 och framåt)

SQL> ändra PLUGGABLE DATABASE pdb2 OPEN;SQL> alter PLUGGABLE DATABASE pdb2 SAVE STATE;

Vyn DBA_PDB_SAVED_STATES visar information om behållarnas sparade tillstånd.

SQL> COLUMN con_name FORMAT A20SQL> COLUMN instansnamn FORMAT A20SQL> VÄLJ con_name, instansnamn, tillstånd FRÅN dba_pdb_saved_states;CON_NAME INSTANCE_NAME STATE--------------------- --- ------------------ --------------PRD_PDB_CON pcdb01 ÖPPEN

Storlek på pluggbar databas

SQL> KOLUMNNAMN FORMAT A20SQL> VÄLJ DBID, NAMN, CON_ID, CON_UID, TOTAL_SIZE FRÅN V$CONTAINERS BESTÄLLNING EFTER CON_ID;DBID NAMN CON_IDCON_UID TOTAL_SIZE---------- -------- ---------------------- ---------- ------------------ --2732069181 CDB$ROOT 1 1 03552543733 PDB$SEED 2 3552543733 7759462404008367944 PRD_PDB_CON 3 4008367944 12403272671240427265 PR71112042726712408367944 1240427667 1240427267 12404272671 1240427265 

Starttid för pluggbar databas

SQL> ställ in radstorlek 180SQL> kolnamn för a30SQL> kol open_time för a33SQL> välj con_id,name,dbid,open_mode,open_time från v$containers;CON_ID NAME DBID OPEN_MODE OPEN_TIME---------- - --------------- -------------- ---------- ---------- - --------------------------------1 CDB$ROOT 456650806 LÄS SKRIV 17-MAR-18 11.59.36.176 PM -03 :002 PDB $ frö 2688102972 Läs endast 17-mar-18 11.59.36.182 PM -03:003 PDB_PN1O0101 1079206163 Läs Skriv 18-MAR-18.00.589 AM -03:004 PDBATH AM -03:004 rader valda.

Upptid för pluggbar databas

SQL> ställ in linjestorlek 180SQL> kolnamn för a30SQL> kol open_time för a28SQL> välj name,floor(sysdate-cast(open_time as date))||'Days '||floor(((sysdate-cast(open_time as date))-floor(sysdate-cast(öppen_tid som datum)))*24)||'timmar '||round(((sysdate-cast(öppen_tid som datum)-floor(sysdate-cast(öppen_tid som datum) ) *24)-floor((sysdate-cast(open_time as date)-floor(sysdate-cast(open_time as date))*24)))*60)||'minutes' "Databas Uptime"från v$containers;NAME Databasupptid --------------------------------------------CDB$ROOT 1331Days 11hours 28minutesPDB $SEED 1331Days 11hours 28minutesPDB_PN1O0101 1331Days 11hours 28minutesPDB_BATCHWEB 1331Days 11hours 28minutes4 rader valda.

Tjänsternas namn

SQL> KOLUMNNAMN FORMAT A30SQL> VÄLJ NAMN,CON_ID,PDB FRÅN V$SERVICES BESTÄLLNING AV CON_ID;NAMN 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 PRD_PDB_TEN6 rader valda.


Skapa vanliga användare med tillgång till alla pdbs

SQL> SKAPA ANVÄNDARE c##user1 IDENTIFIERAD AV lösenord1 CONTAINER=ALL;Användare skapad.SQL> BEHANDLA SKAPA SESSION TILL c##user1 CONTAINER=ALL;Beviljande lyckades.

Skapa vanliga användare utan tillgång till pdbs

SQL> SKAPA ANVÄNDARE c##user2 IDENTIFIERAD AV lösenord1;Användare skapad.SQL> BEHANDLA SKAPA SESSION TILL c##user2;Beviljande lyckades.

Skapa en lokal användare med endast åtkomst till pdb

SQL> SKAPA ANVÄNDARE användare3 IDENTIFIERAD AV lösenord3 CONTAINER=CURRENT;Användare skapad.SQL> BETYD SKAPA SESSION TILL användare3 CONTAINER=CURRENT;Beviljande lyckades.

Skapa gemensam roll

SQL> CONN / AS SYSDBASQL> SKAPA ROLL c##role1;Roll skapad.SQL> BEHANDLA SKAPA SESSION TILL c##role1;Grant lyckades.

Ge roll till en vanlig användare

SQL> GRANTA c##role1 TILL c##user1 CONTAINER=ALL;Grant lyckades.

Ge roll till en vanlig användare till en lokal användare

SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Session ändrad.SQL> BETYD c##role1 TILL user2;Beviljande lyckades.

Lokala roller

SQL> CONN / AS SYSDBASQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Session altered.SQL> CREATE ROLE role1;Roll created.SQL> GANTA CREATE SESSION TO role1;Beviljande lyckades.

Skapa PDB:er

SQL> skapa pluggbar databas HMLPDB admin användare admin identifierad av PassDw1 rolls =(DBA);SQL> skapa pluggbar databas DSVPDB admin användaradmin identifierad av Manager1roles =(DBA) lagring (MAXSIZE 1G) FILE_NAME_CONVERT=('/u01/app /oracle/oradata/pcdb01/pcdb01_pdbseed_','/u01/app/oracle/oradata/dsvpdb/dsvpdb_');SQL> skapa pluggbar databas DSVPDB1 från DSVPDB file_name_convert=('/DSVPDB/'/'/DSVPDB/'/'/DSVPDB); 

Exklusive PDB

SQL> ändra pluggbar databas DSVPDB1 stäng [omedelbar] [instances=all];SQL> släpp pluggbar databas DSVPDB1 inklusive datafiler;

Koppla ur  PDB

$ sqlplus / as sysdbaSQL> ändra pluggbar databas PRD_PDB_CON close;SQL> ändra pluggbar databas PRD_PDB_CON koppla bort in i '/tmp/prd_pdb_con.xml';

Anslut PDB:er

$ sqlplus / as sysdbaSQL> skapa insticksbar databas PRD_PDB_CON med '/tmp/prd_pdb_con.xml' FILE_NAME_CONVERT=('/oradata/cdb1/prd_pdb_con', '/oradata/cdb2_/prd_pdbLBCON alt PRD_pdbD CONVERT_prd_pdbD); öppna;

Konfigurera tjänster på Oracle RAC med CDB

$ srvctl lägg till tjänst -db CDB01 -service new_service -pdb PRD_PDB_CON$ srvctl modifiera tjänst -db CDB01 -service new_service -pdb PRD_PDB_CON$ srvctl ta bort tjänst -db CDB01 -tjänst new_serviceBEGINVICE_tjänst_namn ='ny_tjänst_tjänst>.CMS_tjänst_namn => 'new_service.com');END;/BEGINDBMS_SERVICE.DELETE_SERVICE(service_name => 'new_service');END;/

Med rotbehållare har vi cdb_tablespaces och cdb_data_files visar tabellutrymmet och datafilerna för alla behållare i CDB.

När de är anslutna till en PDB visar cdb_tablespaces och cdb_data_files samma information som dba_tablespaces, dba_data_files för PDB.

SQL> alter session set container=CDB$ROOT;Session altered.SQL> välj tabellutrymmesnamn, con_id från cdb_tablespaces ordning efter con_id;TABLESPACE_NAME CON_ID-------------------- ----------- --------SYSTEM 1SYSAUX 1UNDOTBS2 1TEMP 1ANVÄNDARE 1UNDOTBS1 1SYSTEM 3SYSAUX 3TBS_GEN_01 3TEMP 3TBS_CON_IDX_01 3TBS_CON_DT_01 3USERS 3SYSTEM 4SYSAUX 4TBS_NAME_08 fält 4TBS_USERS1S1 fält 4TBS_GENS1S1 fält 4TBS_GENS1S1 fält 4TBS_GENS1S1; -----------------------------SYSTEMSYSAUXUNDOTBS1TEMPUSERSUNDOTBS26 rader valda.

Hur du söker efter lokal ångra-funktion i 12.2

I Oracle Database 12c Release 1 delade alla behållare i en instans samma ångra tabellutrymme.

I Oracle 12c Release 2 kan varje behållare i en instans använda sitt eget ångra tabellutrymme.

SQL> avstängning omedelbar;SQL> startup upgrade;SQL> ändra databasen lokal ångra på;SQL> avstängning omedelbar;SQL> startup;SQL> kol egenskapsnamn format a30SQL> kol egenskapsvärde format a30SQL> välj egenskapsnamn, egenskapsvärde där egenskapen databas_egenskaper ='LOCAL_UNDO_ENABLED';PROPERTY_NAME PROPERTY_VALUE---------------- -------------- LOCAL_UNDO_ENABLED TRUE
 

Referenser

https://docs.oracle.com


  1. Fallstudie för SQL Server Databas Server Hardware Upgrade

  2. Fundamentals of tabelluttryck, del 13 – Inline tabellvärderade funktioner, fortsättning

  3. Sätt att veta hur man hanterar databaskorruption i SQL Server

  4. Snabbaste sättet att uppdatera 120 miljoner rekord