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:
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.
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'
- OU: Edite seu arquivo
- 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 oALTER 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
Figura 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: PortuguêsEnglish (Inglês)Español (Espanhol)