El quinto número de los PSU , es ahora una fecha



Hola... hace un tiempo atrás (6 años) comentamos lo del quinto número en una versión Oracle, el quinto número que indica el PSU que se está instalando .

Nota asociada
http://www.oracleyyo.com/index.php/2009/07/08/iiun-nuevo-numero-a-nuestra-version-de-o

Pues bien, hace unos meses atrás ya no es un número correlativo (otro cambio más)



Desde Noviembre del año pasado todos los PSU (quinto número de la versión Oracle) vienen con un formato de fecha , un ejemplo

El parche de base de datos 11.2.0.4.9 ahora será el parche 11.2.0.4.160119

Incluso el último PSU para un motor Oracle 12c (12.1.0.2) es la versión 12.1.0.2.160419 (19 de Abril del 2016)

El formato del parche es el siguiente :

YY : Año del parche
MM : Mes del parche
DD : Día del parche

Los PSU seguirán saliendo al mercado de forma trimestral y para las bases de datos, para Exadata, para Midleware, es válido el mismo formato para los PSU.

by Ligarius
09.07.16. 17:07:42. 159 words, 2170 views. Categories: Base de datos, Parchado Oracle ,

Oracle Golden Gate 12c : Llevando a cabo una carga inicial (INITIAL LOAD con DIRECT LOAD)



Oracle Golden Gate es un extraordinario utilitario que tiene Oracle para llevar a cabo replicación de datos, tiene una increíble cantidad de comandos, es muy flexible y muy dúctil a la hora de trasladar datos desde una fuente a otra.



La carga inicial de datos (INITIAL LOAD) es la etapa en donde cargamos toda la información de nuestro origen en el destino por una sola y única vez, para posteriormente comenzar a aplicar sólo los cambios al destino mediante la sincronización de EXTRACTORES con REPLICADORES.

Oracle Golden Gate nos proporcionar una serie de mecanismos para llevar a cabo la carga inicial de estos datos (IUNITIAL LOAD), todas poseen pros y contras
  • Carga inicial de datos desde archivos al replicador (Loading Data from File to Replicat)
  • En esta forma de carga inicial el extractor genera archivos que el replicador puede aplicar en la base de datos de destino, este método es lento y sólo debiese ser ocupado para poca cantidad de registros , además posee limitaciones en los tipos de datos que puede trasladar.
  • Carga inicial de de datos mediante la generación de archivos de TRAIL(Loading Data from Trail to Replicat)
  • El extractor generará archivos de TRAIL los cuales serán leídos por el replicador para cargar la información en la base de datos de destino, mucho más rápido que el anterior caso de INITIAL LOAD
  • Carga de datos desde un archivo a utilitarios de base de datos (Loading Data from File to Database Utility)
  • Este método hace que los EXTRACTORES generen archivos planos en formato ASCII los cuales pueden ser procesados por utilitarios que cargarán la información a nivel de base de datos , por ejemplo un SQLLOADER o cualquier otro utilitario que cargue información a una base de datos (ejem: SQL Server)
  • Carga inicial de datos con carga directa entre extractores y replicadores (Loading Data with an Oracle GoldenGate Direct Load)
  • La carga inicial de datos mediante DIRECT LOAD implica que el extractor le enviará de forma directa los datos a un REPLICADOR el cual hará la carga de forma automática a la tabla que se haya indicado en la claúsula MAP del replicador sin necesidad de generar archivos de TRAIL, no está soportada la copia de tablas que posean LOBs, LONGs o datos estructurados de usuario y no carga los datos que se hayan modificado o insertado en el origen desde que se comenzó con la extracción de datos.
  • Carga inicial de datos mediante BULK LOAD con SQL Loader(Loading Data with a Direct Bulk Load to SQL*Loader)
  • Este forma especial de INITIAL LOAD solamente trabaja con Oracle SQL Loader en el destino, el EXTRACTOR saca los registros desde las tablas de origen y se las envía al REPLICADOR el cual mediante las interfaces de SQLLOADER (procedimientos almacenados) carga la información en las tablas de destino, esta carga de datos no funciona si en el origen existen datos LOBs o LONGs


Oracle Golden Gate INITIAL LOAD con DIRECT LOAD :
Haremos un ejercicio para realizar la INITIAL LOAD mediante la opción de DIRECT LOAD, para poder apreciar de una manera gráfica como sucede esto, les invito a ver la siguiente imagen :>>

1) Creamos nuestra tabla en el orígen con datos que trasladaremos con DIRECT LOAD de Golden Gate

create table tabla_inicio as 
select *
from (
select rownum fila
               from
                       (select rownum r from dual connect by rownum <= 1000) a,
                       (select rownum r from dual connect by rownum <= 1000) b,
                       (select rownum r from dual connect by rownum <= 1000) c
               where rownum <= 100000000
)

Con el anterior comando , tenemos de inmediato 100 millones de filas


2) Creamos nuestro extractor en el origen , a nivel de comando en la interfaz de Golden Gate (ggsci) ejecutamos lo siguiente

add extract EXTINI, SOURCEISTABLE

Donde :

SOURCEISTABLE : Se le indica que el origen de los datos es una tabla Oracle y de allí extraerá todas las filas y columnas que las tablas posean


3) Le proporcionamos el código a nuestro nuevo extractor , en el archivo ./dirprm/extini.prm colocamos lo siguiente

EXTRACT EXTINI
USERID ggorigen, PASSWORD ggorigen123
RMTHOST 198.162.157.200, MGRPORT 7809
RMTTASK replicat, GROUP repini
TABLE GGORIGEN.*
KEYCOLS (FILA);

Donde :

EXTRACT {nombre extractor}: Indica el nombre del extractor Golden Gate
USERID {usuario}, PASSWORD {password} : Son las credenciales de conectividad para nuestra base de datos origen
RMTHOST {Ip máquina}, MGRPORT {Puerto} : Se le proporciona la IP de la máquina donde estará el manager remoto al igual que el puerto donde esté último escuchará
RMTTASK replicat, GROUP {nombre de replicador} : Acá se le indica al extractor como se llama el replicador en la máquina de destino
TABLE {usuario}.{nombre tabla} : Este es el origen de datos, con el usuario dueño y la tabla o tablas a replicar, si usamos un * , le indicamos que tome todas las tablas que pertenecen a un usuario en partícular.
KEYCOLS ({nombre columna}) : En el campo KEYCOLS se indica cual es la Primary Key que no posee la tabla, si esta tabla no posee PK igual, se debe indicar mediante esta claúsula que campo sirve para que Golden Gata identifique de forma única una fila.


4) Creamos nuestro replicador en el destino , a nivel de comando en la interfaz de Golden Gate (ggsci) ejecutamos lo siguiente

add replicat REPINI, SPECIALRUN

Donde :

SPECIALRUN : Con esto se le indica a Golden Gate que este replicador sólo se ejecutará una vez, que no habrá checkpoint y que sólo finalizará cuando haya trasladado todos los datos (no se lleva los cambios que se hayan producido posterior al START del extractor).


5) Le proporcionamos el código a nuestro nuevo replicador, en el archivo ./dirprm/repini.prm colocamos lo siguiente

REPLICAT REPINI
USERID ggdestino, PASSWORD ggdestino123
ASSUMETARGETDEFS
MAP GGORIGEN.*, TARGET GGDESTINO.*;

Donde :

REPLICAT {nombre replicador}: Indica el nombre del replicador Golden Gate
USERID {usuario}, PASSWORD {password} : Son las credenciales de conectividad para nuestra base de datos destino
ASSUMETARGETDEFS : Se usa esta claúsula cuando el orígen de datos y el destino donde quedarán tienen la misma estructura .
MAP {usuario}.{nombre tabla}, TARGET {usuario}.{nombre tabla} : Este es el mapeo de datos, con el usuario dueño y la tabla o tablas a replicar, si usamos un * , le indicamos que tome todas las tablas que pertenecen a un usuario en partícular, MAP indica como viene desde el origen y TARGET es indicativo de donde se cargarán los datos en el destino.


6) Las tablas en el destino deben existir como estructuras de datos, o sea, deben ser creadas antes de comenzar con la replicación


7) Chequeamos nuestro extractor y replicador

GGSCI (oraserver1.localdomain) 3>  info extract EXTINI

EXTRACT    EXTINI    Initialized   2016-06-26 14:05   Status STOPPED
Checkpoint Lag       Not Available
Log Read Checkpoint  Not Available
                     First Record         Record 0
Task                 SOURCEISTABLE
GGSCI (oraserver2.localdomain) 5> info replicat REPINI

REPLICAT   REPINI    Initialized   2016-06-26 14:05   Status STOPPED
Checkpoint Lag       00:00:00 (updated 00:00:02 ago)
Log Read Checkpoint  Not Available
Task                 SPECIALRUN


8) Y ejecutamos nuestro extractor, el cual se comunicará directamente con el replicador y este a su vez insertará los registros de manera automática en la tabla que se le indico en la claúsula MAP

GGSCI (oraserver1.localdomain) 4> start extract EXTINI

Sending START request to MANAGER ...
EXTRACT EXTINI starting


9) Se chequea el estado del extractor y del replicador nuevamente y vemos como avanza el contador de registros leídos

Extractor

Replicador


10) Y nuestra tabla en el destino comienza a cargarse con datos

SQL> select count(*) from ggdestino.tabla_inicio;

  COUNT(*)
----------
   6478000

SQL>


Recordar que los cambios que se hagan a la tabla origen mientras se está generando la replicación no serán traspasados al destino con el INITIAL LOAD, esto se hará solamente en una replicación normal de Oracle Golden Gate


Metalink :
Master Note - Oracle GoldenGate: Initial Load Techniques and References (Doc ID 1311707.1)
Goldengate : Direct Load - Initial Load Techniques (Doc ID 1457164.1)

Espero les sirva para entender lo poderoso de Oracle Golden Gate

by Ligarius
25.06.16. 23:02:05. 666 words, 783 views. Categories: Oracle Golden Gate, Golden Gate 12c ,

Próximas certificaciones - Segundo semestre 2016



El calendario de certificaciones se viene bastante interesante, tengo unas fechas propuestas, pero no sé si alcance a cumplirlas todas, pues me demandarán mucho tiempo.



Además, en Agosto tengo un viaje maravilloso e impresionante, nada más ni nada menos que a Japón :>>



Así que será un segundo semestre muy movido ;)

by Ligarius
16.06.16. 14:33:13. 54 words, 675 views. Categories: Base de datos, Certificaciones ,

Instalando (y desinstalando) en forma gráfica y en forma silenciosa Oracle Golden Gate 12c



Hola gente....después de muchos meses he vuelto a escribir, la verdad he tenido muchísimo trabajo y he dejado un poco de lado este blog, al igual que los exámenes de certificación, pero como no hay mal que dure cien años, he vuelto para seguir escribiendo y seguir con mis certificaciones.



En la actualidad me encuentro trabajando con Oracle Golden Gate 12c entre otras cosas, inclusive con adaptadores Flat File, los cuales son bastante interesantes y poderosos y de los cuales hablaremos más adelante.

El presente post es sencillo, muestra como instalar en forma gráfica, desinstalar en modo texto e instalar en forma silenciosa nuestro Oracle Golden Gate 12c (instalación efectuada en un OEL 7)




1.- Instalando Golden Gate 12c a través de la GUI

Esta es la primera interfaz gráfica que posee Oracle Golden Gate, la verdad es muy sencilla, con pocos pasos, pero no contiene nada del otro mundo, he aquí el paso a paso.

Ubicamos nuestro archivo comprimido de Oracle Golden Gate 12c
[oracle@oraserver1 goldengate12c]$ ls -ltr
total 669196
-rw-r--r--. 1 oracle oinstall 475611228 Jun 12 00:02 V100692-01.zip


Al descomprimirlo, nos encontramos con los siguientes archivos

[oracle@oraserver1 goldengate12c]$ ls -ltr
total 669196
drwxr-xr-x. 3 oracle oinstall        18 Dec 12  2015 fbo_ggs_Linux_x64_shiphome
-rw-r--r--. 1 oracle oinstall      1559 Jan 18 20:12 OGG-12.2.0.1-README.txt
-rw-r--r--. 1 oracle oinstall    282294 Jan 18 20:13 OGG-12.2.0.1.1-ReleaseNotes.pdf
-rw-r--r--. 1 oracle oinstall 475611228 Jun 12 00:02 V100692-01.zip


Accedemos a la carpeta que posee el runInstaller

[oracle@oraserver1 response]$ pwd
/home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1


Lo ejecutamos y aparece la siguiente pantalla, la cual nos solicita si instalamos la versión 11g o 12c de Oracle Golden Gate


Nos pide a continuación la ruta donde lo instalaremos, donde se encuentra el motor Oracle si arranca de inmediato con el Manager de Golden Gate ,el puerto 7809 es el puerto por defecto donde el Manager escuchará las peticiones y requerimientos.


Para finalizar, nos entrega un estado de lo que instalaremos y donde


Una pantalla de progreso de instalación, sin necesidad de ejecutar archivos de root.sh ni nada parecido


Y simplemente una pantalla de finalización


2.- Instalando Golden Gate 12c de forma silenciosa

Todo lo visualizado en el paso 1, se puede hacer ejecutando de forma silenciosa el instalador, para ello podemos buscar el archivo de response en la siguiente ruta de nuestro Oracle Golden Gate

[oracle@oraserver1 response]$ pwd
/home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1/response


Acá se encuentra el archivo oggcore.rsp y es dentro de este archivo que se parametriza la instalación, los campos a setear son los siguientes

INSTALL_OPTION=ORA12c
SOFTWARE_LOCATION=/home/oracle/app/goldengate
START_MANAGER=true
MANAGER_PORT=7809
DATABASE_LOCATION=/home/oracle/app/oracle/product/12.1.0/dbhome_1
INVENTORY_LOCATION=/home/oracle/oraInventory
UNIX_GROUP_NAME=oinstall


Si se fijan, son exactamente las mismas opciones que cuando realizamos la instalación mediante GUI

Los datos del inventario , que son los 2 últimos valores expresados en el punto anterior, se pueden encontrar en

[oracle@oraserver1 ~]$ cat /etc/oraInst.loc
inventory_loc=/home/oracle/app/oraInventory
inst_group=oinstall


La ejecución del comando para la instalación silenciosa

[oracle@oraserver1 Disk1]$ ./runInstaller -silent -responseFile /home/oracle/sw/GG/goldengate12c/fbo_ggs_Linux_x64_shiphome/Disk1/response/oggcore.rsp


Lo que nos arrojará la siguiente información

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 44080 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 7792 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-06-12_12-10-03PM. Please wait ...[oracle@oraserver1 Disk1]$ You can find the log of this install session at:
 /home/oracle/app/oraInventory/logs/installActions2016-06-12_12-10-03PM.log
The installation of Oracle GoldenGate Core was successful.
Please check '/home/oracle/app/oraInventory/logs/silentInstall2016-06-12_12-10-03PM.log' for more details.
Successfully Setup Software.


Chequeamos nuestro aplicativo instalado, simplemente ejecutando el comando ggsci

[oracle@oraserver1 ~]$ cd $GGHOME
[oracle@oraserver1 goldengate]$ ./ggsci

Oracle GoldenGate Command Interpreter for Oracle
Version 12.2.0.1.1 OGGCORE_12.2.0.1.0_PLATFORMS_151211.1401_FBO
Linux, x64, 64bit (optimized), Oracle 12c on Dec 12 2015 02:56:48
Operating system character set identified as UTF-8.

Copyright (C) 1995, 2015, Oracle and/or its affiliates. All rights reserved.

GGSCI (oraserver1.localdomain) 2> info manager

Manager is running (IP port oraserver1.localdomain.7809, Process ID 23478).

GGSCI (oraserver1.localdomain) 3>


3.- Para desinstalar lo instalado
Para desinstalar lo instalado, simplemente ejecutamos un comando desde nuestra instalación de Oracle Golden Gate (OracleHome de Golden Gate)

[oracle@oraserver1 goldengate]$ cd deinstall
[oracle@oraserver1 deinstall]$
[oracle@oraserver1 deinstall]$ ./deinstall.sh


El anterior comando provocará la siguiente salida

ALERT: Ensure all the processes running from the current Oracle Home are shutdown prior to running this software uninstallation script.

Proceed with removing Oracle GoldenGate home: /home/oracle/app/goldengate (yes/no)? [no]
yes
Starting Oracle Universal Installer...

Checking swap space: must be greater than 500 MB.   Actual 7794 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-06-12_11-20-51AM. Please wait ...Oracle Universal Installer, Version 11.2.0.3.0 Production
Copyright (C) 1999, 2011, Oracle. All rights reserved.

Starting deinstall


Deinstall in progress (Sunday, June 12, 2016 10:20:54 AM CLT)
............................................................... 100% Done.

Deinstall successful


End of install phases.(Sunday, June 12, 2016 10:21:16 AM CLT)
End of deinstallations
Please check '/home/oracle/app/oraInventory/logs/silentInstall2016-06-12_11-20-51AM.log' for more details.


Espero les sirva :>>

by Ligarius
12.06.16. 16:38:27. 892 words, 456 views. Categories: Instalación, Oracle Golden Gate ,

RAC 12c : CLSRSC-175: Failed to write the checkpoint 'ROOTCRS_STACK' with status 'FAIL'



Instalando un RAC 12c , me encontré con un error que nunca había visto y claro, se me hizo tan extraño que comencé a investigar y he aquí el resultado

Ya casi terminando con la instalación del Grid Infraestructure en un RAC 12c, aparece la siguiente pantalla de ejecución de shell





Al realizar la cuarta ejecución , especificamente el archivo /u01/app/12.1.0/grid/root.sh en el nodo 2, aparece el siguiente mensaje de error

2015/11/29 01:14:35 CLSRSC-175: Failed to write the checkpoint 'ROOTCRS_STACK' with status 'FAIL' (error code 1)
Died at /u01/app/12.1.0/grid/crs/install/crsutils.pm line 3740.

Output total


Para ver los errores que existen en nuestra instalación podemos ir a la carpeta $HOME_CRS/cfgtoollogs/crsconfig/ y allí buscamos por la hora el log que andamos buscando, pues dentro de ese archivo aparecía lo siguiente

Y buscamos ese log , dentro de ese archivo estaba lo que buscábamos, el error

Por otra parte buscando en el temporal , me encontré con un archivo llamado /tmp/tfa/20151129_011424/cat syserrorout.11.29.2015-01.12.23 , que contenía exactamente el error que tenía en mi instalación , un hostname erróneo

TFA es la sigla de Oracle Trace File Analyzer y es precisamente el módulo que trata de instalar cuando chequea el /etc/hostname

Esto me parecía extraño , ya que el runcluvfy no tenía casi errores, sólo algunos warnings por NTP y el instalador mismo no me arrojo warnings relativos al hostname, la creación de certificados fue la adecuada por ende el error estaba en otro lado

Por lo mismo comencé a chequear la instalación del sistema operativo y ejecute un simple comando en el nodo2

El comando hostname me arrojaba un nombre de host erróneo, y era por el contenido del archivo /etc/hostname , lo cambie al valor adecuado y reejecute el script faltante en el nodo /u01/app/12.1.0/grid/root.sh

Y allí estaba, la instalación fue un éxito y sólo por un error, que ni siquiera me había dado cuenta que cometí |-|

Espero no se encuentren con esto :D y si lo hacen , ya saben como operar

by Ligarius
15.12.15. 05:57:26. 362 words, 7839 views. Categories: Oracle 12c, Real Application Cluster ,

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