ORA-01180: can not create datafile 1



Oracle y la reencarnación



Hola... estoy haciendo una restauración de base de datos en versión 10.2.0.5 , desde un respaldo en disco hacía otro servidor mediante RMAN, pues bien al momento de ejecutar el restore database , me aparece el siguiente error

released channel: c10
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 03/09/2015 20:42:44
ORA-01180: can not create datafile 1
ORA-01110: data file 1: '+DATA7/prodstb/datafile/system.261.864565123'



No entendía muy bien lo que sucedía por ende comencé a chequear permisos en el ASM, espacios disponibles, etc. pero nada de eso funcionó.

Y leyendo en algunos foros, me encontré con que se debía revisar la encarnación de la base de datos.

Por ende ejecute lo siguiente :

RMAN> list incarnation;

using target database control file instead of recovery catalog

List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 FABAN9I 657905531 PARENT 1 29-SEP-11
2 2 FABAN9I 657905531 PARENT 10527080885702 22-NOV-14
3 3 FABAN9I 657905531 CURRENT 10554962866540 17-FEB-15


Y se resetea la encarnación a la anterior de a la actual, este comando se utiliza para cuando se necesita hacer un restore de una base de datos a un SCN anterior que el actual

RMAN> reset database to incarnation 2;

database reset to incarnation 2


Y al momento de consultarla nuevamente

RMAN> list incarnation;

List of Database Incarnations
DB Key Inc Key DB Name DB ID STATUS Reset SCN Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1 1 FABAN9I 657905531 PARENT 1 29-SEP-11
2 2 FABAN9I 657905531 CURRENT 10527080885702 22-NOV-14
3 3 FABAN9I 657905531 ORPHAN 10554962866540 17-FEB-15


La encarnación con errores quedo como ORPHAN y la que reseteamos , quedo como CURRENT

La restauración en estos momentos se está ejecutando sin problemas...

Cosas de Oracle ;)

Documentación
http://docs.oracle.com/cd/E11882_01/backup.112/e10643/rcmsynta2007.htm#RCMRF148

by Ligarius
09.03.15. 18:33:04. 305 words, 6659 views. Categories: Base de datos, RMAN (Recovery Manager) , • Send a trackback »

Chequeo y configuración de Oracle EM Express 12c (Enterprise Manager Express)



¿Qué es EM Express 12c?



Enterprise Manager Express o comúnmente llamado EM Express, es una pieza de software que nació en Oracle12c, es una herramienta que sirve para realizar monitoreo a la base de datos mediante una interfaz WEB , la gracia principal de este EM Express es que está construida internamente en la base de datos Oracle y sólo utiliza estructuras internas de la base para su ejecución, por ejemplo el esquema XDB y SQL*Net.

No requiere de ningún componente de Midle-Tier como por ejemplo Weblogic, no tiene repositorio de datos como un esquema sysman para Grid Control, tampoco tiene un componente instalado que pueda ser encontrado en la tabla DBA_REGISTRY, no tiene ni un proceso background asociado, todo lo anterior hace que sea una herramienta muy liviana que sólo obtiene datos desde la mísmisima base de datos. Si la base de datos no está abierta, pues simplemente está herramienta no funciona.

Si deseas utilizarla y te diste cuenta que no funciona, pues he acá la receta de como dejarla habilitada :

1.- Chequeamos cual es la URL de nuestra instalación de EM Express, para ello podemos ejecutar uno de los siguientes comandos, tanto para la conexión HTTP, como para la conexión HTTPS

Para HTTPS :

SQL> SELECT 'https://'||SYS_CONTEXT('USERENV','SERVER_HOST')||'.'||SYS_CONTEXT('USERENV','DB_DOMAIN')||':'||dbms_xdb_config.gethttpsport()||'/em/' from dual;
SQL> SELECT 'https://'||SYS_CONTEXT('USERENV','SERVER_HOST')||':'||dbms_xdb_config.gethttpsport()||'/em/' from dual;

Para HTTP :

SQL> SELECT 'http://'||SYS_CONTEXT('USERENV','SERVER_HOST')||'.'||SYS_CONTEXT('USERENV','DB_DOMAIN')||':'||dbms_xdb_config.gethttpport()||'/em/' from dual;
SQL> SELECT 'http://'||SYS_CONTEXT('USERENV','SERVER_HOST')||':'||dbms_xdb_config.gethttpport()||'/em/' from dual;



Ejemplo de resultados de las consultas :

SQL> SELECT 'https://'||SYS_CONTEXT('USERENV','SERVER_HOST')||':'||dbms_xdb_config.gethttpsport()||'/em/' from dual;

'HTTPS://'||SYS_CONTEXT('USERENV','SERVER_HOST')||':'||DBMS_XDB_CONFIG.GETHTTPSPORT()||'/EM/'
--------------------------------------------------------------------------------------------------------------------
https://ligarius-note:5500/em/



2.- Ejecutamos esta URL en nuestro Browser favorito (Google Chrome) y si no resulta, pues continuamos con los siguientes pasos :



3.- Chequeamos el puerto que está utilizando nuestro servicio de listener

Si es distinto al 1521 (puerto por defecto), tenemos que configurar el parámetro LOCAL_LISTENER con la entrada correcta del TNSNAMES, la cual debe estar apuntando a este listener, he aquí el ejemplo :

TNSNAMES que apunta al correcto puerto de nuestro listener .

PROD12C =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Ligarius-Note)(PORT = 1525))
)
(CONNECT_DATA =
(SERVICE_NAME = prod12c)
)
)


Nos cercioramos que funcione haciendo un "tnsping PROD12C"


Seteamos el valor a LOCAL_LISTENER

SQL> alter system set local_listener=PROD12C scope=both;

System altered.


4.- Validamos la nueva entrada de servicio en el listener que está en ejecución


Para esto se debe tener en cuenta reiniciar el listener.


5.- Habilitar los Dispatchers, para ello se debe agregar la siguiente línea al archivo de inicialización de la base de datos.

dispatchers="(PROTOCOL=TCP)(SERVICE=XDB )"

Donde sid es el nombre de la base de datos.

ando :

SQL> alter system set dispatchers="(PROTOCOL=TCP)(SERVICE=prod12cXDB )";
System altered.

SQL> show parameter dispatcher

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dispatchers string (PROTOCOL=TCP)(SERVICE=prod12cXDB )


6.- Resetamos el puerto donde escuchará nuestro EM Express, esto lo debemos hacer con el usuario SYS

exec DBMS_XDB_CONFIG.SETHTTPSPORT(5500);
exec DBMS_XDB_CONFIG.SETHTTPPORT(4500);

Obs : Deben saber bien que puertos utilizar..


7.- Se chequea que la opción de XML este disponible en la base de datos y de que no haya objetos inválidos asociados.Para ello ejecutamos las siguientes consultas :

col comp_name for a20
col version for a15

SQL> select comp_name, version, status from dba_registry where comp_id = 'XDB';

SQL> select owner, object_name, object_type, status from dba_objects where status = 'INVALID' and owner in ('SYS', 'XDB');




8.- Después de lo anterior, simplemente ingresamos la URL y disfrutamos de nuestra consola de EM Express

En este link encontrarán la nota Oracle dedicada a los problemas con EM Express 12, se los adjunto como PDF

Troubleshooting Why EM Express is not Working (Doc ID 1604062.1)



Espero les sirva..

by Ligarius
09.09.14. 12:44:29. 724 words, 15394 views. Categories: Oracle 12c ,

Función LISTAGG en 11gr2 : Para concatenar valores en una sola columna



El típico problema al que todos nos hemos enfrentado, sacamos un listado de valores, pero lo que necesitamos es concatenarlos hacia el lado , en una sola fila ..


Obs : Se nota como piensa la señorita....¿cierto?

Por ejemplo :

select ciudad from pais where nombre='Chile';

CIUDAD
------
Arica
La Serena
Valparaíso
Santiago

Pero lo que queremos es la siguiente salida

CIUDAD
------
Arica;La Serena;Valparaíso;Santiago

Para resultados pequeños , esto es muy fácil, pero ¿si fueran miles? :'(

Esto lo resolvemos quizás con un Pl/SQL , con un cursor que concatene los valores en un string mayor, llevando los valores a una planilla Excel y concatenando, etc, etc, etc.

Pues bien, esto a partir de 11gr2 es sumamente sencillo, con una función muy poderosa llamada LISTAGG.

He acá unos pequeños ejemplos :

- Tomamos un listado de los datafiles disponibles

SQL> select file_name from dba_data_files;

FILE_NAME
-----------------------------------------------
C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM01.DBF
C:\APP\LIGARIUS\ORADATA\PROD12C\SYSAUX01.DBF
C:\APP\LIGARIUS\ORADATA\PROD12C\UNDOTBS01.DBF
C:\APP\LIGARIUS\ORADATA\PROD12C\USERS01.DBF
C:\APP\LIGARIUS\ORADATA\PROD12C\USERS02.DBF
C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM02.DBF


Como podemos apreciar , los datos aparecen listados de forma normal.


Para que aparezcan hacía la derecha, concatenados por algún carácter se ejecuta una función analítica llamada LISTAGG

1 select listagg(file_name,';')
2 within group (order by file_id)
3* from dba_data_files

LISTAGG(FILE_NAME,';')WITHINGROUP(ORDERBYFILE_ID)
----------------------------------------------------------------------------------------------------
C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM01.DBF;C:\APP\LIGARIUS\ORADATA\PROD12C\USERS02.DBF;C:\APP\LIGA
RIUS\ORADATA\PROD12C\SYSAUX01.DBF;C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM02.DBF;C:\APP\LIGARIUS\ORADA
TA\PROD12C\UNDOTBS01.DBF;C:\APP\LIGARIUS\ORADATA\PROD12C\USERS01.DBF


listagg(file_name,';') : Le indicamos que columna queremos concatenar y el carácter de concatenación.
within group (order by file_id) : En esta claúsula le indicamos como ordenar las salidas a concatenar

En este ejemplo concatenamos los datafiles de cada uno de los tablespaces existentes

1 select tablespace_name , listagg(file_name,';')
2 within group (order by file_id) datos
3 from dba_data_files
4 group by tablespace_name
5* order by tablespace_name

TABLESPACE_NAME DATOS
--------------- -----------------------------------------------------------------------------------------
SYSAUX C:\APP\LIGARIUS\ORADATA\PROD12C\SYSAUX01.DBF
SYSTEM C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM01.DBF;C:\APP\LIGARIUS\ORADATA\PROD12C\SYSTEM02.DBF
UNDOTBS1 C:\APP\LIGARIUS\ORADATA\PROD12C\UNDOTBS01.DBF
USERS C:\APP\LIGARIUS\ORADATA\PROD12C\USERS02.DBF;C:\APP\LIGARIUS\ORADATA\PROD12C\USERS01.DBF


Una excelente función :>>

La documentación oficial
http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions089.htm#SQLRF30030


by Ligarius
14.08.14. 20:11:11. 466 words, 6191 views. Categories: Base de datos ,

Oracle Golden Gate : Dejando el manager como servicio Windows



¿Qué sucede si nuestro proceso Manager de Oracle Golden Gate no queda en modo Background? Pues simplemente cada vez que salgamos de la sesión, el proceso se bajará y ya no tendremos acceso a la extracción ni replicación.

Para dar una idea en general , el proceso Oracle Golden Manager es el que maneja la replicación mediante los procesos REPLICAT y maneja la extracción mediante los procesos EXTRACT, cada uno de estos ocupa un puerto que es asignado por el mismo manager

Puedes ver un pequeño ejemplo de como instalar Oracle Golden Gate en el siguiente link
http://www.oracleyyo.com/index.php/2011/03/08/uso_golden_gate

Puedes analizar la documentación de Oracle Golden Gate
http://www.oracle.com/technetwork/middleware/goldengate/documentation/index.html



He aquí el efecto de no tener el Oracle Golden Gate Manager en modo background.

Primero chequeamos el estado de nuestro Oracle Golden Gate Manager, el cual aparece como DOWN



Posterior a esto, levantamos el servicio y vemos como aparece una pantalla de RUNTIME (Ya no está ejecutándose como servicio Windows)


Si cerramos la sesión de Windows , nuestro servicio de manager se caerá :'(

Para poder solucionar esto, vamos a la carpeta de instalación del Golden Gate y ejecutamos el comando install, esto realiza una creación de servicio en Windows

Para ello realizamos la siguiente ejecución

install addevents addservice autostart

ADDEVENTS : Significa que se añade el nuevo servicio al Event Manager
ADDSERVICE : Es el nombre del servicio , por defecto se nombrará como GGSMGR.
AUTOSTART : Para que el servicio levante de forma automática, sin necesidad de intervención , por ejemplo en un reboot de la máquina


La cual aparece consignada en el siguiente documento (2.7.4 Installing Manager as a Windows service)
http://docs.oracle.com/cd/E35209_01/doc.1121/e35957.pdf

Ya con los comandos anteriores, tenemos nuestro servicio Windows asociado al Oracle Golden Gate Manager, si está como servicio , no depende de nuestra sesión para seguir viviendo.

by Ligarius
08.08.14. 13:40:25. 334 words, 3735 views. Categories: Oracle Golden Gate ,

Oracle Golden Gate : Como aplicar un parche



La pregunta es simple , ¿cómo aplicar un parche sobre Oracle Golden Gate? , créanme que es más fácil de lo que se lee.



Primero debemos saber que versión y tipo de Golden Gate poseemos , para ello simplemente nos conectamos a la consola de trabajo mediante el comando ggsci



Allí podemos ver la versión que poseemos, para nuestro caso vemos que poseemos la versión 11.2.1.0.0 para Golden Gate for Microsoft SQL


Buscamos el parche disponible en metalink , para ello vamos a la búsqueda de parches y seleccionamos PRODUCT or FAMILY e indicamos el producto, el release a instalar (parche en sí) y la plataforma (Sistema Operativo)


Una vez realizada la búsqueda, se nos muestra los parches disponibles




El parche a bajar es el 19033886

Una vez bajado el parche, lo único que debemos hacer es descomprimir el parche dentro de la carpeta llamada ggs, que fue donde instalamos Oracle Golden Gate, no se pierde ninguna configuración, ningún replicador ni extractor...

Cuando consultemos nuestra nueva versión aparecerá el número del parche




Y eso es todo , quedamos con una versión 11.2.1.0.24 :P muy sencillo ¿cierto?



by Ligarius
03.08.14. 18:29:33. 192 words, 4269 views. Categories: Oracle Exadata ,

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