Categories: Base de datos, Oracle 10g, Oracle 11g, Oracle11gR2, Oracle 12c

ORA-65093: container database not set up properly



Una de las nuevas características de Oracle 12c es el concepto de Oracle Database Multitenant, en esta arquitectura un componente básico es es el CDB u Oracle Containers Database, la cual contendrá las PDBs o Pluggable Databases.

Si estás tratando de generarlas de forma manual o al levantarla te da el siguiente error

SQL> startup nomount
ORACLE instance started.

Total System Global Area 521936896 bytes
Fixed Size 2404552 bytes
Variable Size 335548216 bytes
Database Buffers 176160768 bytes
Redo Buffers 7823360 bytes

ORA-65093: container database not set up properly


Es porque sencillamente el archivo de inicialización de la instancia CDB , no posee el siguiente parámetro

*.enable_pluggable_database=TRUE


Espero les sirva

by Ligarius
30.07.13. 22:30:06. 111 words, 5076 views. Categories: Oracle 12c ,

Scripts para creación de bases Oracle 12c en forma manual



Este post habla de como crear bases de datos 12c en forma manual , la verdad es muy similar a 11gr2, pero para quienes necesiten ver los pasos a pasos, redacto el post ..


Obs: Bueno, no podía faltar :>>

Para Oracle12c con filesystems

1.- Creación del archivo de inicialización por ejemplo /home/oracle/initprod12c.ora el cual debiese contener los siguientes parámetros

*.control_files='/home/oracle/prod12c/oradata/control01.ctl'
*.db_name='prod12c'
*.instance_name='prod12c'
*.memory_target=1g
*.undo_management = auto
*.db_block_size = 8192
*.diagnostic_dest = '/home/oracle/prod12c/diag'



2.- Se crea los directorios que ocuparemos para nuestra base de datos , con el usuario oracle

$ mkdir -p /home/oracle/prod12c/oradata
$ mkdir -p /home/oracle/prod12c/diag



3.- Levantamos sólo la instancia (startup nomount)

$ export ORACLE_SID=prod12c

$ sqlplus /nolog

SQL> conn / as sysdba

SQL> startup nomount pfile='/home/oracle/initprod12c.ora'



4.- Ejecutamos el comando de creación de base de datos

CREATE DATABASE prod12c
USER SYS IDENTIFIED BY "oracle.,"
USER SYSTEM IDENTIFIED BY "oracle.,"
LOGFILE GROUP 1 ('/home/oracle/prod12c/oradata/redo01a.log') SIZE 50M BLOCKSIZE 512,
GROUP 2 ('/home/oracle/prod12c/oradata/redo02a.log') SIZE 50M BLOCKSIZE 512,
GROUP 3 ('/home/oracle/prod12c/oradata/redo03a.log') SIZE 50M BLOCKSIZE 512
MAXLOGHISTORY 1
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 1024
CHARACTER SET AL32UTF8
NATIONAL CHARACTER SET AL16UTF16
EXTENT MANAGEMENT LOCAL
DATAFILE '/home/oracle/prod12c/oradata/system01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
SYSAUX DATAFILE '/home/oracle/prod12c/oradata/sysaux01.dbf'
SIZE 250M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TABLESPACE users
DATAFILE '/home/oracle/prod12c/oradata/users01.dbf'
SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE tempts1
TEMPFILE '/home/oracle/prod12c/oradata/temp01.dbf'
SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
UNDO TABLESPACE undotbs1
DATAFILE '/home/oracle/prod12c/oradata/undotbs01.dbf'
SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
USER_DATA TABLESPACE usertbs
DATAFILE '/home/oracle/prod12c/oradata/usertbs01.dbf'
SIZE 100M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;



5.- Una vez generada la base ejecutamos el scripts catalog.sql y el catproc.sql ambos scripts crean los Stores Procedures para el manejo del motor Oracle y crea todo el diccionario de datos .

SQL> @?/rdbms/admin/catalog.sql

SQL> @?/rdbms/admin/catproc.sql



6.- Creamos el archivo de password

cd $ORACLE_HOME/dbs

$ orapwd file=orapwprod12c password=oracle., entries=5



7.- Creamos el archivo de inicialización como spfile

SQL> create spfile from memory;



8.- Bajamos y subimos la base de datos para que reinicie con spfile

SQL> startup force



9.- Levantamos el listener, teniendo en cuenta que debe estar seteado el ORACLE_HOME y el PATH

lsnrctl start



Bueno, así de sencillo es crear una base de datos en Oracle 12c, casi no cambia de la versión anterior



Otros post relacionados
Creación de base de datos 11gr2 en forma manual
Creación de base de datos 10gr2 en forma manual
Creación de base de datos 9i en forma manual


by Ligarius
28.07.13. 21:17:45. 524 words, 3828 views. Categories: Oracle 12c, Instalación ,

Active Session History (ASH) performed an emergency flush



Viendo un Oracle RAC versión 11.2.0.3 me percaté de este error en el archivo de alertas, pues bien lo que hice fue analizarlo un poco, he acá las conclusiones.


Foto de Quito , lugar que conoceré en Noviembre ;)

Este mensaje de warning se produce en versiones desde la 11.2.0.2 de Oracle Enterprise Edition y significa única y exclusivamente que Active Session History para su porción de memoria ASH tiene un tamaño muy pequeño para la cantidad de sesiones activas que se están produciendo, por ende tiene que vaciarla y dejarla en blanco para todos los nuevos registros, con esto se puede información histórica relacionada con el ASH (estadísticas de performance relacionadas a los usuarios)

Este error se puede pasar por alto, ya que indica que hubo un aumento significativo de las sesiones..si el error persiste, se puede realizar algo para evitar que aparezca en el archivo de alertas y gatille todos nuestros procesos de monitoreo.

Error textual desde el archivo de alertas

Tue Jul 23 10:14:38 2013
Active Session History (ASH) performed an emergency flush. This may mean that ASH is undersized. If emergency flushes are a recurring iss
ue, you may consider increasing ASH size by setting the value of _ASH_SIZE to a sufficiently large value. Currently, ASH size is 13421772
8 bytes. Both ASH size and the total number of emergency flushes since instance startup can be monitored by running the following query: select total_size,awr_flush_emergency_count from v$ash_info;



Imagen de cantidad de sesiones en una instancia Oracle

Un síntoma relacionado al error, es por ejemplo una alta cantidad de usuarios activos , que va aumentando de forma exponencial.

Si queremos saber cuanto es el tamaño destinado al buffer ASH en memoria, pues podemos ejecutar la siguiente consulta

select total_size/1024/1024 Mb ,
awr_flush_emergency_count
from v$ash_info;

Nos muestra el tamaño del ASH y nos nuestra cuanta veces ha realizado un flush desde esta porción de memoria desde el último Startup

¿Cómo se soluciona este problema?
Para darle una solución al tema, se debe modificar el parámetro oculto _ash_size , pero como recomendación siempre háganlo a través de Soporte de Oracle, ya que como saben , la modificación de parámetros ocultos no está soportada.

El valor que se le debe asignar al parámetro es un 50% del valor actual y el comando sería algo así

alter system set "_ash_size"=valor 50% superior al existente scope=spfile;

Nota1 : Este cambio debe ser realizado con el usuario SYS
Nota2 : El ASH Buffer reside dentro de la Shared Pool


Espero les sirva


by Ligarius
23.07.13. 12:19:33. 442 words, 9692 views. Categories: Tuning / Performance, Oracle11gR2 ,

Oracle 12c New Features : Deshabilitar el logging al momento de importar una tabla



Existe una nueva característica en Oracle 12c , relacionada con el hecho de evitar crear entradas en los archivos de redolog cuando se realiza el import de una tabla, esto se hace mediante un parámetro que se llama TRANSFORM en el impdp, el cual puede venir con un conjunto de valores, uno de esos valores es el que vamos a mostrar ahora



Al momento de realizar un import podemos eliminar la posibilidad de generar entradas en el redo, colocando a todos los objetos del import en opción de NOLOGGING, esto se hace mediante el siguiente parámetro y su correspondiente valor

TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y


Con lo anterior se efectúa una DDL sobre los objetos a importar los cuales quedan en modo NOLOGGING y una vez terminado el import los objetos vuelven a quedar en estado LOGGING (el cambio de NOLOGGING y LOGGING es para evitar la generación de redo) , con esto el proceso total de importación de un objeto es más rápido y por ende generará menos carga a la base de datos.

Los objetos que quedan expuestos a este cambio de modalidad , son solamente los índices y las tablas


Ejemplo práctico al ejecutar un import

impdp system/oracle1@prod12c directory=DATA_PUMP_DIR dumpfile=TABLA1_01.DMP tables=SYSTEM.objetos TRANSFORM=DISABLE_ARCHIVE_LOGGING

Import: Release 12.1.0.1.0 - Production on Sßb Jul 20 16:00:51 2013

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
La tabla maestra "SYSTEM"."SYS_IMPORT_TABLE_01" se ha cargado/descargado correctamente
Iniciando "SYSTEM"."SYS_IMPORT_TABLE_01": system/********@prod12c directory=DATA_PUMP_DIR dumpfile=TABLA1_01.DMP tables=SYSTEM.objetos TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE
Procesando el tipo de objeto TABLE_EXPORT/TABLE/TABLE_DATA
. . "SYSTEM"."OBJETOS" 10.38 MB 91011 filas importadas
Procesando el tipo de objeto TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Procesando el tipo de objeto TABLE_EXPORT/TABLE/STATISTICS/MARKER
El trabajo "SYSTEM"."SYS_IMPORT_TABLE_01" ha terminado correctamente en Sßb Jul 20 16:01:00 2013 elapsed 0 00:00:08


Al realizar una consulta a la base de datos, podremos ver que al momento de crearse el objeto queda como NOLOGGING y una vez terminada la carga de datos se pasa a LOGGING

SQL> r
1* select owner , table_name , logging , to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') "Fecha consulta" from dba_tables where table_name like 'OBJETOS'

no rows selected

SQL> r
1* select owner , table_name , logging , to_char(sysdate,'dd-mm-yyyy hh24:mi:ss') "Fecha consulta" from dba_tables where table_name like 'OBJETOS'

OWNER      TABLE_NAME                     LOG Fecha consulta
---------- ------------------------------ --- -------------------
SYSTEM     OBJETOS                        NO  20-07-2013 16:00:55
SYSTEM     OBJETOS                        YES 20-07-2013 16:00:59
SYSTEM     OBJETOS                        YES 20-07-2013 16:01:01

Nota : se muestran 3 registros pues se realizó una iteración de la consulta ;)


Espero les sirva


by Ligarius
20.07.13. 14:16:33. 484 words, 4707 views. Categories: Oracle 12c, Export-Import ,

Oracle 12c New Features : Exportar una vista como tabla (expdp)



En Oracle 12c nace una característica muy novedosa, el hecho de poder exportar la data de una vista y dejarla en un archivo dmp como tabla, o sea, se puede importar nuevamente, esto es extremadamente útil si tenemos tablas demasiado grandes para la conformación de la vista



El nuevo parámetro para exportar una vista como tabla es el parámetro VIEWS_AS_TABLES , que se conforma de la siguiente manera

VIEWS_AS_TABLES=usuario_dueño.nombre_vista:tabla_de_origen


En tabla_de_origen va el nombre de una de las tablas que componen el origen de la vista

El formato para exportar una vista es el siguiente

expdp usuario/password directory=data_pump_dir dumpfile=nombre.dmp VIEWS_AS_TABLES=usuario_dueño.nombre_vista:tabla_de_origen


Un ejemplo práctico

Tenemos la tabla1 y la tabla2 con los siguientes datos

ORACLE> select * from tabla1;

CAMPO1;CAMPO2
----------;--------
1;17/07/13
2;16/07/13
3;15/07/13

ORACLE> select * from tabla2;

CAMPO1;CAMPO3
----------;----------
1;Fecha 1
2;Fecha 2
3;Fecha 3


Creamos una vista con la siguiente estructura

create view v_consolida as
select tabla1.campo1 , tabla2.campo3
from tabla1, tabla2
where tabla1.campo1 = tabla2.campo1;


Y cuando consultamos sus datos aparece lo siguiente

ORACLE> select * from v_consolida;

CAMPO1;CAMPO3
----------;----------
1;Fecha 1
2;Fecha 2
3;Fecha 3


Procedemos a exportar la data de la vista , pero como tabla :>>

expdp system/oracle1@prod12c directory=DATA_PUMP_DIR dumpfile=sys_%u.dmp views_as_tables=sys.v_consolida:tabla2

Export: Release 12.1.0.1.0 - Production on Vie Jul 19 00:01:29 2013

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
Iniciando "SYSTEM"."SYS_EXPORT_TABLE_03": system/********@prod12c directory=DATA_PUMP_DIR dumpfile=sys_%u.dmp views_as_tables=SYS.v_consolida:tabla2
Estimaci¾n en curso mediante el mÚtodo BLOCKS...
Procesando el tipo de objeto TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA
Estimaci¾n total mediante el mÚtodo BLOCKS: 64 KB
Procesando el tipo de objeto TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
. . "SYS"."V_CONSOLIDA" 5.492 KB 3 filas exportadas
La tabla maestra "SYSTEM"."SYS_EXPORT_TABLE_03" se ha cargado/descargado correctamente
******************************************************************************
El juego de archivos de volcado para SYSTEM.SYS_EXPORT_TABLE_03 es:
C:\APP\INMETRICS-HECTOR\ADMIN\PROD\DPDUMP\SYS_01.DMP
El trabajo "SYSTEM"."SYS_EXPORT_TABLE_03" ha terminado correctamente en Vie Jul 19 00:01:37 2013 elapsed 0 00:00:06


Para importar la data de la vista , que ya se encuenta en el archivo, ocupamos el siguiente comando de impdp

impdp system/oracle1@prod12c directory=DATA_PUMP_DIR dumpfile=SYS_01.dmp tables=sys.v_consolida remap_table=sys.v_consolida:vista2

Import: Release 12.1.0.1.0 - Production on Vie Jul 19 00:06:27 2013

Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
La tabla maestra "SYSTEM"."SYS_IMPORT_TABLE_01" se ha cargado/descargado correctamente
Iniciando "SYSTEM"."SYS_IMPORT_TABLE_01": system/********@prod12c directory=DATA_PUMP_DIR dumpfile=SYS_01.dmp tables=sys.v_consolida remap_table=sys.v_consolida:vista1
Procesando el tipo de objeto TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
Procesando el tipo de objeto TABLE_EXPORT/VIEWS_AS_TABLES/TABLE_DATA
. . "SYS"."VISTA1" 5.492 KB 3 filas importadas
El trabajo "SYSTEM"."SYS_IMPORT_TABLE_01" ha terminado correctamente en Vie Jul 19 00:06:31 2013 elapsed 0 00:00:02

NOTA : Se usa el REMAP_TABLE para cambiar el nombre de la tabla a crear en el import desde SYS.V_CONSOLIDA a VISTA1


Y al consultar la nueva tabla , esta aparece con datos que son iguales a los que tenía la vista

ORACLE> select * from vista1;

CAMPO1;CAMPO3
----------;----------
1;Fecha 1
2;Fecha 2
3;Fecha 3



Algunos errores a tener en cuenta

- Puede aparecer un mensaje de error de la siguiente forma al ejecutar un expdp, esto se debe a la tabla que estamos colocando en el parámetro VIEWS_AS_TABLES

Procesando el tipo de objeto TABLE_EXPORT/VIEWS_AS_TABLES/TABLE
ORA-31693: Fallo del objeto de datos de tabla "SYS"."V_CONSOLIDA" al cargarse/descargarse y se estß saltando debido al error:
ORA-00904: "CAMPO2": identificador no vßlido
La tabla maestra "SYSTEM"."SYS_EXPORT_TABLE_03" se ha cargado/descargado correctamente
******************************************************************************


- Si no se declara una de las tablas de origen , aparece el siguiente mensaje de error ej. parámetro VIEWS_AS_TABLES=SYS.v_consolida

Estimaci¾n total mediante el mÚtodo BLOCKS: 0 KB
ORA-39166: No se ha encontrado el objeto SYS.V_CONSOLIDA.
ORA-31655: no se ha seleccionado ningún objeto de datos ni de metadatos para el trabajo


- Si colocamos todas las tablas que componen la vista ejemplo VIEWS_AS_TABLES=SYS.v_consolida:tabla1,SYS.v_consolida.tabla2, aparece el siguiente mensaje de error (quizás sea un BUG)

ORA-39126: Error fatal inesperado de worker en KUPW$WORKER.MOVE_DATA [TABLE_DATA:"SYS"."V_CONSOLIDA"]
SELECT flags, NVL(target_xml_clob, xml_clob) FROM "SYSTEM"."SYS_EXPORT_TABLE_04" WHERE process_order > 0 AND duplicate = 0 AND object_schema = :1 AND object_name = :2 AND object_type
tition_name IS NULL AND subpartition_name IS NULL
ORA-01422: la recuperaci¾n exacta devuelve un n·mero mayor de filas que el solicitado
ORA-01403: No se ha encontrado ning·n dato


Aunque aún me quedan dudas con esta nueva característica , los invito a probarla, quizás sea de su gusto.

Espero les sirva


by Ligarius
17.07.13. 22:46:49. 890 words, 3785 views. Categories: Oracle 12c ,

<< 1 2 3 4 5 6 7 8 9 10 11 ... 27 >>