sql >> Base de Datos >  >> RDS >> Oracle

Administración básica de Oracle 12c Multitenant

Compruebe si la base de datos es CDB o no CDB

SQL> seleccione cdb de v$database;CDB---SÍ

Conexión al contenedor

$ export ORACLE_SID=pcdb01$ sqlplus / as sysdbaSQL> show con_nameCON_NAME------------------------------CDB$ROOTSQL> show con_idCON_ID------------------------------1SQL> show pdbs;CON_ID CON_NAME MODO ABIERTO RESTRINGIDO-------- -- ------------------------------ ---------- -------- --2 PDB$ SEMILLA LEER SOLO NO3 PRD_PDB_CON LEER ESCRIBIR NO4 PRD_PDB_TEN LEER ESCRIBIR NO

Navegar por PDB

SQL> alter session set container=PDB$SEED;Sesión alterada.SQL> alter session set container=PRD_PDB_CON;Sesión alterada.SQL>

Información sobre PDB

SQL> COLUMNA PDB_NAME FORMATO A15SQL> COLUMNA PDB_NAME FORMATO A15SQL> SELECCIONE PDB_ID, PDB_NAME, ESTADO DE DBA_PDBS ORDEN POR PDB_ID;PDB_ID PDB_NAME ESTADO---------- ---------- ----- ---------2 PDB$SEED NORMAL3 PRD_PDB_CON NORMAL4 PRD_PDB_TEN NORMAL

Comprobación/cambio de parámetros

SQL> seleccione * de v$system_parameter;SQL> seleccione * de PDB_SPFILE$;SQL> modifique el conjunto del sistema nombre_parámetro=valor;SQL> modifique el conjunto del sistema nombre_parámetro=valor CONTENEDOR=ACTUAL;

Inicio y apagado de PDB

Algunos valores típicos:

INICIO [SIN MONTAJE | MONTAJE | RESTRINGIR | ACTUALIZAR | FUERZA | SOLO LECTURA]

APAGADO [INMEDIATO | ABORT]

$ export ORACLE_SID=pcdb01$ sqlplus / as sysdbaSQL> apagado inmediato;

Detener base de datos conectable

SQL> modificar base de datos conectable PRD_PDB_CON cerrar [inmediato];SQL> modificar base de datos conectable TODO EXCEPTO PRD_PDB_CON cerrar [inmediato];SQL> modificar base de datos conectable TODO cerrar;SQL> modificar base de datos conectable PRD_PDB_CON cerrar [inmediato] [instancias=todas];

O:

SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;SQL> apagado inmediato;

Iniciar base de datos conectable

FUERZA DE ARRANQUE

INICIO ABRIR LEER ESCRIBIR [RESTRINGIR]

INICIO ABIERTO SOLO LECTURA [RESTRINGIDO]

ACTUALIZACIÓN DE INICIO

APAGADO [IMMEDIATE]

SQL> modificar la base de datos conectable PDB01 abierta;SQL> modificar la base de datos conectable TODO EXCEPTO PRD_PDB_CON abierto;SQL> modificar la base de datos conectable TODO abierto;SQL> modificar la base de datos conectable PDB01 abrir [instancias=todas];

O:

SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;SQL> startup;SQL> alter PLUGGABLE DATABASE  OPEN READ WRITE [RESTRICTED] [FORCE];SQL> alter PLUGGABLE DATABASE  OPEN READ ONLY [RESTRICTED][FORCE];SQL> alter PLUGGABLE DATABASE  OPEN UPGRADE [RESTRICTED];SQL> alter PLUGGABLE DATABASE  CLOSE [IMMEDIATE];

Preservar el estado de inicio de PDB (12.1.0.2 en adelante)

SQL> alter BASE DE DATOS ENCHUFABLE pdb2 OPEN;SQL> alter BASE DE DATOS ENCHUFABLE pdb2 GUARDAR ESTADO;

La vista DBA_PDB_SAVED_STATES muestra información sobre el estado guardado de los contenedores.

SQL> COLUMNA con_name FORMATO A20SQL> COLUMNA nombre_instancia FORMATO A20SQL> SELECT con_name, nombre_instancia, estado FROM dba_pdb_saved_states;CON_NAME NOMBRE_INSTANCIA ESTADO-------------------- --- -------- --------------PRD_PDB_CON pcdb01 ABIERTO

Tamaño de la base de datos conectable

SQL> FORMATO DE NOMBRE DE COLUMNA A20SQL> SELECCIONE DBID, NOMBRE, CON_ID, CON_UID, TOTAL_SIZE DE V$CONTENEDORES ORDENAR POR CON_ID;DBID NOMBRE CON_IDCON_UID TOTAL_SIZE---------- -------- ---------------------------- ---------- ---------- -------- --2732069181 CDB$ROOT 1 1 03552543733 PDB$SEED 2 3552543733 7759462404008367944 PRD_PDB_CON 3 4008367944 12037652482667104724 PRD_PDB_TEN 4 48269110 482671 

Tiempo de inicio de la base de datos conectable

SQL> establecer linesize 180SQL> nombre de columna para a30SQL> col open_time para a33SQL> select con_id,name,dbid,open_mode,open_time from v$containers;CON_ID NAME DBID OPEN_MODE OPEN_TIME---------- - --------------- -------------- ---------- ---------- - --------------------------------1 CDB$ROOT 456650806 LEER ESCRIBIR 17-MAR-18 11.59.36.176 PM -03 :002 PDB $ SEED 2688102972 LEA SOLO 17-Mar-18 11.59.36.182 PM -03:003 PDB_PN1O0101 1079206163 Leer escritura 18-mar-18 12.00.00.589 AM -03:004 PDB_BatchWeb 2340495643 Read Write 18-Mar-18 12.00.003.03.03. AM -03:004 filas seleccionadas.

Tiempo de actividad de la base de datos conectable

SQL> establezca el tamaño de línea 180SQL> col nombre para a30SQL> col open_time para a28SQL> seleccione nombre,piso(sysdate-cast(open_time as date))||'Days '||piso(((sysdate-cast(open_time as date))-floor(sysdate-cast(open_time as date)))*24)||'horas'||round(((sysdate-cast(open_time as date)-floor(sysdate-cast(open_time as date) ) *24)-floor((sysdate-cast(open_time as date)-floor(sysdate-cast(open_time as date))*24)))*60)||'minutos' "Tiempo de actividad de la base de datos" de v$containers;NOMBRE Tiempo de actividad de la base de datos--------------- ---------------------------CDB$ROOT 1331Días 11horas 28minutosPDB $SEED 1331Días 11horas 28minutosPDB_PN1O0101 1331Días 11horas 28minutosPDB_BATCHWEB 1331Días 11horas 28minutos4 filas seleccionadas.

Nombre de los servicios

SQL> NOMBRE DE COLUMNA FORMATO A30SQL> SELECCIONE NOMBRE,CON_ID,PDB DESDE V$SERVICIOS ORDEN POR CON_ID;NOMBRE 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 filas seleccionadas.


Crear usuarios comunes con acceso a todos los pdbs

SQL> CREAR USUARIO c##usuario1 IDENTIFICADO POR contraseña1 CONTENEDOR=TODOS;Usuario creado.SQL> OTORGAR CREAR SESIÓN A c##usuario1 CONTENEDOR=TODOS;Concesión exitosa.

Crear usuarios comunes sin acceso a pdbs

SQL> CREAR USUARIO c##user2 IDENTIFICADO POR contraseña1;Usuario creado.SQL> OTORGAR CREAR SESIÓN A c##user2;Concesión exitosa.

Crear usuario local con acceso solo a pdb

SQL> CREAR USUARIO usuario3 IDENTIFICADO POR contraseña3 CONTENEDOR=ACTUAL;Usuario creado.SQL> GRANT CREATE SESSION TO usuario3 CONTENEDOR=ACTUAL;Concesión exitosa.

Crear rol común

SQL> CONN / AS SYSDBASQL> CREATE ROLE c##role1;Rol creado.SQL> GRANT CREATE SESSION TO c##role1;Concesión exitosa.

Otorgar rol a un usuario común

SQL> GRANT c##role1 TO c##user1 CONTAINER=ALL;Otorgamiento exitoso.

Otorgar rol a un usuario común a un usuario local

SQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Sesión alterada.SQL> GRANT c##role1 TO user2;Concesión exitosa.

Funciones locales

SQL> CONN / AS SYSDBASQL> alter SESSION SET CONTAINER =PRD_PDB_CON;Sesión alterada.SQL> CREATE ROLE rol1;Rol creado.SQL> GRANT CREATE SESSION TO role1;Concesión exitosa.

Creación de PDB

SQL> crear base de datos conectable HMLPDB usuario administrador identificado por roles PassDw1 =(DBA);SQL> crear base de datos conectable DSVPDB usuario administrador identificado por Manager1roles =(DBA) almacenamiento (MAXSIZE 1G) FILE_NAME_CONVERT=('/u01/app /oracle/oradata/pcdb01/pcdb01_pdbseed_','/u01/app/oracle/oradata/dsvpdb/dsvpdb_');SQL> crear base de datos conectable DSVPDB1 desde DSVPDB file_name_convert=('/DSVPDB/','/DSVPDB1/'); 

Excluyendo PDB

SQL> alterar la base de datos conectable DSVPDB1 cerrar [inmediatamente] [instancias=todas];SQL> descartar la base de datos conectable DSVPDB1 incluidos los archivos de datos;

Desconexión de  PDB

$ sqlplus / as sysdbaSQL> modificar la base de datos conectable PRD_PDB_CON close;SQL> modificar la base de datos conectable PRD_PDB_CON desconectar en '/tmp/prd_pdb_con.xml';

Conectando PDB

$ sqlplus / as sysdbaSQL> crear base de datos conectable PRD_PDB_CON usando '/tmp/prd_pdb_con.xml' FILE_NAME_CONVERT=('/oradata/cdb1/prd_pdb_con', '/oradata/cdb2/prd_pdb_con');SQL> modificar base de datos conectable PRD_PDB_CON abierto;

Configuración de servicios en Oracle RAC con CDB

$ srvctl agregar servicio -db CDB01 -service nuevo_servicio -pdb PRD_PDB_CON$ srvctl modificar servicio -db CDB01 -service nuevo_servicio -pdb PRD_PDB_CON$ srvctl remove service -db CDB01 -service nuevo_servicioBEGINDBMS_SERVICE.CREATE_SERVICE(service_name => 'new_service',network_name => 'nuevo_servicio.com');END;/BEGINDBMS_SERVICE.DELETE_SERVICE(service_name => 'new_service');END;/

Con el contenedor raíz, tenemos cdb_tablespaces y cdb_data_files muestra el espacio de tabla y los archivos de datos de todo el contenedor en el CDB.

Cuando se conecta a una PDB, cdb_tablespaces y cdb_data_files muestran la misma información que dba_tablespaces, dba_data_files para la PDB.

SQL> alter session set container=CDB$ROOT;Sesión alterada.SQL> seleccione tablespace_name, con_id from cdb_tablespaces order by con_id;TABLESPACE_NAME CON_ID------------------- ----------- --------SYSTEM 1SYSAUX 1UNDOTBS2 1TEMP 1USERS 1UNDOTBS1 1SYSTEM 3SYSAUX 3TBS_GEN_01 3TEMP 3TBS_CON_IDX_01 3TBS_CON_DT_01 3USERS 3SYSTEM 4SYSAUX 4TBS_GEN_01 4USERS 4TEMP 418 filas seleccionadas.SQL> seleccione tablespace_name de dba_TABLESPACE_tablespaces; -----------------------------SYSTEMSYSAUXUNDOTBS1TEMPUSERSUNDOTBS26 filas seleccionadas.

Cómo verificar la función Deshacer local en 12.2

En Oracle Database 12c versión 1, todos los contenedores de una instancia compartían el mismo espacio de tabla de deshacer.

En Oracle 12c versión 2, cada contenedor en una instancia puede usar su propio tablespace de deshacer.

SQL> cierre inmediato;SQL> actualización de inicio;SQL> alterar base de datos local deshacer en;SQL> cierre inmediato;SQL> inicio;SQL> formato de nombre_propiedad col a30SQL> formato de valor_propiedad col a30SQL> seleccione nombre_propiedad, valor_propiedad from propiedades_base_datos donde nombre_propiedad ='LOCAL_UNDO_ENABLED';PROPERTY_NAME PROPERTY_VALUE------- -------------- LOCAL_UNDO_ENABLED TRUE
 

Referencias

https://docs.oracle.com