Trabajos en el Banco Central de Chile



Por cosas de la vida , fuí llamado para prestar apoyo en unas actividades relacionadas a creación de ambientes de bases de datos para unos Exalogic que se están instalando en el Banco Central de Chile.



En realidad mi parte fue bastante sencilla, simplemente instalar unos motores Oracle, crear instancia de ASM, generación de Diskgroups y creación de bases, todo lo anterior aplicando los últimos CPU y PSU , además del típico parchado del OPatch :>>

El tema es que me encontré con gente que había trabajado hace muchos años atrás como el Sr. Aguayo, creando bases de datos en DataGuard para el mismo Banco Central, con personas a las cuales les hice clases de Grid Control como el Sr. Jorquera en unos de los centros de Oracle University, ex colegas de trabajo en empresas de servicio de Chile como el Sr. Leal y me encontré con personas que leían mi blog , como el Sr. Toledo, la verdad me sentí como en casa, muy cómodo , compartiendo con personas que llevan años en el Banco Central y que son tremendos profesionales , los cuales me conocían directa o indirectamente.

Lo que me causa gran alegría es que se van dejando grandes recuerdos y experiencias a medida que van pasando los años y se reconoce en parte lo que uno hace.

Fue un día redondo... muy bueno y provechoso B) , contento señor contento.

Link de información sobre el Banco Central de Chile
http://es.wikipedia.org/wiki/Banco_Central_de_Chile

by Ligarius
18.04.15. 07:58:41. 263 words, 6390 views. Categories: Cosas varias , • Send a trackback »

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, 7323 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, 16197 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, 6589 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, 3901 views. Categories: Oracle Golden Gate ,

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