Ir para o conteúdo
ou

Software livre Brasil

Heitor Medrado de Faria

Tela cheia
 Feed RSS

Blog

27 de Maio de 2009, 0:00 , por Software Livre Brasil - | Ninguém está seguindo este artigo ainda.

Script para exclusão de volumes em massa

14 de Novembro de 2018, 21:00, por Bacula Backup Brasil - 0sem comentários ainda

Muitas vezes ocorre que por algum erro, o Bacula gera centenas de volumes com erros, e para excluí-los é necessário executar manualmente no bconsole um comando para excluir volume por volume.

Para facilitar e automatizar esta tarefa é possível utilizar um shell script:

Download do script

wget -c https://raw.githubusercontent.com/wanderleihuttel/bacula-utils/master/conf/scripts/_delete_multiples_volumes.sh -O /usr/local/bin/_delete_multiples_volumes.sh
chmod a+x /usr/local/bin/_delete_multiples_volumes.sh

O script

#!/bin/bash
#######################################
bconsole=$(which bconsole)

clear
echo "--------------------------------------------"
echo " Script to delete volumes in mass"
echo " Author:  Wanderlei Hüttel"
echo " Email:   wanderlei.huttel@gmail.com"
echo " Version: 1.1 - 12/11/2018"
echo "--------------------------------------------"
echo ""

echo "list pools" | ${bconsole} | grep "[+|\|]"
read -p "Enter the name of the Pool that you would like to delete the volumes: " pool
echo "Selected Pool: ${pool}"
echo ""
read -p "Enter the status of the volumes you would like to check (Error, Used, Full, Append, Recycled): " volstatus

arraycount=$(echo "list media pool=${pool}" | ${bconsole}  | grep "|" | grep -v "MediaId" | grep "${volstatus}" | cut -d "|" -f3 | sed 's/ //g' | wc -l)
echo ""
for volname in $(echo "list media pool=${pool}" | ${bconsole}  | grep "|" | grep -v "MediaId" | grep "${volstatus}" | cut -d "|" -f3 | sed 's/ //g'); do
    echo " ${volname}" ;
done
echo ""

if [ ${arraycount} == "0" ]; then
    echo -e "No volumes found with status '${volstatus}'\n"
    echo -e "Operation aborted!\n"
    exit
else
    echo -e "${arraycount} volumes was found with status '${volstatus}'\n"
fi

read -p "Are you sure you want to delete all ${arraycount} volumes? This operation is irreversible! (Y-Yes / N-No) " confirm
if [ "${confirm}" == "y" ] || [ "${confirm}" == "Y" ]; then
    for volname in $(echo "list media pool=${pool}" | ${bconsole}  | grep "|" | grep -v "MediaId" | grep "${volstatus}" | cut -d "|" -f3 | sed 's/ //g'); do
        echo "delete volume=${volname} pool=${pool} yes" ;
        # Uncomment the line below to exclude the volumes in the catalog
        #echo "delete volume=${volname} pool=${pool} yes" | ${bconsole} ;

        # Uncomment the line below and change the path of storage to remove volume from the disk also
        # rm -f /path/to/storage/${volname}
    done
    echo -e "Operation finished with success!\n"
else
    echo -e "Operation aborted!\n"
fi

Antes de executar o script

Existem duas linhas no arquivo que por medidas de segurança estão comentadas. Então é possível executar o script sem nenhuma modificação. Então execute uma primeira vez e certifique-se que de os volumes que serão excluídos são os corretos e só depois descomente as linhas do script.
Substitua o caminho "/path/to/storage" pelo diretório físico onde estão os volumes caso para excluir os volumes do disco também (só em caso de backup em disco)

Descomentar as linhas abaixo no script
# echo "delete volume=${volname} pool=${pool} yes" | ${bconsole} ;
# rm -f /path/to/storage/${volname}

Executando o script

+--------+--------------+---------+---------+----------------+--------------+---------+----------+
| poolid | name         | numvols | maxvols | maxvolbytes    | volretention | enabled | pooltype |
+--------+--------------+---------+---------+----------------+--------------+---------+----------+
|      2 | Scratch      |       0 |       0 |              0 |   31,536,000 |       1 | Backup   |
|      6 | Diaria       |      15 |      15 |  4,000,000,000 |   31,536,000 |       1 | Backup   |
|      7 | Semanal      |      25 |      25 |  4,000,000,000 |   31,536,000 |       1 | Backup   |
|      8 | Mensal       |      70 |      70 |  4,000,000,000 |   31,536,000 |       1 | Backup   |
|     11 | Pool-Temp    |       0 |     100 | 10,000,000,000 |   31,536,000 |       1 | Backup   |
|     13 | VM           |      25 |      25 | 10,000,000,000 |   31,536,000 |       1 | Backup   |
|     14 | Pool-Default |       0 |     100 | 10,000,000,000 |   31,536,000 |       1 | Backup   |
+--------+--------------+---------+---------+----------------+--------------+---------+----------+
1) Enter the name of the Pool that you would like to delete the volumes: Diaria # <= Digitar o nome da Pool

2) Enter the status of the volumes you would like to check (Error, Used, Full, Append, Recycled): Error # <= Digitar o estado do volume

    Volume-Diario-0001
    Volume-Diario-0002 
    Volume-Diario-0003
    Volume-Diario-0004
 
    4 volumes was found with status 'Error'

3) Are you sure you want to delete all 4 volumes? This operation is irreversible! (Y-Yes / N-No) # <= Confirmar

    delete volume=Volume-Diario-0001 pool=Diaria yes
    delete volume=Volume-Diario-0002 pool=Diaria yes
    delete volume=Volume-Diario-0003 pool=Diaria yes
    delete volume=Volume-Diario-0004 pool=Diaria yes

Operation finished with success!


Guia Rápido Plugin KVM Bacula Enterprise

11 de Novembro de 2018, 20:28, por Bacula Backup Brasil - 0sem comentários ainda

Visão Geral

Este Guia Rápido apresenta várias técnicas de backup de máquinas virtuais KVM com o plug-in exclusivo Enterprise Bacula (EBacula), que fornece os seguintes recursos, entre outros:

  • Backup de máquinas virtuais (VMs) clientless
  • Recuperação Granular no Nível de Arquivo
  • Descoberta automática de VMs
  • Suporte de Nível de Backup Completo, Diferencial e Incremental
  • Estados-Membros de backup em 'em execução', 'em pausa' ou até mesmo 'desativado'
  • A capacidade de incluir ou excluir arquivos do backup da VM

O plug-in KVM foi projetado para ser usado quando o hipervisor usa armazenamento local para discos das máquinas virtuais e libvirtd para gerenciamento das mesmas. No entanto, o EBacula também possui outros plugins específicos para o Proxmox, Redhat RHEV/Ovirt e OpenStack.

Instalação

Instale o cliente de backup EBacula, Libs e o pacote KVM em seu hipervisor. Considere a distribuição, versão e arquitetura do Linux, como em:

rpm -ivh install bacula-enterprise-libs-10.0.5-1.el7.x86_64.rpm 
rpm -ivh install bacula-enterprise-client-10.0.5-1.el7.x86_64.rpm  
rpm -ivh install bacula-enterprise-kvm-plugin-10.0.5-1.el7.x86_64.rpm

Observação: o plug-in do KVM usa instantâneos (snapshots) ao fazer backup de VMs convidadas. Durante um instantâneo, os blocos modificados pela VM guest precisam ser copiados no espaço temporário, o espaço necessário depende da atividade do disco convidado. Por padrão, o espaço é alocado em /var/tmp, portanto, certifique-se de que haja algum espaço para isso.

Ferramentas de virtualização (qemu-ga) devem ser instaladas no convidado e talvez seja necessário configurar as VMs convidadas para desativar o sistema de arquivos corretamente durante a fase de instantâneo.

Configuração

Cliente de Backup

O daemon libvirtd deve ser iniciado e acessível. O File Daemon do servidor do hipervisor KVM deve ter acesso local, montado na rede ou SAN, para onde as imagens KVM são armazenadas. No servidor host KVM, o comando a seguir deve listar todas as VMs locais:

# virsh list --all
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off

Se a especificação de um URI usando o parâmetro -c do comando virsh for necessária, o parâmetro uri= correspondente também será necessário no comando do plug-in mais adiante.

# virsh -c qemu:///system list --all
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off

O script install-kvm.sh é projetado para testar a configuração do KVM do hypervisor. O script deve informar um "OK" no final, como no exemplo. Caso contrário, entre em contato com seu suporte.

# /opt/bacula/scripts/install-kvm.sh check
Enter the libvirt URI to connect libvirtd [qemu:///system]:
Trying to list VMs using virsh -r -c 'qemu:///system' list --all, it should not ask for a password.
Id Name State
----------------------------------------------------
1 gentoo running
2 centos paused
- debian shut off
Did you have to enter a password to get the VM list? [y/N]: N
Enter the name of a guest that will be used to test the KVM plugin requirements:
gentoo
Trying to mount gentoo filesystem as /tmp/bee-kvm-gentoo.2vsYz
Mount OK.
Attempting to list 10 files from gentoo root filesystem.
/tmp/bee-kvm-gentoo.2vsYz/
/tmp/bee-kvm-gentoo.2vsYz/bin
/tmp/bee-kvm-gentoo.2vsYz/bin/bb
/tmp/bee-kvm-gentoo.2vsYz/bin/dd
/tmp/bee-kvm-gentoo.2vsYz/bin/cp
/tmp/bee-kvm-gentoo.2vsYz/bin/df
/tmp/bee-kvm-gentoo.2vsYz/bin/du
/tmp/bee-kvm-gentoo.2vsYz/bin/ip
/tmp/bee-kvm-gentoo.2vsYz/bin/ln
/tmp/bee-kvm-gentoo.2vsYz/bin/ls
Unmounting gentoo filesystem.
OK: All tests are good.

Prepare sua conexão Cliente para Diretor (configure seu Nome do Diretor real no bacula-fd.conf, copie e cole a senha para o anexo do Diretor). Reinicie o Bacula Client para aplicar as alterações.

Director Bacula

Anexe o cliente ao diretor (crie um novo recurso de configuração do cliente usando a senha copiada da última etapa).

Crie um novo FileSet com as opções de plug-in do KVM desejadas. O exemplo da Figura 1 fará backup de todas as VMs do hipervisor. Você pode usar a GUI do BWeb, se desejar.

Figura 1. Uma Configuração de Plug-in do KVM para Fazer backup de Todas as VMs

Neste segundo exemplo, é possível incluir VMs específicas para este FileSet:

FileSet {
  Name = FS_KVM
    Include {
      Options {
        Signature = MD5
        Compression = LZO
      }
    Plugin = "kvm: host=centos,gentoo"
  }
}

Se um FileSet fizer backup de várias VMs, elas aparecerão na árvore de seleção de arquivos de restauração com o nome da VM como o primeiro diretório para restauração, como o seguinte:

* list files jobid=100
+---------------------------------+
| filename |
+---------------------------------+
| ...                             |
| /centos/boot                    |
| /centos/boot/grub               |
| /centos/boot/grub/menu.lst      |
| ...                             | 
| /gentoo/etc/passwd              |
| /gentoo/etc/group               |
| /gentoo/etc/hosts               |
| ...                             |
+ --------------------------------+

Se um FileSet KVM contiver apenas uma máquina virtual, o caminho de cada arquivo não será prefixado com o nome da máquina virtual, como mostrado abaixo. Esse comportamento padrão pode ser substituído usando o parâmetro de plug-in KVM host_prefix. O seguinte FileSet:

FileSet {
  Name = FS_KVM_centos
   Include {
     Plugin = "kvm: host=centos"
   }
}

Resultará na seguinte saída de comando list jobs do bconsole:

* list files jobid=101
+---------------------------------+
| filename |
+---------------------------------+
| ...                             |
| /boot                           |
| /boot/grub                      |
| /boot/grub/menu.lst             |
| ...                             |
+ --------------------------------+

A seleção de Inclusão ou Exclusão de arquivos ou diretórios do FileSet é ignorada ao usar o plug-in KVM. Para Incluir ou Excluir diretórios específicos, o próximo exemplo deve ser usado.

FileSet {
  Name = FS_KVM_etc_home
    Include {
      Plugin = "kvm: host=centos include=/etc include=/home exclude=/home/tmp"
    }
}

As opções atuais do Plugin são detalhadas da seguinte forma:

.tg {border-collapse:collapse;border-spacing:0;}
.tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:black;}
.tg .tg-0pky{border-color:inherit;text-align:left;vertical-align:top}
.tg .tg-0lax{text-align:left;vertical-align:top}
Option Default Description
uri O parâmetro URI especifica como se conectar ao hipervisor. A página de documentação em http://libvirt.org/uri.html lista os valores suportados.
host Máquina virtual para backup. É possível especificar uma lista de hosts separados por ',' (sem espaços).
include Especifique arquivos ou diretórios para backup. É possível especificar múltiplos parâmetros include = na linha de comando do plugin.
exclude Especifique arquivos ou diretórios para excluir. É possível especificar múltiplos parâmetros exclude = na linha de comando do plugin.
host_prefix No Prefixar todos os arquivos com o nome da máquina virtual (obrigatório ao fazer backup de várias máquinas virtuais na mesma tarefa).
host_sep , Especifique um separador de host usado no parâmetro do host. host_sep =: host = h1: h2: h3
abort_on_error No Abortar o trabalho se ocorrer um erro durante o trabalho. Por padrão, se uma VM não estiver acessível, por exemplo, a tarefa será encerrada com JobStatus OK (T) e alguns JobErrors.

Crie um novo Job de backup usando o cliente KVM e o novo FileSet. Recarregue ou reinicie o daemon do Director para aplicar as alterações.

Restore

Para restaurar um arquivo, basta usar o comando bconsole restore, selecionar o trabalho de backup e executar um trabalho de restauração tradicional.

Considerações

  • Ao fazer um backup no nível do controlador de domínio (hypervisor) do KVM, alguns recursos do Bacula, como executar scripts (RunScripts) no cliente, não são suportados. O dump de um banco de dados MySQL em uma VM guest antes do backup exigirá o uso de scripts personalizados usando SSH, por exemplo, ou instalar um Cliente Bacula dentro do sistema operacional da VM.
  • Os CD-ROMs devem ser desconectados das VMs antes de tentar um backup com o plug-in do KVM. Além disso, o sistema pode relatar

Referências

  1. KVM Plugin Using Bacula Enterprise Edition Whitepaper, Bacula Systems. http://baculasystems.com


Banner SSH Bacula

11 de Novembro de 2018, 16:01, por Bacula Backup Brasil - 0sem comentários ainda

Dica de Carlos Henrique, grupo Telegram @baculabr em Portugês (in English, @baculabackup)

É possível colocar uma mensagem ou imagem ASCII que parece no servidor Linux do Bacula ao fazer login.

Acesse um serviço de conversão de Imagem em ASCII (ex.: https://www.text-image.com/convert/ascii.htmlhttp://www.scrape.com.br/foto-em-caracteres.php), faça o upload de sua imagem favorita e converta para caractéres. O Padrão do número de colunas do Putty e do terminal do Linux são 80, caso deseje produzir uma exatamente deste tamanho. No meu caso o morcego ficou assim:

                        ®®®®                                           ®®®®                         
                    ®®®®®®®®                  ®     ®                  ®®®®®®®®                     
                ®®®®®®®®®®®®®                ®®®    ®®                ®®®®®®®®®®®®®                 
             ®®®®®®®®®®®®®®®®®®®®®®®®®       ®®®®®®®®®       ®®®®®®®®®®®®®®®®®®®®®®®®®              
           ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®            
         ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®          
       ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®        
     ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®      
    ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®     
   ®®®®®          ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®          ®®®®®    
  ®®®               ®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®              ®®®   
 ®®                  ®®                 ®®®®®®®®®®®®®®®®®®®                  ®®                 ®®  
®                                          ®®®®®®®®®®®®®                                          ® 
                                             ®®®®®®®®®                                              
                                              ®®®®®®®                                               
                                               ®®®®®                                                
                                                ®®®                                                 
                                                 ®                                                  
                                                 ®                                                  
                                                                                                    

Reserve a imagem ASCII num bloco de notas.

No Servidro Bacula, edite o arquivo/etc/ssh/sshd_config e acrescente a seguinte linha (ou descomente se já existir).

Banner /etc/issue.net

Edite também o arquivo /etc/issue.nete cole a imagem ASCII. Salve.

Reinicie o serviço do SSH. Ex.:

service sshd restart

Faça logout e se connecte novamente no servidor. Conforme mostrado na Figura 1, o banner criado deverá aparecer.

Figura 1. Banner SSH Bacula

 



Backup do Weblogic Oracle com Bacula

10 de Novembro de 2018, 16:26, por Bacula Backup Brasil - 0sem comentários ainda

Visão Geral

Para backups do WebLogic, o Oracle [1] recomenda esses tipos de backup.

  • Off-line (Oracle Fusion Middleware Environment), imediatamente após a instalação e depois de aplicar quaisquer correções ou atualizações. Quando você executa um backup offline, o Servidor de Administração, todos os Servidores Gerenciados no domínio do Oracle WebLogic Server e todos os componentes do sistema nas instâncias do Oracle devem ser encerrados antes do backup dos arquivos.
  • On-line (Oracle Fusion Middleware Environment ou soment Run-Time Artifacts), o que significa que você não encerra o ambiente antes de fazer o backup dos arquivos, portanto, não faça nenhuma alteração de configuração até que o backup seja concluído. Para garantir que nenhuma alteração seja feita no domínio do Oracle WebLogic Server, é recomendável bloquear a configuração do WebLogic Server conforme explicado posteriormente.

Definições de Diretórios Comuns

Segundo a Oracle [2] e a Figura 1, esses são diretórios comuns que serão incluídos no backup, entre outros.

Figura 1. Diretórios Típicos do WebLogic

Job Backup Offline Completo do Ambiente WL pelo Bacula

Depois de instalar e configurar o cliente Bacula Backup no servidor WebLogic, crie um novo FileSet com o seguinte diretório no Include:

/Source_Middleware_Home 

Crie uma nova tarefa de backup do Bacula (por exemplo, WebLogicOfflineBackup). Este trabalho pode ser criado sem agenda definida ou nula, portanto, ele pode ser executado somente quando desejado. Ele também pode ser executado antes e depois dos scripts do Job para interromper e iniciar os serviços do WebLogic de maneira automatizada.

Recarregue o Bacula Director para aplicar as configurações. Execute um backup e restore de teste.

Job Backup Online Completo do Ambiente WL pelo Bacula

Instale o Plugin de Backup do Banco de Dados do Bacula Client e do Bacula Enterprise (se disponível) em todos os hosts do WebLogic.

Crie um script lock.sh e um script unlock.sh (por exemplo, /opt/bacula/scripts), para que o Bacula possa bloquear configurações de domínio com uma execução de script ClientRunBeforeJob (lock) e um ClientRunAfterJob (configurações de desbloqueio), com os comandos wlst de exemplo [3].

# Obtain a lock on the current configuration (http://sqltech.cl/doc/oas11gR1/web.1111/e13813/reference.htm#WLSTC322)
startEdit([waitTimeInMillis],[timeoutInMillis], [exclusive])

# Release your lock on the configuration (http://sqltech.cl/doc/oas11gR1/web.1111/e13813/reference.htm#WLSTC326)
stopEdit([defaultAnswer])

Crie outro script para execução do ClientRunBeforeJob para criar um registro do seu ambiente Oracle Fusion Middleware (https://docs.oracle.com/cd/E15523_01/core.1111/e10064/backup.htm#ASTDA405). Essas informações (nome do host, nome de domínio, nome do host virtual, tipo de instalação, etc.) são necessárias quando necessário para restaurar e recuperar o ambiente do Oracle Fusion Middleware. Você pode descarregar essas informações para um arquivo de texto / etc (que será incluído no backup do bacula) ou enviar por e-mail.

Na configuração do diretor do Bacula, crie um FileSet que inclua o home do Middleware (MW_HOME), o diretório OraInventory, os arquivos OraInst.loc e oratab (etc):

/MW_HOME/
/scratch/oracle/OraInventory
/etc

Observação 1: se o domínio não estiver localizado na home do Middleware, inclua o domínio do Servidor de Administração separadamente. Por exemplo:

/MW_HOME/user_projects/domains/domain_name/*

Observação 2: se a home page da instância do Oracle não estiver localizada na home do Middleware, faça backup da home page da instância do Oracle. A home page da instância do Oracle contém informações de configuração sobre os componentes do sistema, como o Oracle HTTP Server ou o Oracle Internet Directory.

/ORACLE_INSTANCE/*

Observação 3: se um servidor gerenciado não estiver localizado no domínio, inclua o diretório do servidor gerenciado. Por exemplo:

/MW_HOME/user_projects/domains/domain_name/servers/server_name/*

No mesmo FileSet, adicione uma configuração de Plugin* com seu método de plug-in do EBacula Oracle DB Backup favorito:

Plugin = "oracle: mode=rman"

*Se estiver usando o Bacula Community ou se você não tiver o plugin Oracle, certifique-se de configurar uma cópia de execução e destino do backup rman.

Seu FileSet final deve ser algo assim:

FileSet {
  Name = WebLogicOnlineConfigurations
  Include {
    Options {
      Signature = MD5
    }
  Plugin = oracle: "mode=rman"
  File = /MW_HOME/
  File = /scratch/oracle/OraInventory
  File = /etc
  }
}

Configure um Job do Bacula Backup com todas as diretivas de execução do script ClientRun e com o FileSet criado. Forneça o cronograma desejado. Recarregue o Diretor do Bacula para aplicar as mudanças.

Execute um backup ad hoc e restaure para fins de teste.

Considerações para Windows

Além de todas as recomendações anteriores, crie outro script ClientRunvefore Job para exportar as seguintes chaves do Registro:

HKEY_LOCAL_MACHINE\Software\oracle
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

Para exportar uma chave, use o seguinte comando:

regedit /E C:\oracleregistry.reg HKEY_LOCAL_MACHINE\Software\oracle
regedit /E C:\oracleregistry.reg HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

Certifique-se de fazer backup do arquivo de exportação do Registro gerado por script.

Job de Backup Online Apenas de Run-Time Artifacts do Bacula

Instale o Bacula Clients, o Oracle Plugin e crie (se você não o fez) as mesmas configurações de domínio lock/unlock e grave os scripts de geração criados no tópico anterior para evitar inconsistência.

Crie um FileSet Bacula como:

FileSet {
  Name = WebLogicOnlineConfigurations
  Include {
    Options {
      Signature = MD5
    }
  Plugin = oracle: "mode=rman"
  File = /MW_HOME/user_projects/domains/domain_name/*
  File = /ORACLE_INSTANCE/*
  }
}

Configure um trabalho de backup do Bacula com todas as diretivas de execução do script ClientRun e com o FileSet criado. Forneça o Schedule desejado. Recarregue o Diretor do Bacula para aplicar as mudanças.

Execute um backup ad hoc e restaure o trabalho para fins de teste.

Restore

Consulte a documentação oficial do Oracle Disaster Recovery disponível em https://docs.oracle.com/cd/E15523_01/core.1111/e10064/backup.htm#ASTDA394.

Use o Bacula para restaurar as pastas e o banco de dados necessários.

Referências

  1. https://docs.oracle.com/cd/E15523_01/core.1111/e10064/backup.htm#ASTDA193
  2. https://docs.oracle.com/cd/E17904_01/install.1111/b32474/concepts.htm#ASINS264
  3. http://sqltech.cl/doc/oas11gR1/web.1111/e13715/config_wls.htm


Ferramenta de Backup do Oracle VM 3.4 e Bacula

3 de Novembro de 2018, 15:05, por Bacula Backup Brasil - 0sem comentários ainda

Visão Geral

Sabe-se que o backup atual Oracle VM (OVM) não é muito prático e deve ser reformulado em breve, então o Enterprise Bacula ainda não possui um plugin específico para esta tecnologia. No entanto, existe uma opção fornecida pelo próprio Oracle que pode ser usada com todas as versões do Bacula.

Essa técnica é sugerida pela Oracle em https://blogs.oracle.com/scoter/guest-hot-backup-ovm-34. Ele consiste em usar os scripts ovm-bkp v1.0 - Backup Utilities para Oracle VM 3.4 para realizar backups consistentes de VMs de um armazenamento OVM para outro. O backup ativo obtido por esse script é sempre um backup consistente da falha da VM em execução; se a VM possuir também discos físicos, o backup conterá apenas discos virtuais e, portanto, será necessária uma intervenção manual para que ela seja inicializada corretamente.

A ideia do script é ter backups de baixa retenção disponíveis em um repositório de armazenamento OVM (ex.: dias) e retenção média/longa em um armazenamento de backup com backup via plugin NDMP (ex.: semanas) do equipamento NAS que hospeda os armazenamentos OVM.

A retenção pode ser gerenciada entre as duas soluções (script HotCloneVm e NDMP), em que:

  • O HotCloneVm.sh gerenciará a baixa retenção no Repositório NFS. Ambas as abordagens Incremental e Full estão disponíveis com "SNAP" e "FULL"
  • O backup do NAS por NDMP gerenciará a retenção de longo prazo fornecida por um software de backup e outro tipo de mídia de backup. Ambas as abordagens Incremental e Completa podem ser gerenciadas pelo software de backup.

Ter a baixa retenção no segundo storage permitirá, além disso, ter um ponto de restauração rápido para:

  • Restauração de arquivo único VM ou uma lista delas. Basta iniciar a VM, que reside no repositório NFS, com um endereço IP temporário e obter os arquivos necessários.
  • Restauração da VM inteira. Pare a VM original e inicie um snapshot e/ou Clone/Mova o backup COMPLETO do storage.

Outra opção, disponível apenas na versão 3.4, é ter backups no formato OVA; essa opção permitirá ter backups que podem ser exportados/importados para os Pools do Oracle VM; por exemplo, você pode usar o OVA exportado para ter a mesma VM disponível em um Oracle VM Pool diferente (como um clone do Production to Development) ou no seu laptop/desktop usando o VirtualBox.

Conforme ilustrado na Figura 1, esta é a técnica de backup proposta.

Figura 1. Backup do Oracle VM Usando a Ferramenta ovm-bkp v1.0 e o software de backup com plug-in NDMP [1]

Instalação

O "ovm-bkp v1.0.1" é baseado em um RPM para Oracle Linux 6 e 7 e precisa ser instalado no Oracle VM Manager. Instale o RPM como:

rpm -ivh http://download.oracle.com/otn-pub/otn_software/ovm/ovm-bkp-1.0.1-20180510.noarch.rpm

Se você precisar baixá-lo, esta é a URL do pacote RPM: http://download.oracle.com/otn-pub/otn_software/ovm/ovm-bkp-1.0.1-20180510.noarch.rpm.

Há também um guia oficial para o script, que está disponível em https://www.oracle.com/technetwork/server-storage/vm/ovm-bkp-userguide-v1-4394642.pdf.

Primeiro de tudo você precisa configurar uma troca de chave ssh para obter um sistema auto-autenticável:

[scoter@ovmm: ~/Documents/OVM_34/HotCloneVm_0.7a]# ./SetupSsh.sh
#####################################################################################
You have to specify <guest id> or <guest name>:
Use SetupSsh.sh <Oracle VM Manager host> <Linux oracle user password> <Oracle VM Manager Password> 
Example:
SetupSsh.sh ovm-mgr.oracle.local oracle Welcome1
##########################################################################################
[scoter@ovmm: ~/Documents/OVM_34/HotCloneVm_0.7a]#

Observação: se você já configurou a troca de chaves ssh vs OVMCli, não precisa executar o script "SetupSsh.sh".

Para identificar a sintaxe do script de backup a ser usada, você só precisa executar o comando sem nenhuma opção:

[scoter@myhost: ~/]# ./HotCloneVm.sh
#####################################################################################
 You have to specify <guest id> or <guest name>:
 Use HotCloneVm.sh <Oracle VM Manager password> <Oracle VM Manager host> <guest name> <Oracle VM Server Pool> <target Repository> <Backup Retention> <backup_type>
 <backup_type> options are (no case-sensitive):
        - FULL => HotClone will create a full vdisk backup on a further repository
        - SNAP => HotClone will create an ocfs2 reference-link snapshot of the vm on the same repository
        - OVA  => HotClone will create a packaged OVA file on a further repository - available from 3.4
Example:
 HotCloneVm.sh Welcome1 ovm-mgr.local vmdb01 myPool repotarget 8d FULL (retention will be 8 days)
 HotCloneVm.sh Welcome1 ovm-mgr.local vmdb01 myPool repotarget d8 SNAP (retention will be 8 days)
 HotCloneVm.sh Welcome1 ovm-mgr.local vmdb01 myPool repotarget 8c OVA  (retention will be 8 copies)
 HotCloneVm.sh Welcome1 ovm-mgr.local vmdb01 myPool repotarget c8 FULL (retention will be 8 copies)
##########################################################################################

Agende o backup regular das VMs desejadas usando o cron ou instale o Bacula Client na mesma máquina e configure um script Client Run Before Job para programar a execução recorrente das VMs.

Após a execução do HotCloneVm.sh, um backup NDMP do volume NAS deve ser executado. Se você não tiver o plug-in Enterprise Bacula NDMP (que é mais rápido e mais confiável), um acesso simultâneo ao armazenamento NFS/iSCSI pode ser usado para ler clones de VM, lembrando que o acesso iSCSI simultâneo é muito perigoso e deve ser executado de uma forma só de leitura.

Referências

[1] https://blogs.oracle.com/scoter/guest-hot-backup-ovm-34