Monday, May 12, 2014

ORACLE 11G R2: SCRIPTS RESTORE ASM

         Este es un ejemplo de diferentes tipos de restores de ASM de un RAC llamado ORCL. Partiendo de la base que tenemos realizados backups mediante este comando

            date=`date '+%d%m%y'`
            export date
sid="+ASM1"
export sid
asmcmd md_backup /software/oracle/backup/ORCL/asm/Respaldo_DiskGroup_$sid.$date

Procederemos a la restauración del ASM

Caso 1: Creacion del diskgroup y restauración de los metadatos.

ASMCMD> md_restore –-full –G data –-silent /software/oracle/backup/ORCL/asm/ Respaldo_DiskGroup_+ASM1.090910

Caso 2: Restauración de los metadatos sobre un diskgroup ya existente.


ASMCMD> md_restore –-nodg –G data –-silent /software/oracle/backup/ORCL/asm/ Respaldo_DiskGroup_+ASM1.090910

Caso 3: Recreación del Diskgroup
Nos conectamos a la instancia asm como sysasm
           sqlplus '/as sysasm'  
           sqlplus> CREATE DISKGROUP data EXTERNAL REDUNDANCY DISK ‘ORCL:ASMD1’;

Esta es una tabla de opciones de md_restore


Friday, May 9, 2014

ORACLE 11G R2: SCRIPTS BACKUP DEL ASM (METADATOS, SPFILE, RECREACION DE DISKGROUPS)

Ejemplo de backup de la configuración ASM de un RAC llamado ORCL

Realizamos copia de los metadatos y del spfile de asm mediante el comando md_backup de asmcmd

Script /home/oracle/scripts/asm/backasm.sh

##################################################
# Copia de los metadatos de la instancia ASM1 #
##################################################
#!/bin/bash
date=`date '+%d%m%y'`
export date
sid="+ASM1"
export sid
asmcmd md_backup /software/oracle/backup/ORCL/asm/Respaldo_DiskGroup_$sid.$date
asmcmd spbackup +DATA/ORCL/ASMPARAMETERFILE/REGISTRY.253.725461119 /software/oracle/backup/ORCL/asm

Generamos tambien script para recrear el diskgroup

Script /home/oracle/scripts/asm/ backup_diskgroup.sh

# -Script info diskgroups -----------------------------
#!/usr/bin/ksh
# Crash scenario
# Casos :
# ASM disk(s) is not visible on the operating system.
# asm_diskstring parameter is not set correctly on ASM instance(s)
# ASM metadata in disk is overwritten or corrupted

echo "Chequeo el espacio en "$ORACLE_SID
# Para Recrear un Diskgroup....
# CREATE DISKGROUP name EXTERNAL REDUNDANCY DISK 'path1', 'path2', 'path3', ....;
sqlplus '/as sysasm' @/home/oracle/scripts/asm/ASMDiskGroups.sql
cp -p /home/oracle/scripts/asm/ASMDiskGroups.txt /software/oracle/backup/ORCL/asm

Script /home/oracle/scripts/asm/ASMDiskGroups.sql

spool /home/oracle/scripts/asm/ASMDiskGroups.txt
select instance_name from v$instance
/
set lines 130
col path for a35
col Diskgroup for a15
col DiskName for a20
col disk# for 999
col total_mb for 999,999,999
col free_mb for 999,999,999
compute sum of total_mb on DiskGroup
compute sum of free_mb on DiskGroup
set pages 255
select a.name DiskGroup, b.disk_number Disk#, b.name DiskName, b.total_mb, b.free_mb,
b.path, b.header_status
from v$asm_disk b, v$asm_diskgroup a
where a.group_number (+) =b.group_number
order by b.group_number, b.disk_number, b.name
/
exit
/


spool off

ORACLE 11G R2: BACKUP DEL OLR

El OLR file (Oracle Local Registry) es el fichero de configuración de cada nodo del cluster

Script generado en /home/oracle/scripts/ocr/backolr.sh


Se lanza con el usuario root (desde el crontab del usuario)

La ubicación de dichas copias esta en /software/oracle/product/11.2.0/crs/cdata/Host1

Para sacar un listado de los backups realizados se ejecuta el comando

ocrconfig –local –showbackup

En el script realizamos una copia manual que la deja en la ubicación antes dicha

/software/oracle/product/11.2.0/crs/cdata/Host1/backup_20100908_120001.olr

Una vez generada esa copia manual, hacemos copia de todos los olr a la ubicacion centralizada de copias de esa maquina para llevarla a cinta.

El script /home/oracle/scripts/ocr/backolr.sh

ocrconfig -local -manualbackup
cp -p /software/oracle/product/11.2.0/crs/cdata/Host1/*.* /rutadestino/olr

ORACLE 11G R2: BACKUP DEL OCR

El OCR file (Oracle Cluster Registry) es el fichero de configuración del cluster.

Script generado en /home/oracle/scripts/ocr/backocr.sh

Se lanza con el usuario root (desde el crontab del usuario)

En la version de Oracle 11 R2, las copias de seguridad de OCR se hacen automáticamente cada 4 horas. Mantiene siempre las 3 ultimas copias (backup00.ocr, backup01.ocr y backup02.ocr) mas 1 diaria (day.ocr) mas 1 semanal (week.ocr).

La ubicación de dichas copias esta en /software/oracle/product/11.2.0/crs/cdata/Host-Cluster/

Para sacar un listado de los backups realizados se ejecuta el comando

ocrconfig –showbackup

En el script realizamos una copia manual que la deja en la ubicación antes dicha

/software/oracle/product/11.2.0/crs/cdata/Host-Cluster/backup_20100906_120001.ocr

Una vez generada esa copia manual, hacemos copia de todos los ocr a la ubicacion centralizada de copias de esa maquina para llevarla a cinta.

El script /home/oracle/scripts/ocr/backocr.sh

ocrconfig -manualbackup
cp -p /software/oracle/product/11.2.0/crs/cdata/Host-Cluster/*.* /rutadestino/ocr

Wednesday, May 7, 2014

CONSEJOS EN LA CREACION DE BBDD

                     Cuando creo una BBDD tengo una serie de inercias o costumbres que aplico basadas en la experiencia que a mi me han venido bien, tanto como seguridad como optimizaciòn o tener las cosas ordenadas

TABLESPACES TEMPORALES

                     Por defecto en la creación de la BBDD creamos un tablespace temporal (llamado TEMP) para todos los usuarios incluidos SYS/SYSTEM. yo una vez creada la BBDD suelo crear un tablespace temporal solo para los usuarios SYS/SYSTEM (llamado TEMPSYS). Mantengo el tablespace temporal TEMP como default temporary asi que cualquier nuevo usuario creado en la BBDD por defecto tendrá definido ese tablespace. Pero para SYS/SYSTEM prefiero tener su propio tablespace (suelo asignarle 500MB) para que todas aquellas tareas de sistema que requieran segmentos temporales no sufran ningún tipo de interferencia del resto de usuarios.

REDOLOGS

                     - Siempre creo como mínimo 3 grupos de RedoLogs con dos miembros en cada grupo. Si la BBDD es muy transaccional ( mucha generación de archivelogs) puedo tener 4 grupos de RedoLogs.    

                      - Siempre mantengo una nomenclatura para los 3 grupos y sus dos miembros (SIDredoNumGrupoNumMiembro.rdo) por ejemplo para una BBDD llamada ORCL seria
                      Grupo 1: ORCLredo11.rdo, ORCLredo12.rdo
                      Grupo 2: ORCLredo21.rdo, ORCLredo22.rdo
                      Grupo 3: ORCLredo31.rdo, ORCLredo32.rdo

                     - Siempre ubico los redologs en 2 ubicaciones diferentes. Los miembros 1 de cada grupo los ubico en el mismo FS o ASMdiskgroup donde tengo el primer fichero de control de la BBDD, los miembros 2 de cada grupo los ubico en el mismo FS o ASMdiskgroup donde tengo el segundo fichero de control de la BBDD.

                   - ¡¡¡¡ IMPORTANTE ¡¡¡¡ Para mi esta es una errata de Oracle por una experiencia vivida, por defecto Oracle da extensión .log a los ficheros RedoLogs de la BBDD, yo siempre los creo con extensión .rdo. En un cliente un operador de guardia de noche, al llenársele un FS hizo un rm -s *.log (borrar todos los ficheros con extension log incluyendo subdirectorios) con lo que se borraron los redologs de la BBDD con lo que hubo que intervenir por la parada de servicio que conllevo dicho borrado accidental. 
Para mi la extensión rdo en un contexto de BBDD es clara, viendo un fichero con esa extensión se que es un redolog.

CONTROLFILES

                     - Siempre defino  3 controlfiles en la creación de una BBDD con una nomenclatura SIDcontrolfileNum.ctl. La extensión ctl me dirá siempre que es un controlfile asi que par a una BBDD llamada ORCL seria ORCLcontrolfile01.ctl,  ORCLcontrolfile02.ctl y ORCLcontrolfile03.ctl
                               
                     - Siempre ubico los controlfiles en 3 ubicaciones diferentes. ORCLcontrolfile01.ctl con los miembros 1 de redologs, ORCLcontrolfile02.ctl con los miembros 2 de redologs y ORCLcontrolfile03.ctl con el fichero de parametros de la BBDD 

Tuesday, May 6, 2014

ORACLE 11G R2: CONFIGURAR NETWORK TIME PROTOCOL (NTP)

La instalación de Oracle GRID 11g R2 requiere que el demonio NTP tenga la opción slewing (-x)
  • Primero paramos en ambos nodos el demonio NTPD
[root@Host1]# service ntpd stop
Shutting down ntpd:                                        [  OK  ]
  • Editamos el fichero /etc/sysconfig/ntpd y añadimos en OPTIONS el valor –x
                                   # Drop root to id 'ntp:ntp' by default.
OPTIONS="-x -u ntp:ntp -p /var/run/ntpd.pid"
# Set to 'yes' to sync hw clock after successful ntpdate
SYNC_HWCLOCK=no
# Additional options for ntpdate
NTPDATE_OPTIONS=""
  • Y volvemos a arrancar el demonio NTP
[root@Host1]# service ntpd start

Starting ntpd:                                             [  OK  ]