30
Sep

Kai Yu (Oracle ACE Director)

El día de ayer llegó a mis manos el libro Oracle RAC 12c como un regalo de mi buen amigo Kai Yu (Oracle ACE Director). Kai Yu es uno de los co-autores del libro al igual que Riyaj Shamsudeen, Syed Jaffar Hussain and Tariq Farooq. Este libro está ganando bastante popularidad dentro de los Oracle DBA's debido a que en él se encontrará la experiencia de todos los co-autores en palabras, diferenciandolo de todos aquellos libros que estan hechos de copias de texto de la documentación oficial de Oracle. A continuación presento una pequeña descripción de cada uno de los autores:

Riyaj Shamsudeen is an industry-recognized RAC expert and performance tuning specialist with 19+ years of experience in implementing, using, and tuning RAC and Oracle products. He is an Oracle ACE Director and proud member of the OakTable network. Riyaj has co-authored many books about Oracle Database. He is an active blogger (at http://orainternals.wordpress.com) and frequent international speaker in major conferences such as UKOUG, HOTSOS, Open World, and RMOUG.

Syed Jaffar Hussain has over 20 years I.T. experience that includes more than 12 years of production Oracle database administration.  Oracle has honored him with the prestigious Oracle ACE Director role, and named him DBA of the Year for 2011, both for his excellent knowledge and contributions to the Oracle community. He is an Oracle Certified Master (OCM) for Oracle Database 10g–a status granted only after passing extenstive challenges in a hands-on environment. He is also an Oracle Database 10g RAC Certified Expert.  Syed Jaffar is coauthor of Oracle 11g R1/R2 Real Application Clusters Essentials, and he blogs regularly at: http://jaffardba.blogspot.com

Kai Yu is a Senior Principal Engineer and technologist in Dell’s Oracle Solutions Engineering Lab specializing in Oracle RAC, Oracle Virtualization, and Cloud. With 18+ years of experience working on Oracle technology, he has implemented and managed many large, mission-critical Oracle RAC databases, including those in his tenure with an IT organization having more than two thousand RAC databases.  Kai is a well-known author of technical articles and a frequent speaker at Oracle conferences such as OpenWorld, Collaborate, UKOUG, Finland OUG, Norway OUG, OTN Asia/Pacific tour, and Latin Americas tour. He has also keynoted at Oracle Architect Day.

Kai has served IOUG’s Oracle RAC SIG  as president, and in two chair positions. He has served the IOUG Collaborate conference committee, as well as managing IOUG’s RAC boot camp, HA boot camp, and Enterprise Manager 12c deep dive.  He was awarded the Oracle ACE Director title in 2010, given the Oracle ACE Spotlight in 2011 by Oracle Technology Network (OTN), and named the 2011 OAUG Innovator of Year Award by the Oracle Applications User Group (OAUG). In 2012, Oracle Magazine awarded him the  Oracle Excellence Award: Technologist of the Year: Cloud Architect. Kai has been active in sharing his Oracle knowledge on his Oracle blog at http://kyuoracleblog.wordpress.com/.

Tariq Farooq is an Oracle Technologist/Architect/Problem-Solver and has been working with various Oracle Technologies for 20+ years in very complex environments at some of the world's largest organizations. He is the founding President of the IOUG Virtualization & Cloud Computing Special Interest Group. He is an active Community Leader/Organizer, Speaker, Author, Forum contributor, and Blogger. He is the founder of www.brainSurface.com, a Social Networking & IT Collaboration site for the various Oracle Communities with thousands of signed-up users. Tariq founded, organized and chaired various conferences including, amongst others, VirtaThon, the largest online-only conference for the various Oracle domains; the CloudaThon & RACaThon series of conferences; and the first ever Oracle-centric conference at the Massachusetts Institute of Technology (MIT) in 2011. He was the founder and Achor/Show-Host of the VirtaThon Internet Radio series program. He was also the Track Manager for the Virtualization and Cloud Computing Tracks for COLLABORATE 2012 & 2013. Tariq is an Oracle RAC Certified Expert, holds a total of 14 professional Oracle Certifications and, is the author of 100+ articles, whitepapers & other publications. Tariq has presented and spoken at almost every major Oracle Conference/Event all over the world, including Oracle OpenWorld, COLLABORATE, BrainSurface, VirtaThon, IOUG, OOUG, OUGLC, TCOUG, UKOUG, The OTNExpert+ Conference & others. Tariq has been awarded the Oracle ACE and ACE Director awards from 2010 – 2013.

Tambien es necesario dar a conocer que uno de los revisores de este libro es el ya conocido Arup Nanda creador de más de 500 articulos en Oracle, Escritor oficial de Oracle Magzine  y co-autor de más de 4 libros.

1267990_637473286274105_1534376509_o

1272651_637473359607431_1667618786_o

1265649_637475249607242_1869101197_o

Facebooktwitterlinkedinmailby feather
23
Sep

SYSBACKUP, SYSDG, SYSKM System/Object Privileges and Statements/Roles

En Oracle Database 12c existen 3 nuevos Privilegios administrativos: SYSBACKUP, SYSDG y SYSKM con el objectivo de separar las responsabilidades administrativas, tal como se muestra a continuación:

SYSBACKUP: Operaciones administrativas de RMAN

SYSDG: Operaciones administrativas de Data Guard

SYSKM: Operaciones administrativas de Encriptacion 

Pero como todo DBA lo que nos insteresa es saber a profundidad qué pueden hacer cada uno de estos privilegios para poder determinar a qué usuarios se los asignamos, para esto dejo el siguiente detalle:

SYSBACKUP

System/Object Privileges

  • ALTER DATABASE
  • ALTER SYSTEM
  • CREATE SESSION
  • ALTER SESSION
  • ALTER TABLESPACE
  • DROP TABLESPACE
  • UNLIMITED TABLESPACE
  • RESUMABLE
  • CREATE ANY DIRECTORY
  • CREATE ANY TABLE
  • CREATE ANY CLUSTER
  • AUDIT ANY
  • SELECT ANY DICTIONARY
  • SELECT ANY TRANSACTION
  • SELECT X$ tables
  • SELECT V$/GV$ views
  • EXECUTE SYS.DBMS_BACKUP_RESTORE
  • EXECUTE SYS.DBMS_RCVMAN
  • EXECUTE SYS.DBMS_IR
  • EXECUTE SYS.DBMS_TTS
  • EXECUTE SYS.DBMS_TDB
  • EXECUTE SYS.DBMS_PLUGTS
  • EXECUTE SYS.DBMS_PLUGTSP

Statements and Roles

  • CREATE PFILE
  • CREATE SPFILE
  • CREATE CONTROLFILE
  • DROP DATABASE
  • STARTUP, SHUTDOWN
  • CREATE/DROP RESTORE POINT
  • FLASHBACK DATABASE
  • SELECT_CATALOG_ROLE
  • HS_ADMIN_SELECT_ROLE

SYSDG

System/Object privileges

  • CREATE SESSION
  • ALTER SYSTEM
  • ALTER SESSION
  • ALTER DATABASE
  • SELECT ANY DICTIONARY
  • SELECT X$ tables
  • SELECT V$ and GV$ views
  • DELETE/SELECT APPQOSSYS.WLM_CLASSIFIER_PLAN
  • EXECUTE SYS.DBMS_DRS

Statements and Roles

  • STARTUP
  • SHUTDOWN
  • CREATE RESTORE POINT
  • DROP RESTORE POINT
  • FLASHBACK DATABASE

SYSKM

System/Object privileges

  • CREATE SESSION
  • ADMINISTER KEY MANAGEMENT
  • SELECT SYS.V$WALLET
  • SELECT SYS.V$ENCRYPTION_WALLET
  • SELECT SYS.V$ENCRYPTED_TABLESPACES

Los usuarios en el Sistema operativo son solicitados en la instalación por el DBCA tal como se muestra a continuación:

dbca

Facebooktwitterlinkedinmailby feather
18
Sep

Recreación automatica de Tempfiles en Oracle 12c

En Oracle 12c existe la nueva característica de recreación automatica de los archivos temporales, dicha recreación se dá en el proceso de apertura de un PDB, un Contenedor o una base de datos normal. A continuación la práctica de esta lección:

Conectarse al PDB:

[oracle@orcl12c ~]$ sqlplus dgomez/dgomez@PDB1

12ctemp

Obtener el default temporary tablespace:

SQL> SELECT PROPERTY_VALUE FROM DATABASE_PROPERTIES where PROPERTY_NAME='DEFAULT_TEMP_TABLESPACE';

PROPERTY_VALUE
——————————–
TEMP

Obtener la ruta física dle archivo:

SQL> select file_name from dba_temp_files where tablespace_name='TEMP';

FILE_NAME
———————————————————————–
+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553

Cerrar el Contenedor con sus respectivas PDB's:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

Borrar el datafile que utiliza el tablespace TEMP, con esto comprobaremos que efectivamente el tempfile 
que utiliza el temporary tablespace en el PDB1 es automaticamente recreado:

ASMCMD> cd +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/
ASMCMD> rm -rf temp.290.819647553

Abrir nuevamente el PDB1:

SQL> alter pluggable database PDB1 open;

Pluggable database altered.

Información en el archivo de alerta:

ORA-01157: cannot identify/lock data file 203 – see DBWR trace file
ORA-01110: data file 203: '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553'
ORA-17503: ksfdopn:2 Failed to open file +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553
ORA-15012: ASM file '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553' does not exist
Wed Sep 18 11:20:39 2013
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_dbw0_4980.trc:
ORA-01157: cannot identify/lock data file 203 – see DBWR trace file
ORA-01110: data file 203: '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553'
ORA-17503: ksfdopn:2 Failed to open file +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553
ORA-15012: ASM file '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553' does not exist
Wed Sep 18 11:20:39 2013
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_dbw0_4980.trc:
ORA-01186: file 203 failed verification tests
ORA-01157: cannot identify/lock data file 203 – see DBWR trace file
ORA-01110: data file 203: '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553'
Wed Sep 18 11:20:39 2013
File 203 not verified due to error ORA-01157
Wed Sep 18 11:20:39 2013
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_dbw0_4980.trc:
ORA-01157: cannot identify/lock data file 203 – see DBWR trace file
ORA-01110: data file 203: '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553'
ORA-17503: ksfdopn:2 Failed to open file +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553
ORA-15012: ASM file '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553' does not exist
Wed Sep 18 11:20:39 2013
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_dbw0_4980.trc:
ORA-01186: file 203 failed verification tests
ORA-01157: cannot identify/lock data file 203 – see DBWR trace file
ORA-01110: data file 203: '+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553'
File 203 not verified due to error ORA-01157
Wed Sep 18 11:20:39 2013
Re-creating tempfile +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.819647553 as +DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE/temp.290.826456839
Opening pdb PDB1 (3) with no Resource Manager plan active
Pluggable database PDB1 opened read write
Completed: alter pluggable database PDB1 open

Verificar la recreación del tempfile:

ASMCMD> pwd
+DATA/CDB1/E07B3E1DC96D14E2E0430238A8C07E3E/TEMPFILE
ASMCMD> ls
TEMP.290.826456839

¿Sucede lo mismo con el temporary tablespace del ROOT?
¡Claro que sí! veamoslo…

Obtener la ruta fisica dle tempfile:

SQL> select file_name, con_id from cdb_temp_files where con_id=1;

FILE_NAME
——————————————————————————–
+DATA/CDB1/TEMPFILE/temp.283.819646809

Bajar el Contenedor con sus PDBs:

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

Eliminar el archivo físicamente:

ASMCMD> cd +DATA/CDB1/TEMPFILE
ASMCMD> rm -rf temp.283.819646809

Información en el archivo de alerta:

ORA-01157: cannot identify/lock data file 201 – see DBWR trace file
ORA-01110: data file 201: '+DATA/CDB1/TEMPFILE/temp.283.819646809'
ORA-17503: ksfdopn:2 Failed to open file +DATA/CDB1/TEMPFILE/temp.283.819646809
ORA-15012: ASM file '+DATA/CDB1/TEMPFILE/temp.283.819646809' does not exist
Wed Sep 18 11:28:33 2013
Errors in file /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_dbw0_5380.trc:
ORA-01186: file 201 failed verification tests
ORA-01157: cannot identify/lock data file 201 – see DBWR trace file
ORA-01110: data file 201: '+DATA/CDB1/TEMPFILE/temp.283.819646809'
Wed Sep 18 11:28:33 2013
File 201 not verified due to error ORA-01157
Wed Sep 18 11:28:33 2013
Re-creating tempfile +DATA/CDB1/TEMPFILE/temp.283.819646809 as +DATA/CDB1/TEMPFILE/temp.283.826457313

Verificación de la recreación del tempfile:

ASMCMD> pwd
+DATA/CDB1/TEMPFILE
ASMCMD> ls
TEMP.283.826457313

 

Facebooktwitterlinkedinmailby feather
18
Sep

COECYS 2013

Como todos los años los estudiantes de Ciencias y Sistemas de la Universidad de San Carlos de Guatemala organizan el evento llamado "COECYS" en el que se reunen varios profesionales a compartir conocimiento de diferentes areas. Algunas de las conferencias que se darán en el congreso son:

  • Gadgets de última generación
  • Liderazgo y Motivación
  • Importancia de la Aplicación de Inteligencia de Negocios
  • Gobierno de T.I.
  • Marketing Digital
  • Seguridad Informática, Telecomunicaciones
  • Aplicación Social de la Tecnología
  • Aplicación industrial de la Tecnología
  • Software Libre aplicado a las necesidades de las empresas
  • Innovación y Emprendimiento
  • El rol actual del profesional en informática
  • Redes de última generación
  • Opciones laborales y de desarrollo luego del estudio en informática
  • Big Data, Data Analytics, Data Science
  • Nuevo Paradigmas de las Tecnologías de la información

En este congreso tendré la oportunidad de participar por segunda vez consecutiva, esta vez con el tema "¿Por qué usar Servicios Web?"

Viernes 04, Octubre 2013.
17:00 a 18:00 horas.
Hotel Radisson
1a. Avenida 12-46, Zona 10
Guatemala

coecys

Facebooktwitterlinkedinmailby feather
17
Sep

¿Cómo solicitar el reenvio de un certificado de Oracle?

1

 

  • Llenar todos los datos que se solicitan. El dato más importante es el ID.

  • Indicar en los comentarios el nombre del examen que se realizó, ejemplo: "1Z0-402: Oracle Enterprise Linux Certified Implementation Specialist"

  • Indicar en los comentarios la fecha en que se aprobó el examen.

  • y finalmente indicar que se solicita un reenvio del certificado.

2

  • Al finalizar el formulario se le asignará un número de caso, debe guardarlo.
  • El soporte se Oracle se comunicará despues de algunas horas al correo electrónico que ingresó en el formulario.

Nota: Para poder reclamar el certificado es necesario que haya pasado como mínimo 3 meses desde que se aprobó el examen.

Facebooktwitterlinkedinmailby feather
16
Sep

Exadata: Smart Scan vs Without Smart Scan vs Database 12c

Ambiente:

# DB Servers: 1
# Storage Server: 1
Compute NodeRelease 11.2.0.2.0
CellCLI: Release 11.2.3.2.1

Sin Smart Scan:

SQL> select sum(bytes)/1024/1024 MB from dba_segments where segment_name=’BIG_TABLE’;

MB
———-
1153.25

SQL> alter system flush buffer_cache;

System altered.

SQL> set timin on
SQL> set autotrace on explain stat
SQL> select /*+ opt_param(‘cell_offload_processing’ ‘false’)*/ count(*) from dgomez.big_table where object_name=’com/sun/mirror/type/EnumType’;

COUNT(*)
———-
278

Elapsed: 00:01:06.29

sinSmartScan

 

Con Smart Scan:

SQL> alter system flush buffer_cache;

System altered.

select /*+ opt_param(‘cell_offload_processing’ ‘true’)*/ count(*) from dgomez.big_table where object_name=’com/sun/mirror/type/EnumType’;

COUNT(*)
———-
278

Elapsed: 00:00:01.50

conSmartScan

El Offload Processing también puede ser habilitado o deshabilitado mediante:

SQL> alter session set cell_offload_processing=false;
SQL> alter session set cell_offload_processing=true;

Con Oracle Database 12c Single Instance:

SQL*Plus: Release 12.1.0.1.0

SQL> select bytes/1024/1024 MB from dba_segments where segment_name=’BIG_TABLE’;

MB
———-
1156

SQL> set timin on
SQL> set autotrace on explain stat
SQL> select count(*) from dgomez.big_table where object_name=’com/sun/mirror/type/EnumType’;

COUNT(*)
———-
224

Elapsed: 00:00:02.78

12c

 

Conclusión:

Sin Smart Scan se podría pensar que debería durar el mismo tiempo que tardó la BD 12c, sin embargo, esto es incorrecto. Sin Smart Scan el DB Server envió la consulta al Cell, dicho Cell procesó la consulta, realizó un Full Scan y debido a ello tuvo que transferir los 1153.25 MB por la red, luego fué filtrado por el DB Server. El tiempo utilizado para transferir los datos por la red fué alto debido a que intencionalmente ajusté el MTU de las interfaces para poder mostrar la diferencia con la ejecución en la instancia 12c.

Con Smart Scan, duró muy poco pues el Smar Scan utilizó un filtrado por la columna “OBJECT_NAME”, los bytes resultantes (los cuales fueron pocos) fueron enviados a traves de la red, el DB Server unicamente mostró el resultado.

En Oracle Database 12c, el proceso fué similar al proceso “Sin Smart Scan” con la excepción que no se pasó absolutamente nada por red.

Facebooktwitterlinkedinmailby feather
14
Sep

Simulador de Exadata

Como todo tecnólogo de Oracle lo primero que uno busca es tener una maquina virtual en la cual practicar todos esos cientos de comandos que vienen con la documentación de un determinado producto. Hace mas de un año que empecé a estudiar Oracle Exadata y mi mayor problema fué encontrar donde practicar. Pues bueno, lo busqué en el famoso buscador de google por varias semanas (no estoy bromeando)  y mi sorpresa fué que NO existe un simulador como tal, despues de largas horas de lectura y varias tazas de café por fin logré una investigación bastante amplia lo que me permitió crear un Exadata simulado.

personal

Algunos tecnologos de la elite como Gokhan Atil, Uwe Hesse, Arup Nanda, Vishal Gupta y Martin Bach han hablado sobre este tema, también ellos tuvieron que investigar y llegaron a la conclusion que SÍ es posible construir un simulador de Exadata en cualquier virtualizador como VirtualBox por ejemplo. Por supuesto, al tener todo el hardware simulado (discos rapidos, dispositivos flash, Infiniband Switches, grandes cantidades de GB en RAM, Procesadores potentes, etc) no poseemos las ventajas de dicho hardware, sin embargo, tenemos acceso a las caracteristicas para poder probar los cientos de paginas de documentacion que un futuro administrador de Exadata debe leer. Lo que más me sirvió en mi preparación para mi certificación de Exadata fué practicar las configuraciones de celldisks, griddisks, flash devices, analizar como se comportan los Storage Indexes, cómo se lleva a cabo el Smart Scan, etc.

Aún no sé porque el procedimiento de crear un Simulador de Exadata es un secreto, pero tampoco estoy dispuesto a romper con esa tradición de mantenerlo asi…. en secreto, por lo tanto, dejo claro que el objetivo de este articulo es unicamente dar a conocer que SÍ se puede crear un simulador de exadata, más no dar a conocer una guia.

Nota: Despues encontré que Oracle indica que es completamente ilegal instalar el software de los “Exadata Cell” en un Hardware que no es el del Exadata Machine, por lo tanto, luego de leer ese comunicado eliminé mi simulador.

A continuación los articulos donde hablan del tema:

http://www.gokhanatil.com/2012/01/is-it-possible-to-build-exadata.html

http://martincarstenbach.wordpress.com/2011/12/08/the-cause-for-and-against-the-exadata-simulator/

https://forums.oracle.com/thread/2522436

http://blog.vishalgupta.com/2011/10/15/oracle-exadata-documentation/

 

Facebooktwitterlinkedinmailby feather
14
Sep

KFOD-00315 KFOD-00400 KFOD-00401 KFOD-00402 KFOD-00403

Sintomas:

En el proceso de creación de un DiskGroup en un Compute Node apuntando hacia un CELL se obtiene el siguiente error al intentar descubrir los GridDisks:

INFO: Starting Output Reader Threads for process /tmp/OraInstall2013-09-13_04-41-48PM/ext/bin/kfod
INFO: Parsing KFOD-00315: Operating system error doing Cell I/O, Operation: [Unknown], disk: [o/169.254.39.99/data*], offset: [0], length [0]
INFO: Parsing KFOD-00400: OS system dependent operation: bind_fail failed with status: 0
INFO: Parsing KFOD-00401: OS failure message: Error 0
INFO: Parsing KFOD-00402: failure occurred at: skgxpvifconf
INFO: Parsing KFOD-00403: additional information: requested interface 169.254.39.98 failed bind.

Se intentó obtener más información del error ejecutando "kfod" manualmente, sin embargo, se obtuvo el mismo mensaje:

[grid@rac1 bin]$ ./kfod verbose=true, disks=all status=true op=disks asm_diskstring="o/169.254.39.99/data*"
KFOD-00315: Operating system error doing Cell I/O, Operation: [Unknown], disk: [o/169.254.39.99/data*], offset: [0], length [0]
KFOD-00400: OS system dependent operation: if_not_found failed with status: 0
KFOD-00401: OS failure message: Error 0
KFOD-00402: failure occurred at: skgxpvaddr9
KFOD-00403: additional information: requested interface 169.254.39.99 not found.

Se revisó configuración de las interfaces de infiniband y todo estaba correcto.

Nota: Debe estar establecida la variable de ambiente LD_LIBRARY_PATH a la ruta donde la libreria se encuentra, puede usarse un find para buscar la libreria libcell*

Causa:

El kernel utilizado por el Sistema Operativo es el default UEK, Ejemplo: (2.6.32-200.13.1.el5uek)

Solución:

  • Modifique el grub para iniciar con el kernel alternativo. Ejemplo: 2.6.18-274.el5
  • Reinicie el Compute Node.
  • Despues del reinicio los GridDisks fueron descubiertos por el ASMCA

exadataGD

 

Facebooktwitterlinkedinmailby feather
10
Sep

Usuarios Locales y Comunes en Oracle 12c

cncpt340

Requisitos:

Para crear usuarios comunes se debe poseer el privilegio “SET CONTAINER“.

La siguiente consulta puede ser utilizada para consultar usuarios de todo el contenedor:

SELECT USERNAME, COMMON FROM CDB_USERS;

La siguiente consulta puede ser utilizada para consultar usuarios de un PDB específico.

SELECT USERNAME, COMMON FROM DBA_USERS;

Regla No. 1: El nombre de un Usuario Común debe iniciar con el prefijo “C##”
Prueba No. 1:  Crear un Usuario Común sin prefijo “C##”

SQL> CREATE USER DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL;
CREATE USER DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL
*
ERROR at line 1:
ORA-65096: invalid common user or role name

Regla No. 2: Un usuario Local no puede ser creado en un ROOT.
Prueba No. 2: Crear un Usuario Local en el ROOT

SQL> CREATE USER DEIBY IDENTIFIED BY MANAGER1 CONTAINER=CURRENT;
CREATE USER DEIBY IDENTIFIED BY MANAGER1 CONTAINER=CURRENT
*
ERROR at line 1:
ORA-65049: creation of local user or role is not allowed in CDB$ROOT

Regla No.3: Un usuario Común no puede ser creado en un PDB.
Prueba No. 3: Crear un usuario común en un PDB

SQL> CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL;
CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL
*
ERROR at line 1:
ORA-65050: Common DDLs only allowed in CDB$ROOT

Regla No. 4: El nombre de un usuario local no puede iniciar con el prefijo “C##”
Prueba No. 4: Crear un Usuario Local con profijo C##

SQL> CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=CURRENT;
CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=CURRENT
*
ERROR at line 1:
ORA-65094: invalid local user or role name

Regla No. 5: Si se especifica objetos adicionales en la sentencia “CREATE USER”, dichos objetos deben existir en cada uno de los PDB’s.
Prueba No. 5: Especificando un DEFAULT TABLESPACE que no existe en todos los PDB’s

SQL> select con_id, name from v$pdbs;

CON_ID NAME
———- ——————————
2 PDB$SEED
3 PDB1
4 PDB2

SQL> SELECT TABLESPACE_NAME, CON_ID FROM CDB_TABLESPACES WHERE TABLESPACE_NAME =’DGOMEZ’;

TABLESPACE_NAME CON_ID
—————————— ———-
DGOMEZ 1
DGOMEZ 3

Como bien se ve el tablespace “DGOMEZ” solo está creado en el “ROOT” y en el “PDB1”, pero no está creado en el “PDB2”.

SQL> CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL DEFAULT TABLESPACE DGOMEZ;
CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL DEFAULT TABLESPACE DGOMEZ
*
ERROR at line 1:
ORA-65048: error encountered when processing the current DDL statement in
pluggable database PDB2
ORA-00959: tablespace ‘DGOMEZ’ does not exist

Regla No. 6: Un usuario comun puede ser eliminado o creado aunque uno o varios PDB’s estén cerrados.
Prueba No. 6: Creacion de un Usuario Comun con un PDB en estado “MOUNTED”.

SQL> select con_id, name, open_mode from v$pdbs;

CON_ID NAME OPEN_MODE
———- —————————— ———-
2 PDB$SEED READ ONLY
3 PDB1 READ WRITE
4 PDB2 MOUNTED

Como se ve el PDB2 no está “READ WRITE”.

SQL> CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL;

User created.

El usuario se crea aunque el PDB2 esté “MOUNTED”, esto es posible debido al proceso de “sincronización” que Oracle hará cuando el PDB2 vuelva a estar OPEN.

SQL> ALTER PLUGGABLE DATABASE PDB2 OPEN;

Pluggable database altered.

SQL> SELECT USERNAME, COMMON FROM DBA_USERS WHERE USERNAME=’C##DEIBY’;

USERNAME COMMON
——————– ——————–
C##DEIBY YES

Creación de usuario comun correctamente:

  • Necesita iniciar con C##
  • Necesita ser creado en el ROOT

SQL> CREATE USER C##DEIBY IDENTIFIED BY MANAGER1 CONTAINER=ALL DEFAULT TABLESPACE DGOMEZ;

User created.

Creación de un usuario local correctamente:

  • Necesita iniciar sin C##
  • Necesita ser creado en un PDB

SQL> CREATE USER DEIBY IDENTIFIED BY MANAGER1 CONTAINER=CURRENT;

User created.

Nota: Si se omite la clausula “CONTAINER”, el usuario se creará sin problemas y el tipo dependerá del contexto. Si se lanza la sentencia “CREATE USER” en un ROOT, el usuario se creará como Común, pero si se lanza en un PDB, el usuario será Local.

Conclusiones: 

  • Si un PDB está en estado “CLOSED”, sus usuarios no son visibles (aun si son comunes) pues los metadatos son extraidos del tablespace SYSTEM de ese PDB.
  • Un Usuario local puede existir en uno y solo un PDB.
  • Un Usuario local puede crear usuarios locales, pero no comunes.
  • Un usuario comun puede crear usuarios locales y comunes.
  • Tu puedes crear Usuarios locales con el mismo nombre en diferentes PDF, se llamaran igual pero son usuarios completamente diferentes.
  • Un usuario local no puede dar privilegios comunes.
  • Oracle sincronizará automaticamente los usuarios con los PDB’s que esten cerrados.
Facebooktwitterlinkedinmailby feather
3
Sep

java.util.zip.ZipException: error in opening zip file (Part 2)

Para mi suerte… nuevamente me tope con el error java.util.zip.ZipException: error in opening zip file, un error dificil de diagnosticar pues no hay más información mas que ése simple mensaje, antes de describir qué fué lo que pasó en esta segunda vez que me encontré con este error, recomiendo fuertemente leer la primera parte de este articulo: error in opening zip file (Part 1)

La primera vez que me tope con este problema se debió a probelmas de librerias, específicamente la librería “jsf”, en esta segunda vez fué una causa muy parecida. A continuación los sintomas:

Sintomas:

AIX 6.1 64bits
weblogic 10.3.5
SOA Suite 11.1.1.5
JDK 1.6
  • Se realiza despliegue de “JSF2” en un Managed Server que NO está ejecutando “JSF1” (Esto fué lo primero que comprobé, gracias a la experiencia de mi primer articulo). Este Managed Server está dedicado a aplicaciones que necesitan JSF2.
  • El despliegue de la libreria “JSF2” fué exitoso.
  • Se realiza despliegue de una aplicación que necesita la libreria “JSF2”.
  • El despliegue se hace correctamente.
  • Se activan los cambios en el WebLogic Console, hasta aqui todo correcto.
  • Al momento de “inicializar” la aplicación se presenta el error “java.util.zip.ZipException: error in opening zip file”

Causa:

  • El dbadapter, adaptador que viene por defecto en la instalación de SOA Suite, está ejecutandose en el Managed Server donde la aplicación se desplegó.

dbadapter

Solución

  • Realizar Login en el WebLogic Console
  • Seleccionar la opcion “Deployments”.

deployments

  • Seleccionar el adaptador “dbadapter”
  • Clic sobre la pestaña “Targets”
  • Deseleccionar el Managed Server donde la aplicación fué desplegada.
  • Activar Cambios.

 

Facebooktwitterlinkedinmailby feather