lunes, 8 de diciembre de 2014

¿Sabes como funciona tu respaldo de RMAN en Oracle?

Articulo creado en rene-ace.com  .- ¿Sabes como funciona tu respaldo de RMAN en Oracle?

Lo primero que tenemos que hacer, es entender lo que es RMAN y cómo es que funciona. Oracle Recovery Manager o mejor conocido como RMAN, es una herramienta de Oracle que se instala con la edición Enterprise o edición Standard, también puedes encontrarlo con la opción “Admin option” al instalar el cliente de Oracle.

En su forma más básica, el cliente de RMAN se conecta a la base de datos que se respalda , y esta conexión tiene que ser como un usuario privilegiado de “sysdba” , esta base de datos se le cononoce como base de datos destino. Este cliente, es un ejecutable que se encuentra en $ORACLE_HOME/bin.

Al ser una herramienta de tipo cliente,  te permite utilizar un ejecutable de RMAN de versión mayor a la de los binarios de la base de datos así pudiendo respaldar versiones actuales y anteriores de la base de datos ; hay algunas restricciones a esto, y estas se pueden verificar en el documento de MOS RMAN Compatibility Matrix [ID 73431.1].

Este ejecutable de RMAN utiliza un archivo llamado recover.bsq, este archivo se encuentra en $ORACLE_HOME/rdbms/admin. Básicamente lo que hace el ejecutable, es interpretar los comandos que le envías, dirige las sesiones de servidor para ejecutar los comandos, y registra su actividad en el  archivo de control (control file) de la base de datos de destino que se está respaldando.

Hay dos paquetes principales de SYS  que hacen el trabajo de respaldo y recuperación, que son DBMS_RCVMAN, este tiene los procedimientos que enumeran tus encarnaciones de base de datos, el SLA de la ventana de tiempo de recuperación, la lista de los respaldos, por nombrar algunas de las cosas que puede hacer.

Así como DBMS_BACKUP_RESTORE, que como ya habrás adivinado, es el que hace las operaciones respaldos y recuperación, como crear el snapshot del archivo de control (control file), respaldar los archivos de datos (datafiles), copia de seguridad del spfile por nombrar algunos.

2014-12-08_1510

Como se mencionó anteriormente, la forma en que el cliente de RMAN dirige las sesiones de servidor para ejecutar los comandos es a través de uno o varios canales (channels), un canal representa un flujo de datos a un dispositivo, y corresponde a una sesión del servidor de base de datos. El canal lee los datos en la memoria PGA, lo procesa, y lo escribe en el dispositivo de salida.

El trabajo de cada canal, ya sea de tipo de disco (disk) o de sistema de respaldo en cinta (SBT), se subdivide en las siguientes fases:

  • Fase de Lectura
Un canal lee bloques del disco hacia buffers de I/O . La asignación de estos buffers depende del número de archivos de datos (datafiles) que se leen de forma simultánea desde el disco y se escriben en la misma pieza de respaldo. Una forma de controlar los números de los archivos es usar el parámetro de respaldo FILESPERSET.
  • Fase de Copiado
Un canal copia los bloques de los buffers de Entrada hacia los buffers de Salida y realiza un procesamiento adicional en los bloques, como la validación de los bloques de datos, ya que comprueba que no esta copiando datos corruptos al archivo de respaldo, es también la fase donde se hace la compresión binaria y el cifrado del respaldo.
  • Fase de Escritura
Un canal escribe los bloques del buffer de salida a los medios de almacenamiento. La fase de escritura puede ser que sea para SBT o para disco, y estos son mutuamente excluyentes, es decir, que se escribe en uno u otro, pero no en ambos.

2014-12-08_1352

Como se puede ver por las fases anteriores, lo que distingue a RMAN de cualquier otro método, es que los respaldos son a nivel de bloque de datos, a diferencia de los respaldos gestionados por el usuario, y esto trae grandes ventajas, ya que no tendrás que respaldar bloques vacíos, elimina la corrupción en tus respaldos y te permite hacer la compresión maxima al hacerlo.

Cuando decides escribir en SBT, Oracle utiliza su Capa de Media Manager (MML) para permitir que RMAN se comunique con los aplicaciones de terceros (Tivoli,NetApp,etc)  y escribir la pieza de respaldo resultante al dispositivo de medios secuenciales. Oracle utiliza una biblioteca, que es en realidad un enlace simbólico a la librería real de la aplicación de terceros de manejo de medios media , localizada en $ORACLE_HOME/lib llamada libobk.so (orasbt.dll en Windows), por ejemplo para configurar Oracle RMAN 11.2.0.3 en RHEL 5 versión de 64 bits con Veritas NetBackup, tendrías que hacer lo siguiente:
cd $ORACLE_HOME/lib
mv libobk.so libobk.so.orig
ln -s /<install_path>/netbackup/bin/libobk.so64 libobk.so

La creación de este enlace sólo permite a RMAN poder pasar comandos al MML y éste inter actuará con el director de manejador de medios, pero para que puedas ser capaz de completar un respaldo de SBT, tienes que establecer los parámetros  necesarios al asignar un canal, con el parámetro PARMS.Esto es específico a cada proveedor , por lo que verá, como ejemplo, para Veritas NetBackup tienes parámetros como NB_ORA_SERV, NB_ORA_CLIENT, NB_ORA_POLICY, y para Tivoli Storage Manager se especifica un archivo llamado tdpo.opt  a través del parámetro TDPO_OPTFILE , en el cual se establecen los ajustes apropiados para este proveedor.

Como se puede ver a continuación, la especificación del parámetro PARMS se hace cuando haces un ALLOCATE CHANNEL  o configurar el canal con CONFIGURE CHANNEL.
RMAN> run
2> 
3> ALLOCATE CHANNEL CH1 DEVICE TYPE 'SBT_TAPE'
PARMS'SBT_LIBRARY=<NBU_install_path>/netbackup/bin/libobk.so64,ENV=(NB_ORA_SERV = MASTER_SERVER,
4> NB_ORA_POLICY=5week,NB_ORA_CLIENT=CLIENT_SERVER)' format '%d_TAPE_%I_%s_%T_%t';
5> backup backupset all;
6> 
using target database control file instead of recovery catalog
allocated channel: CH1
channel CH1: SID=58 instance=TESTDB1 device type=SBT_TAPE
channel CH1: Veritas NetBackup for Oracle - Release 6.5 (2010042404)

ConclusiónEspero que esta pequeña introducción de como funciona un respaldo de RMAN te sea util y te ayude cuando estes empezando a usar esta herramienta.


viernes, 5 de diciembre de 2014

Oracle 12cR1 : RAC Attack a la Mexicana – Instalación de los binarios de Oracle RDBMS

RAC Attack es un libro que ha sido escrito por varias personas en el ámbito de Oracle y que tu eres libre de editar y contribuir, pero una de las quejas que existía es que no había una versión en español, y es por eso que estoy escribiendo esta serie de posts, en donde también los voy a hacer disponibles en el libro de RAC Attack.

En la 1a parte, vimos las necesidades de HW y SW, así como la instalación del OS RHEL 6.5

En la 2a parte vimos  la configuración del OS en el primer nodo y segundo nodo, así como la configuración del DNS.

En la 3a parte vimos a ver la instalación de los binarios del Grid Infrastructure y su configuración

En esta 4a parte vamos a instalar los binarios del RDBMS.

Nota.- Cuando veas lo siguiente en la salida de una terminal "...", es para acortar las lineas de salida

Instalación de los binarios del RDBMS

Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte

Ejecuta el instalador como el usuario oracle.

[oracle@collabn1 sf_rac_media]$ /media/sf_rac_media/database/runInstaller 
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 500 MB.   Actual 16829 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3023 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-23-10_10-40-31PM. Please wait ...

Desmarca I wish to receive security updates via My Oracle Support y haz clic en Next.

Haga clic en Yes para confirmar que no deseas estar informado acerca de las actualizaciones de seguridad.

Selecciona Skip software updates y haz clic en Next.

Selecciona Install database software only y haz clic en Next.

Selecciona Oracle Real Application Clusters database installation y haz clic en Next.

Verifica que estén seleccionados todos los nodos y haga clic en Next.

Haz clic en Next para aceptar la selección de idioma predeterminado.

Selecciona Enterprise Edition y haga clic en Next.

Si creaste previamente el sistema de archivos ACFS 1Gb, tendrás que especificar otra ubicación
  • Oracle Base: /u01/app/oracle
  • Software location: /u01/app/oracle/product/12.1.0/dbhome_1
Haz clic en Next.

Deja dba para todos los grupos, excepto para el grupo OSOPER (dejalo en blanco) y haz clic en Next.

El instalador comprueba todos los pre-requisitos.

Revisa el resumen de la instalación, opcionalmente guarda un archivo de respuesta y haz clic en Install.


La instalación puede tardar media hora en PCs comunes.

Justo antes de terminar, el instalador te marca que debes de ejecutar un script en ambos nodos como el usuario root. No hagas clic en Aceptar hasta que hayas corrido el script

Inicia una sesión como el usuario root en el nodo collabn1 y collabn2 abre una terminal de bash como se mostro al final de la 1a parte
Ejecutar el script en ambos nodos como root.


[root@collabn1 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation for Oracle 12c

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/12.1.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
[root@collabn1 ~]# ssh collabn2
root@collabn2's password:
[root@collabn2 ~]# /u01/app/oracle/product/12.1.0/dbhome_1/root.sh
Performing root user operation for Oracle 12c

The following environment variables are set as:
   ORACLE_OWNER= oracle
   ORACLE_HOME=  /u01/app/oracle/product/12.1.0/dbhome_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The contents of "oraenv" have not changed. No need to overwrite.
The contents of "coraenv" have not changed. No need to overwrite.

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.

Ahora si haz clic en Ok de la ventana anterior, y a continuación, haz clic en Close para salir del instalador.

Crear la Base de Datos

Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte.

Corre el asistente de configuración de Base de datos (dbca)


[oracle@collabn1 ~]$ /u01/app/oracle/product/12.1.0/dbhome_1/bin/dbca 

Selecciona Create Database y dale clic a Next.

Selecciona Create a database with default configuration.

  • Global Database Name: RAC.racattack
  • Storage Type: Automatic Storage Management (ASM)
  • Database Files Location: +DATA
  • Fast Recovery Area: +FRA
  • Database Character Set: AL32UTF8 - Unicode UTF-8 Universal character set
  • Administrative password: racattack
  • Selecciona Create As Container Database
  • Pluggable Database Name: PDB 


Se muestra un aviso de que la contraseña es débil. Haz clic en Yes para continuar.

Las comprobaciones de pre-requisitos pueden fallar debido a las necesidades de espacio. Es seguro ignorar estás.
Haga clic en Next.

Revisa la página de resumen y haz clic en Finish.

La creación de bases de datos ha finalizado. Haz clic en Exit y luego Close.

Conclusión
En la 1a entrada, terminas la instalación de Virtualbox y del Sistema Operativo, en la siguiente entrada vamos a configurar el Sistema Operativo y configurar los DNS para poder instalar RAC en dos nodos.
En la 2a entrada, terminas la configuración del DNS , así como la clonación de la segunda maquina virtual collabn1.
En la 3a parte instalamos los binarios de Grid Infrastructure y en la 4a parte instalamos los binarios del RDBMS.

Espero que te sirva para empezar a probar RAC en tu ambiente de pruebas !!!

Oracle 12cR1 : RAC Attack a la Mexicana - Instalación de Oracle Grid Infrastructure

RAC Attack es un libro que ha sido escrito por varias personas en el ámbito de Oracle y que tu eres libre de editar y contribuir, pero una de las quejas que existía es que no había una versión en español, y es por eso que estoy escribiendo esta serie de posts, en donde también los voy a hacer disponibles en el libro de RAC Attack.

En la 1a parte, vimos las necesidades de HW y SW, así como la instalación del OS RHEL 6.5

En la 2a parte vimos  la configuración del OS en el primer nodo y segundo nodo, así como la configuración del DNS.

En esta 3a parte vamos a ver la instalación de los binarios del GI y su configuración

Nota.- Cuando veas lo siguiente en la salida de una terminal "...", es para acortar las lineas de salida

Instalación de el Grid Infrastructure (ASM)

Ejecuta la instalación de el Grid Infrastructure como el usuario oracle:

[oracle@collabn1 sf_rac_media]$ /media/sf_rac_media/grid/runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 22670 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 3023 MB    Passed
Checking monitor: must be configured to display at least 256 colors.    Actual 16777216    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2014-10-23_08-12-00PM. Please wait ...[oracle@collabn1 sf_rac_media]$ 
[oracle@collabn1 sf_rac_media]$ 

Deja en blanco Skip software updates y haz clic en Next:

Selecciona Install and Configure Oracle Grid Infrastructure for a Cluster  y haz clic en Next:

Selecciona Configure a Standard Cluster y haz clic en Next:

Selecciona Typical Installation y haz clic en Next:

En el recuadro de SCAN Name, introduce collabn-cluster-scan.racattack
  • En el recuadro central, sólo se muestra el primer nodo.
  • Haz clic en Add ... e introduce el nombre de red del segundo nodo:
    • Public Hostname: collabn2.racattack
    • Virtual Hostname: collabn2-vip.racattack

Dale clic a SSH connectivity... e teclea racattack como la contraseña del usuario oracle y haz clic en Setup.

Lo que va a suceder es que se inicia la conectividad SSH sin contraseñas de a través de los nodos

Dale clic en OK cuando termine 

Ahora dale clic en Identify Network Interfaces...
  • Comprueba que las direcciones correctas fueron establecidas:
    • eth0 esta marcada como Public
    • eth1 esta marcada como Private
    • eth2 esta marcada como Do Not Use
  • Haz clic en Ok para cerrar la ventana de Identify Network Interfaces.

Finalmente dale clic a Next 


Algunas validaciónes de pre-requisito se realizan en este paso. Se puede tardar algunos minutos en completarse este paso.

Dado que el nombre elegido para el SCAN es demasiado largo (más de 15 caracteres.) Oracle propone un nombre diferente como el nombre de clúster. Haga clic en Yes.

Deja el valor predeterminado de Oracle Base y Software Location.
  • En el recuadro desplegable Cluster Registry Storage Type, selecciona Oracle Automatic Storage Management
  • Introduce racattack como la contraseña de SYSASM.
  • Seleccione dba como grupo el grupo de OSASM.

racattack es una contraseña débil y Oracle te alerta sobre esto. Haga clic en Ok para continuar:

Deja DATA como el Disk Group Name.
  • Selecciona redundancia externa (External redundancy) [Nota .- Esto es seguro hacerlo nada mas en un ambiente de pruebas, para producción se requiere analizar si esta es el mejor tipo de redundancia ].
  • La lista de discos candidatos (Candidate Disks) está vacía. Haz clic en Change Discovery Path...
  • Cambia la ruta a  /dev/asm* en el campo de texto Disk Discovery Path.
  • Haz clic en Ok.

Selecciona los primeros dos discos que serán inmediatamente añadidos al nuevo grupo de discos y haz clic en Next

Deje el Directorio de inventario predeterminado (Inventory Directory). Haz clic en Next.

Selecciona Automatically run configuration script y luego utiliza las credenciales del usuario "root".
Introduce racattack como la contraseña de root y haga clic en Next.

Algunas validaciónes de pre-requisito se realizan en este paso. Se puede tardar algunos minutos en completarse este paso.

Si todo es correcto, te darás cuenta de dos pasos han fallado :
  • Physical Memory
  • Device Checks for ASM
Marca "Ignore All" y haga clic en Next.

Haz clic en Yes para confirmar que desea omitir algunos requisitos previos.

Te va a aparecer la página de resumen. Opcionalmente, haz clic en Guardar archivo de respuesta (Save Response File) y elige una ubicación para que el archivo de respuestas sea guardado.

Revisa el resumen y haga clic en Install para iniciar la instalación.

Ahora comienza la instalación. Se puede tomar más de una hora, dependiendo del hardware de tu PC.

Después de un tiempo, la instalación te pide una confirmación antes de ejecutar algunos scripts como root. Haga clic en Ok para continuar.

La instalación continúa, esto puede tardar mucho tiempo en completarse. Una vez que esté terminado, haz clic en Close para salir.

Configuración de ASM
Inicia una sesión como el usuario oracle en el nodo collabn1 y abre una terminal de bash como se mostro al final de la 1a parte

Ejecuta el Asistente de configuración de ASM:

[oracle@collabn1 ~] . oraenv
ORACLE_SID = [oracle] ? +ASM1
The Oracle base has been set to /u01/app/oracle
[oracle@collabn1 ~]$ asmca

El asmca abre en la pestaña de Grupos de discos (Disk Groups) , que muestra el diskgroup DATA creado por el instalador. Haz clic en Create.

Introduce FRA como el nombre del grupo de discos.

  • Elige la redundancia redundancia External (none).
  • Selecciona uno de los discos para crear un diskgroup de 5Gb.
  • Haz clic en Ok.

Se está creando el diskgroup y cuando finaliza te muestra la pantalla de que fue creado

Haz clic en la pestaña Volumes,y a después en Create.

  • Teclea SHARED como el nombre del volumen.
  • Elige el diskgroup DATA.
  • El tamaño será irrelevante en nuestro laboratorio, por lo que teclea 1.
  • Haga clic en Ok.

Se crea el volumen

Selecciona la pestaña ASM Cluster File Systems y dale clic a Create

Selecciona Cluster File System.
  • Mountpoint: /shared
  • Selecciona Automount.
  • User Name: oracle
  • Group Name: dba
  • Volume: SHARED
  • Dale clic a OK.

Para completar la creación del sistema de archivos, ejecuta este script como root.


[root@collabn1 ~]# /u01/app/oracle/cfgtoollogs/asmca/scripts/acfs_script.sh
ACFS file system /shared is mounted on nodes collabn1
ACFS file system /shared is mounted on nodes collabn2

Por último, el sistema de archivos está montado en ambos nodos.


[oracle@collabn1 ~]$ df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_collabn1-lv_root   31G   19G   11G  64% /
tmpfs                            1.5G  632M  875M  42% /dev/shm
/dev/sda1                        477M   55M  397M  13% /boot
rac_media                        931G  606G  326G  66% /media/sf_rac_media
/dev/sr0                          56M   56M     0 100% /media/VBOXADDITIONS_4.3.20_96996
/dev/asm/shared-449              1.0G   79M  946M   8% /shared

[oracle@collabn2 ~]$ df -h
Filesystem                       Size  Used Avail Use% Mounted on
/dev/mapper/vg_collabn1-lv_root   31G   19G   11G  64% /
tmpfs                            1.5G  632M  875M  42% /dev/shm
/dev/sda1                        477M   55M  397M  13% /boot
rac_media                        931G  606G  326G  66% /media/sf_rac_media
/dev/sr0                          56M   56M     0 100% /media/VBOXADDITIONS_4.3.20_96996
/dev/asm/shared-449              1.0G   79M  946M   8% /shared

Conclusión
En la 1a entrada, terminas la instalación de Virtualbox y del Sistema Operativo, en la siguiente entrada vamos a configurar el Sistema Operativo y configurar los DNS para poder instalar RAC en dos nodos.

En la 2a entrada, terminas la configuración del DNS , así como la clonación de la segunda maquina virtual collabn1.

En esta 3a parte instalamos los binarios de Grid Infrastructure y en la 4a parte vamos a instalar los binarios del RDBMS.