Olá pessoal,

Tudo bem?

Nas versões mais recentes de Grid Infrastructure a Oracle mudou o caminho default do backup do OCR do filesystem para o ASM. Um dos objetivos foi garantir que o backup não esteja mais num filesystem local em algum dos nós, pois, caso você perca o disco desse nó, você poderia também perder também os backups, o que não é uma boa coisa. 🙂

Mas, mesmo assim, se você quiser, você pode copiar o backup do ASM para um filesystem (seja ele local ou não, exemplo: NFS).

Um dos objetivos de ter uma cópia do backup em filesystem é solicitar time de backup para garantir que este filesystem seja levado para fita.

Bom, dito isso, qual é a estratégia?

Criar um shell script e habilitar ele na CRON em TODOS os nós do cluster.

Todos?

Isso mesmo!

Terei então o job rodando em mais de um servidor?

Não!

Como?

O shell script possuirá a inteligência de só ser executado à partir do master node do cluster. Desta forma, você pode deixar a entrada na CRON habilitada em todos os nós do cluster, mas apenas um nó executará o shell (o master node). Além disso, o shell script sempre copiará o backup mais recente do OCR.

Bom, vamos lá:

 

#!/bin/bash

export GRID_HOME=/oracle/app/122/grid
export PATH=/oracle/app/122/grid/bin:$PATH
export COPY_LOCATION=/oracle/backup
export MASTER_NODE=`oclumon manage -get master | grep Master | awk '{print $3}' | cut -d "." -f1 | sed -e 's/\(.*\)/\U\1/'`
export HOST=`echo $HOSTNAME | cut -d "." -f1 |sed -e 's/\(.*\)/\U\1/'`

if [ "$HOST" == "$MASTER_NODE" ]; then
OCR_BACKUP_DATE=`ocrconfig -showbackup | awk '{print $2"_" $3}' | grep "/" | head -1 | sed -r 's/\///g' | sed -r 's/\://g'`
OCR_BACKUP=`ocrconfig -showbackup | awk '{print $4}' | grep "+" | head -1`
ocrconfig -copy $OCR_BACKUP $COPY_LOCATION/ocr_backup_$OCR_BACKUP_DATE
else
exit
fi

 

Linhas que você precisa se preocupar em alterar:

export GRID_HOME para o local onde está o seu GRID_HOME

export COPY_LOCATION para o filesystem que seja armazenar a cópia do seu backup do OCR.

 

Um abraço!

 

Vinicius