Plugin Banco de Dados Oracle Bacula Enterprise – Guia Rápido

Este guia rápido apresenta várias técnicas e estratégias para backup de Bancos de Dados Oracle com o Bacula Enterprise.

O plugin suporta atualmente os seguintes métodos: Stream de Dumps para o Bacula, Point In Time Recovery (PITR) integrado ao RMAN e Stream RMAN-SBT.

Instalação

O plug-in do Oracle está disponível como um pacote Bacula Enterprise para a grande maioria das plataformas suportadas pelos bancos Oracle. (para obtê-los, fale conosco). Exemplo:

bacula-enterprise-oracle-10.0.0-1.rh7.i586.rpm

Você precisa instalar este plug-in no cliente em que seu banco de dados Oracle reside, junto com o Cliente do Bacula Enterprise.

O plug-in assume que suas instâncias estão listadas em /etc/oratab e que o usuário “oracle” do sistema operacional é membro do grupo DBA (normalmente “dba” ou “oracle”).

Configuração

Se seu usuário Oracle do sitema operacional não for “oracle”, você pode precisar definir manualmente as permissões no seguinte diretório e certificar-se de que suas alterações ainda estão em vigor após cada atualização do Plugin Bacula Enterprise para Oracle.

ls - ld /opt/bacula/oracle
drwxrwx - - - 13 dba raiz 4096 Mar 28 14:04 /opt/bacula/oracle
# ou
chown -R oracle:dba /opt/bacula/oracle/

Todos os métodos de backup do plugin requerem que o Oracle DB tenha a Flash Recovery Area (FRA) habilitada, conforme: https://docs.oracle.com/database/121/ADMQS/GUID-D6A541BF-A878-4B45-AFAC-1E921554731E.htm

Exemplo (sqlplus):

ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '/mnt/fra';

O diretório deve existir e ter permissões para o usuário oracle do sistema operacional.

Tenha certeza que seu /etc/oratab está corretamente configurado, pois ele proverá informações para o plugin do Bacula. Importante também que o listener do Oracle esteja ativo:

lsnrctl start
lsnrctl status

Método Stream de Dumps

Para este método os backups diferenciais e incrementais são apenas possíveis através do uso da Deduplicação Global do Bacula Enterprise. É mais utilizado por pequenas e médias bases que não precisam de PITR.

Para usar o sudo para o comando de dump, você precisa comentar a seguinte linha (# no início) do arquivo /etc/sudoers com o comando visudo:

Defaults requiretty

A configuração do plugin para backup de todas as bases neste modo (as instâncias serão detectadas usando informações em /etc/oratab), pode ser feita graficamente pelo bweb (Figura 1) ou via texto, na Edição de Plugins do FileSet do Bacula:

Plugin Banco de Dados Oracle Bacula Enterprise – Guia Rápido 1

Figura 1. Configurador de Plugins do Bweb.

FileSet {
  Name = oracle_dump_set
  Include {
    Options {
      Signature = MD5
    }
  Plugin = oracle
  }
}

Você também pode especificar os valores de ORACLE_HOME e ORACLE_SID caso seja necessário. Ex.: Plugin = oracle ORACLE_HOME=/ora sid=PROD.

O exemplo a seguir faz o backup de duas bases específicadas, filtradas pelo nome:

FileSet {
  Name = oracle_dump_set
  Include {
    Options {
      Signature = MD5
    }
    Plugin = "oracle: schema=heitordb"
    Plugin = "oracle: schema=xptodb"
  }
}

Neste exemplo, o plug-in do Oracle usará a conta do “rob” do sistema operacional para executar um dump de backup da tabela chamada “temp”. O Oracle Plugin espera que a conta “rob” seja membro do grupo dba do sistema operacional para acessar diretamente o Oracle usando “/ as sysdba”.

FileSet {
  Name = oracle_dump_set
  Include {
    Options {
      Signature = MD5
    }
    Plugin = "oracle: unix_user=rob dump_opt="TABLES=temp""
  }
}

Essas são todas as opções suportadas pelo plugin no modo Dump:

Opção Descrição Default Exemplo
mode Usa o modo dump do Plugin Bacula dump mode=rman
dump_opt Opções passadas para o comando export (exp) CONSISTENT=YES
GRANTS=YES
dump_opt=””
unix_user Usuário Oracle do sistema operacional oracle unix_user=heitor
oracle_user Usuário do banco Oracle para os comandos oracle oracle_user=”hfaria/guru”
use_sudo Usar sudo para executar os comandos Oracle (quando não root) use_sudo
compress Usa compressão do comando exp do Oracle (Y/N). Y compress=N
schema Fará o backup dos schemas que casem com este nome ou coringas schema=PROD*
instance Fará o backup dos instances (SID) que casem com este nome ou coringas instance=PROD*
sid SID para backup sid=PROD
ORACLE_HOME ORACLE_HOME para usar com o SID ORACLE_HOME=/ora

Para testar o backup, o comando estimate do bconsole pode ser utilizado, mostrando linhas começando por @ (ex.: /@ORACLE/) que indicam conteúdo backupeado por plugin do Bacula:

* estimate listing job=oracle-test
Connecting to Client 127.0.0.1-fd at 127.0.0.1:9102
-rw-r--r--  1 oracle dba  1949 2012-06-06 21:55:20  /@ORACLE/XE/users.sql
-rw-r--r--  1 oracle dba  5240 2012-06-06 21:55:22  /@ORACLE/XE/FLOWS/user.sql
-rw-r--r--  1 oracle dba    -1 2012-06-06 21:55:22  /@ORACLE/XE/FLOWS/user.sql
...
2000 OK estimate files=25 bytes=36,643

Observação: os seguintes schemas reservados do Oracle são excluídos do backup padrão: ‘DBSNMP’, ‘CTXSYS’, ‘DIP’, ‘XDB’, ‘MDSYS’, ‘ANONYMOUS’, ‘XS$NULL’, ‘HR’, ‘PM’, ‘SH’, ‘IX’, ‘OE’.

Restauração Dump

Para restaurar um backup realizado, selecione o arquivo user.sql para restaurar apenas os usuários ou user.sql e o data.sql para restaurar um banco de dados. O where no local de origem (where=/) faz o Bacula tentar restaurar os dados diretamente no serviço Oracle, ou a especificação de um novo nome faz criar um banco renomeado, preferencialmente em letras maiúsculas. Exemplo:

* restore where=BACULAOLD

Se especificar outro diretório no where, os dumps serão restaurados para arquivo em disco da máquina do cliente, por default.

Como mostrado na Figura 2, a seleção dos dados pode ser feita diretamente pela Interface Gráfica Bweb ou pelo bconsole.

Plugin Banco de Dados Oracle Bacula Enterprise – Guia Rápido 2

Figura 2. Seleção de dumps do Oracle pelo bweb.

Método RMAN-PITR

Neste método os backups diferenciais e incrementais são suportados, mas os mesmos ocupam espaço em disco na máquina do serviço de bancos do Oracle. Se isso for um problema, o método RMAN-SBT é mais adequado.

Para usar o modo de backup do RMAN, o banco de dados deve estar no ARCHIVELOG modo. Para verificar como seu banco de dados está configurado, você pode usar o seguinte SQL comando:

oracle$ sqlplus / as sysdba
SQL > SELECT LOG_MODE FROM SYS.V$DATABASE;
LOG_MODE
-----------
ARCHIVELOG

Para ativar o modo de arquivo do seu banco de dados, você pode usar o comando ALTER DATABASE ARCHIVELOG em um estado não aberto, como SYSDBA. Exemplo:

  • Pare o banco de dados com o SHUTDOWN
  • Faça um backup do banco
  • No sqlplus: ALTER SYSTEM SET log_archive_dest_1='LOCATION=/mnt/archive';
    • OU: Edite seu arquivo init[SID].ora para configurar o destino do log de arquivamento. Ex.: LOG_ARCHIVE_DEST_1='LOCATION=/mnt/archive'
  • Inicie o seu banco de dados sem abri-lo com o comando STARTUP MOUNT
  • Altere o modo de arquivo com ALTER DATABASE ARCHIVELOG; e abra com o ALTER DATABASE OPEN;
  • Pare o banco de dados com o SHUTDOWN IMMEDIATE
  • Faça o backup do banco de dados novamente, porque a alteração do ARCHIVELOG atualizará os arquivos de controle e fará backups antigos inutilizáveis

O Bacula Enterprise Oracle Plugin criará o conjunto de backup do RMAN em um subdiretório do destino de log de archive definido no arquivo init[SID].ora.

O recurso de controle de alterações do RMAN para backups incrementais melhora o desempenho do backup incremental, registrando blocos alterados em um arquivo de rastreamento. Se o controle de alterações estiver ativado, o RMAN usará o arquivo de controle de alterações para identificar blocos alterados para backup incremental, evitando assim a necessidade de scanear todos os blocos dos datafiles.

O comando SQL a seguir, executado como sysdba, permite ativar o rastreamento de alterações. e o “/caminho/arquivo” como destino do log de atividades (o arquivo deve estar em um diretório válido no qual o usuário do Oracle possa gravar).

SQL > SHUTDOWN IMMEDIATE;
SQL > STARTUP MOUNT;
SQL > ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/caminho/arquivo'
SQL > ALTER DATABASE OPEN;

Depois de ativar o controle de alterações, o primeiro backup completo ainda precisa varrer todo o arquivo de dados, pois o arquivo de controle de alterações ainda não reflete o status dos blocos. Os incrementais subsequentes, já terão o benefício do arquivo de controle.

Ao usar o modo RMAN do Bacula Enterprise Oracle Plugin, cada trabalho do Bacula executará o RMAN para gerar um conjunto de backup. Aconselhamos configurar o RMAN para excluir arquivos antigos após algum período de tempo. Embora isto possa ser feito logo após o final do backup, aconselhamos que você mantenha os dados no disco um pouco mais para evitar lacunas no seu recurso de recuperação point-in-time. O seguinte comando irá configurar o período de retenção do Oracle de 7 dias, o que deve ser suficiente, desde que você faça algum tipo de backup pelo menos uma vez a cada 7 dias. De igual sorte, é recomendável também reter um par de cópias do archive log para facilitar a restauração local e garantir todos os meios de restauração em pontos do tempo. No shell:

rman target /
RMAN > CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN > CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 2;

A configuração do Job e do FileSet podem ser feitas pela interface gráfica Bweb, ou ainda nos arquivos de configuração do Bacula, via texto. A opção Accurate (Precisão) do Job deve estar habilitada, e modo do Plugin mode=rman setado. Exemplo:

Job {
  Name = "Oracle-RMAN"
  Client = laptop1-fd
  FileSet = FS_oracle
  Accurate = yes
  ...
}

FileSet {
  Name = FS_oracle
  Include {
    Options {
    Signature = MD5
  }
  Plugin = "oracle: mode=rman"
  }
}

As seguinte opções podem ser modificadas utilizando o método RMAN-PITR:

Opção Descrição Default Exemplo
mode Usa o modo PITR do Plugin Bacula dump mode=rman
oracle_user Usuário Oracle do sistema operacional oracle oracle_user=oracle10
sid SID do Oracle sid=XE
ORACLE_SID SID do Oracle ORACLE_SID=XE
ORACLE_HOME Oracle Home ORARCLE_HOME=/opt/oracle/…
verbose Mostra saída do RMAN na log do job 0 verbose=1
sbt Usar o SBT no script RMAN sbt
ctrlfile Diretório dos arquivos de controle quando usando SBT ctrlfile=/tmp/oracle

Os scripts do RMAN podem ser customizados na máquina do cliente e estão em /opt/bacula/etc:

  • oracle_before_full_backup.rman
  • oracle_before_incr_backup.rman
  • oracle_before_diff_backup.rman

Exemplo:

% cat /opt/bacula/etc/oracle_before_full_backup.rman
BACKUP ARCHIVELOG FROM TIME 'SYSDATE-2';

Se você quiser excluir tablespaces do backup, poderá usar o seguinte script RMAN.

% cat /opt/bacula/etc/oracle_before_full_backup.rman
CONFIGURE EXCLUDE FOR TABLESPACE cwmlite;
CONFIGURE EXCLUDE FOR TABLESPACE example;

Restauração RMAN-PITR

Usando o broker RMAN do bweb

Depois de restaurar o conteúdo do backup do RMAN ao seu sistema (Figura 3) com o comando bconsole restore ou com o BAT/BWeb, o Plugin Oracle permite que você automatize algumas operações do RMAN por meio de um broker chamado bs_oracle_restore.pl. Este script é orientado por menu e permite que você:

  • Restaure o banco de dados original para um determinado point-in-time
  • Clone seu banco de dados, estando ou não disponível

Plugin Banco de Dados Oracle Bacula Enterprise – Guia Rápido 3Figura 3. Broker bweb RMAN para restauração de bancos de dados

Depois de restaurar o conteúdo do backup em um determinado ponto no tempo, você deve executar o script bs_oracle_restore.pl com o arquivo restore_query_file.txt como argumento.

Note que você só precisa restaurar arquivos que não estão no seu sistema, pois o RMAN pode usar os arquivos que ainda estão na área de recuperação flash para executar a restauração.

No próximo exemplo, você encontrará o arquivo chamado restore_query_file.txt no diretório onde você restaurou os arquivos com o Bacula. Se o seu backup estava em /u01/flash/Test.2012-06-06_12-00-00, e você restaurou usando where=/tmp/bacula-restores, o arquivo restore_query_file.txt deve estar em
/tmp/bacula-restores/u01/flash/Test.2012-06-06_12-00-00/restore_query_file.txt.

chown oracle -R /tmp/bacula-restores/
su - oracle
/opt/bacula/scripts/bs_oracle_restore.pl /path/to/restore_query_file.txt
Bacula Enterprise Oracle Restore Tool 0.9
Do you want to:
1- restore the original database

O script de restauração do Bacula Enterprise Oracle pode ser chamado com a opção –testing ter acesso para restaurar os procedimentos que estão atualmente em fase de teste pela Bacula systems. Se você usou algum desses recursos, gostaríamos de receber feedback.

# /opt/bacula/bin/bs_oracle_restore.pl --testing /path/to/restore_query_file.txt
Bacula Enterprise Oracle Restore Tool 0.9
Do you want to:
1- restore the original database
The following restore modes are available but still being beta tested
2- restore the database into a clone
3- restore the database to a different location

O RMAN pode executar a recuperação de todo o banco de dados para um horário passado especificado, SCN ou número de sequência do log. Esse tipo de recuperação é às vezes chamado de recuperação incompleta porque não usa completamente todas as informações de redo disponíveis.
O broker de restauração bs_oracle_restore.pl detectará os arquivos restaurados com parâmetros do Bacula Enterprise que você pode usar durante a restauração.

Do you want to:
1- restore to a certain point-in-time
2- restore to a certain scn
Choose restore mode (1-2): 1

Getting the range of recoverable backups
Please input the time to which you want to restore
between 2012-06-05_15:17:16 and 2012-06-05_15:36:09
(YYYY-MM-DD_HH24:MI:SS): 2012-06-05_15:35:00
INFO: Mounting database in mount state
The database is in open state,
do you really want to shutdown the database now (y/N): y
INFO: Call RMAN to restore the database
Opening database
BE CAREFUL, we are about to open the database in RESETLOGS mode.
Do you want to continue ? (no will exit) (y/N): y
Opening database resetlogs

O bs_oracle_restore.pl verificará o diretório de backup e detectará os arquivos para fazer a restauuração. No final do processo de restauração, o banco de dados deve estar no estado “OPEN”. O bs_oracle_restore.pl irá realizar todos os passos necessários para recuperar o banco de dados.
Se você estiver familiarizado com o RMAN, poderá executar essas etapas manualmente.

Em alguns casos, se os conjuntos de backup do RMAN ainda estiverem presentes no disco, talvez você queira ignorar o Bacula restaura e executar diretamente o script bs_oracle_restore.pl. Por isso, basta usar a opção -D e apontar para a área de recuperação de flashback onde estão localizados
arquivos gerados durante o último backup.

Restaurando Diretamente com o RMAN

Depois de restaurar seus arquivos com o Bacula, você precisa verificar o diretório de backup para incluir arquivos no catálogo do RMAN.

RMAN> CATALOG START WITH ’/path/to/restore’ NOPROMPT;

Então, você deve ter todos os backups registrados e você pode listá-los com:

RMAN> LIST BACKUP SUMMARY;

List of Backups
===============
Key     TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
------- -- -- - ----------- --------------- ------- ------- ---------- ---
458     B  0  A DISK        12-JUN-16       1       1       YES        TAG20120612   
459     B  A  A DISK        13-JUN-16       1       1       YES        TAG20120613
461     B  A  A DISK        14-JUN-16       1       1       YES        TAG20120614
462     B  1  A DISK        15-JUN-16       1       1       YES        TAG20120615
...

Observe que o LIST BACKUP pode exibir informações sobre objetos específicos, como:

  • Archivelogs
  • Datafiles
  • Controlfile
  • etc.

Para iniciar o processo de restauração, o banco de dados não deve estar aberto.

RMAN> shutdown immediate;
RMAN> startup mount;

Então, você pode definir a cláusula UNTIL e iniciar sua recuperação.

RMAN> RUN {
2> RESTORE DATAFILE 1;
3> RECOVER DATAFILE 1;
3> }
Starting restore at 15-JUN-12
using channel ORA_DISK_1
...

Método Stream RMAN-SBT

Esse método permite o backup das bases do Oracle diretamente para o Storage do Bacula.

Também é necessário configurar o modo de archive, como visto no tópico anterior (RMAN-PITR).

Lado do Cliente

Uma vez que o plugin e cliente do Bacula estão instalados, o arquivo libobk.so estará presente em /opt/bacula/lib.

Execute o seguinte script para automaticamente adicionar um link para $ORACLE_HOME/lib para o libobk.so em /opt/bacula/lib:

/opt/bacula/scripts/install-sbt-libobk.sh install

Reinicie as instâncias do Oracle. Vamos testar este acesso mais adiante.

Ao executar um backup ou uma restauração do RMAN, o mesmo precisará entrar em contato Bacula Enterprise Director para obter informações sobre arquivos e volumes, ou executar backup e restaurar trabalhos. Essa comunicação requer o bconsole do Bacula instalado na máquina que hospeda o Oracle, cliente do backup. Normalmente ele já vem instalado junto com o pacote do cliente. Copie as configurações de console para serem usadas pelo plugin. Exemplo:

cp /opt/bacula/bin/bconsole /opt/bacula/oracle
cp /opt/bacula/etc/bconsole.conf /opt/bacula/oracle
chown oracle:dba /opt/bacula/oracle/bconsole*
chmod go-rxw /opt/bacula/oracle/bconsole*

Você pode configurar o arquivo /opt/bacula/oracle/bconsole.conf no cliente, da mesma maneira como está funcionando no servidor Bacula, com acesso administrador anônimo irrestrito (basta editar e preencher o nome, endereço e senha console do Director). Se quiser oferecer uma maior segurança, pode limitar os direitos de acesso do bconsole apenas para os comandos necessários pelo plugin Oracle, usando um usuário específico para acessar o Bacula por console e definindo uma senha, por exemplo:

Director {
   Name = nome_director-dir
   DIRport = 9101
   Address = endereço_rede
   Password = "sem_senha" # propositalmente. Usuários restritos usam a senha abaixo
}

Console {
   Name = oracle
   Password = "senha_console_oracle"
}

Aproveite também para configurar no cliente as configurações do RMAN para o job do Bacula, criando um arquivo sbt.conf e informando os nomes do cliente e do job EXATAMENTE como pretende criar depois no Director (bweb):

# cat /opt/bacula/oracle/sbt.conf
client=oracle-fd
job=OracleBackup
bconsole="/opt/bacula/oracle/bconsole -n -c /opt/bacula/oracle/bconsole.conf"

Muitas opções diferentes são suportadas no arquivo sbt.conf, como: “restoreclient”, “level” etc. Elas podem ser usados para executar restaurações em um host alternativo e para alterar o respectivo nível de “Job” de backup no Bacula. Para definir esses valores diretamente no script de backup RMAN, é possível, como no exemplo a seguir.

SEND 'level=Differential';

Consulte a documentação oficial da Bacula Systems para uma lista completa de opções.

Lado do Director

Passando para a máquina do Director (ex.: bweb), vamos criar a console com o usuário oracle do Bacula, caso tenha optado pelo acesso restrito, amarrar o Cliente, criar um FileSet e Job.

Exemplo de configuração de acesso Console no Director (pode ser criada pelo bweb) – substitua o nome do Cliente e do Job pelos nomes:

Console {
  Name = oracle
  Password = "pass"
  CommandACL = .bvfs_lsfiles, .bvfs_get_volumes, use, .bvfs_get_jobids, wait, .bvfs_restore, .bvfs_cleanup, restore, run, gui, .jobs, quit, show, status
  ClientACL = oracle-fd
  JobACL = BackupOracle, RestoreJob
  CatalogACL = *all*
  StorageACL = *all*
  FileSetACL = *all*
  PoolACL = *all*
  WhereACL = /
  DirectoryAcl = *all*
  UserIdAcl = *all*
}

Amarre/crie uma entrada Client com o endereço e senha do cliente Bacula da máquina Oracle, usando o mesmo nome de cliente definido no sbt.conf.

Para a configuração do FileSet, especifique o uso do modo rman-sbt:

FileSet {
  Name = SBT-FileSet
  Include {
    Options {
  Signature = MD5
  }
  Plugin = oracle-sbt
  }
}

As opções para a chamada FileSet do plugin são essas:

Opção Descrição Default Exemplo
unix_user Usuário Oracle do sistema operacional oracle unix_user=heitor
ctrlfile Caminho para o arquivo de controle do Plugin e RMAN /opt/bacula/oracle ctrlfile=/tmp/base

Crie um novo Job de backup, utilizando o FileSet e Clients criados e com o mesmo nome de Job definido no arquivo sbt.conf do cliente. Configure também MaximumConcurrentJobs=5 ou mais, para o backup simultâneo de vários canais do rman.

Teste

Para testar a o uso da biblioteca libobk, voltando à máquina cliente do backup, execute o RMAN com o usuário oracle do sistema, devendo haver uma saída similar:

RMAN > allocate channel for maintenance type 'SBT_TAPE';
using target database control file instead of recovery catalog
allocated channel: ORA_MAINT_SBT_TAPE_1
channel ORA_MAINT_SBT_TAPE_1: SID=42 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_1: Bacula Enterprise Oracle SBT Plugin 1.0.0.2

Para testar as configurações feitas no sbt.conf, execute o comando no shell do cliente:

/opt/bacula/scripts/install-sbt-libobk.sh test
1000 OK: director-dir Version : 10.0.0
INFO: Connection to the Director OK
INFO: Connection from the Director to the Client OK
INFO: Plugin installed correctly
INFO: Job found on the Director
INFO: FileSet configured on the Director

Para executar um job de backups de teste, use o seguinte exemplo que iniciará 2 tarefas do Bacula em paralelo e o RMAN enviará os dados para eles usando algum tipo de round robbin. Se o RMAN não puder contatar Bacula para um ou mais canais, o RMAN enviará automaticamente os dados para o canal disponível. Isso significa que, se o seu armazenamento ou o diretor estiver ocupado pelo número de dispositivos ou pela configuração do Bacula de Máximo de Trabalhos Simultâneos), o RMAN gerenciará a situação automaticamente.

Para versões mais avançadas do Oracle DB (ex.: Enterprise) é possível definir inúmeros canais para multiplexação:

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
  ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
  BACKUP INCREMENTAL LEVEL 0 DATABASE plus archivelog;
}

Exemplo de backup Full:

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
  ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
  BACKUP DATABASE;
}

Para a versão Standard do Oracle só é possível iniciar um canal de backup ou restore de cada vez. Por exemplo:

RUN {
  ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
  BACKUP INCREMENTAL LEVEL 0 DATABASE plus archivelog;
}

Também é possível usar tags durante o backup para facilitar a restauração posteriormente:

RUN {
 ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
 BACKUP DATABASE tag BACULA filesperset 5 KEEP UNTIL TIME '(SYSDATE+130)'  LOGS;
 release channel c1;
}

Os dados vão diretamente para o storage do Bacula, e o backup pode ser acompanhado pelas interfaces bweb, bconsole etc.

Agendamento

O início e agendamento dos Jobs de backup neste modo podem ser feitos podem ser feito pelo ORM, pelo dbms_scheduler ou por um script RMAN iniciado pelo Bacula. Ref.: http://www.dba-oracle.com/t_rman_scheduling_backup.htm

Também pode ser utilizado um script do RMAN chamado por um Job Admin do Bacula. Para exemplos de scripts, entre em contato conosco.

Cópia RMAN de Backups Locais em Disco para o Bacula-SBT

Ao invés de configurar um novo backup, é possível também simplesmente copiar backups em Disco já realizados pelo RMAN para o driver SBT. Exemplo de comando:

RMAN> BACKUP DEVICE TYPE sbt COPY OF DATABASE;

Mais exemplos em: https://docs.oracle.com/cd/B19306_01/backup.102/b14191/rcmbackp.htm#CEGBCHJA

Restauração RMAN-SBT

Para restaurar objetos com o RMAN, a conexão entre o RMAN e o Bacula deve estar funcional. Se houver recursos disponíveis, tudo será gerenciado pelo RMAN automaticamente. Você pode listar todos os backups com:

list backup summary;

Para restaurar por tempo:

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
RUN {
 ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
 ALLOCATE CHANNEL c2 DEVICE TYPE sbt;
 SET UNTIL TIME "to_date('2013-05-31_10:20:00','YYYY-MM-DD_HH24:MI:SS')";
 RESTORE DATABASE;
 RECOVER DATABASE;
}
ALTER DATABASE OPEN RESETLOGS;

Neste exemplo, o RMAN restaurará o banco de dados em um determinado momento definido pelo comando UNTIL. Mais informações podem ser encontradas na documentação do Oracle RMAN. http://docs.oracle.com/cd/B28359_01/server.111/b28294/rman.htm#i1024051

Exemplo de restauração usando tags:

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
RUN{ 
 ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
 restore tablespace users from tag 'BACULA'; 
}
ALTER DATABASE OPEN RESETLOGS;

Caso deseje realizar a restauração de um ou mais tablespaces objetos de drop, será necessário também restaurar o controlfile:

startup nomount;
RUN {
 ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
 SET UNTIL TIME "to_date('2018-12-26_17:05:00','YYYY-MM-DD_HH24:MI:SS')";
 restore controlfile from autobackup;
}

Em caso de problemas como “RMAN-06026: some targets not found – aborting restore” e “RMAN-06023: no backup or copy of datafile x found to restore”, você pode forçar uma atualização do catálogo do RMAN:

RUN {
 ALLOCATE CHANNEL c1 DEVICE TYPE sbt;
 send "update=force";
}

Outros exemplos de restauração pelo RMAN: https://docs.oracle.com/cd/B19306_01/backup.102/b14191/rcmrecov.htm#i1006746

Se você restaurar arquivos RMAN em um diretório local e a opção localdir estiver definida em sbt.conf, o plug-in do RMAN procurará o localdir antes de iniciar um Bacula.

Referências

Oracle Backup Using Bacula Enterprise Edition Plugin Whitepaper. http://baculaystems.com

Disponível em: pt-brPortuguêsenEnglish (Inglês)esEspañol (Espanhol)

Deixe uma resposta