Restaurando Backup Usando BConsole
Esse artigo destinasse a realizar uma restauração de um backup feito pelo Bacula de um cliente de nosso sistema. Usaremos o comando restore para realizar essa restauração em um cliente e um diretório diferente, normalmente a restauração ocorre no mesmo cliente que o backup foi realizado, porém, iremos disponibilizar essa restauração em um diretório a parte, onde o arquivo poderá ser usando para outros fins, como levantar uma base de teste, para analise de dados e etc…
Vale lembrar que podemos restaurar um backup diretamente do cliente que teve seu arquivo “backupiado”, mais esse será outro artigo.
Estando logado com perfil root no seu servidor Linux do Bacula vamos conectar na console do Bacula com o seguinte comando:
bconsole
Linux bacula 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright.
As seguintes mensagens serão exibidas
Connecting to Director bacula.cacula.com:9101 1000 OK: 102 bacula-dir Version: 7.4.4 (20 September 2016) Enter a period to cancel a command. *
Vamos evitar de digitar o asterisco já que é padrão do bconsole coloca-lo n inicio de cada comando.
O seguinte comando vai listar todos os comandos disponíveis no bconsole.
help
A seguinte lista de comandos do bconsole será exibida:
Command Description ======= =========== add Add media to a pool autodisplay Autodisplay console messages automount Automount after labe cancel Cancel a job create Create DB Pool from resource delete Delete volume, pool or job disable Disable a job, attributes batch process enable Enable a job, attributes batch process estimate Performs FileSet estimate, listing gives full listing exit Terminate Bconsole session gui Non-interactive gui mode help Print help on specific command label Label a tape list List objects from catalog llist Full or long list like list command messages Display pending messages memory Print current memory usage mount Mount storage prune Prune expired records from catalog purge Purge records from catalog quit Terminate Bconsole session query Query catalog restore Restore files relabel Relabel a tape release Release storage reload Reload conf file run Run a job restart Restart a job resume Resume a job status Report status stop Stop a job setdebug Sets debug level setbandwidth Sets bandwidth snapshot Handle snapshots setip Sets new client address -- if authorized show Show resource records sqlquery Use SQL to query catalog time Print current time trace Turn on/off trace to file truncate Truncate one or more Volumes unmount Unmount storage umount Umount - for old-time Unix guys, see unmount update Update volume, pool or stats use Use catalog xxx var Does variable expansion version Print Director version wait Wait until no jobs are running When at a prompt, entering a period cancels the command. You have messages. *
Na lista que é exibida, digitaremos o comando que suprira nossa de demanda, que nesse caso é comando restore já que o nosso objetivo é restaurar um backup.
restore
Novas mensagens serão exibidas com as opções para escolhermos como consultar os Jobs para restauralção.
Automatically selected Catalog: MyCatalog Using Catalog "MyCatalog" First you select one or more JobIds that contain files to be restored. You will be presented several methods of specifying the JobIds. Then you will be allowed to select which files from those JobIds are to be restored. To select the JobIds, you have the following choices: 1: List last 20 Jobs run (Lista os ultimos 20 jobs executados) 2: List Jobs where a given File is saved 3: Enter list of comma separated JobIds to select 4: Enter SQL list command 5: Select the most recent backup for a client 6: Select backup for a client before a specified time 7: Enter a list of files to restore 8: Enter a list of files to restore before a specified time 9: Find the JobIds of the most recent backup for a client 10: Find the JobIds for a backup for a client before a specified time 11: Enter a list of directories to restore for found JobIds 12: Select full restore to a specified Job date 13: Cancel Select item: (1-13):
Essas opções definam a forma que queremos consultar o Job a ser restaurado. Suponhamos que eu já tenha o ID do Job (1430310), com posse do ID podemos escolher a opção três que dará a opção de entrar com o Jobs a ser restaurado.
Select item: (1-13): 3
Na opção seguinte entraremos com o ID do Job a ser restaurado.
Enter JobId(s), comma separated, to restore: 1430310
Seremos notificados da escolha do Jobs mais a quantidade de arquivo a ser restaruiado.
You have selected the following JobId: 1430310 Building directory tree for JobId(s) 1430310 ... 2 files inserted into the tree.
You are now entering file selection mode where you add (mark) and remove (unmark) files to e restored. No files are initially added, unless you used the "all" keyword on the command line. Enter "done" to leave this mode.
Agora deveremos marcar o arquivo que queremos restaurar
Navegaremos até o arquivo que queremos restaurar para marcá-lo. Esse campo funciona como o terminal Linux. Em todo momento poderá usar o comando dir para listar e saberqua direotrio tem para acessar. E como o comando cd pode navegar nos diretórios.
O cwd is: / nos indica que estamos no diretória raiz do servidor
cwd is: /
Com o comando dir ou ls listamos os diretórios e arquivos no diretório atual, em nosso exemplo temos um único diretório no diretório Raiz E:/
$ dir ---------- 0 root root 0 1969-12-31 21:00:00 E:/
Vamos usar o comando cd para navegar entre os diretórios até encontrarmos o arquivo que queremos marcar para restaurar. Usando a tecla “Tab” Do teclado é possível completar o nome dos diretórios ou arquivos depois de entrar com as letras iniciais.
dir ---------- 0 root root 0 1969-12-31 21:00:00 E:/ $ ls E:/ $ cd D:/BACKUP/DATABASE/FULL/ dir -rwxrwxrwx 1 root root 14710888960 2021-08-22 01:02:07 D:/BACKUP/DATABASE/FULL/NOMEARQUIVO.BAK ls NOMEARQUIVO.BAK
Vamos marcar o arquivo para restauração com o comando mark
Mark NOMEARQUIVO.BAK
Se tudo ocorreu bem a seguinte mensagem deve ser exibida
1 file marked
Vamos sair do menu restore e retornar para o menu principal
$ done
Algumas informações quanto ao arquivo a ser restaurado serão exibidas.
Bootstrap records written to /var/lib/bacula/bacula-dir.restore.1.bsr The Job will require the following (*=>InChanger): Volume(s) Storage(s) SD Device(s) =========================================================================== MILLENIUM_WMS_FULL0002 ArquivoFULLWMS Device_SrvSqlBkp_FULLWMS Volumes marked with "*" are in the Autochanger. 1 file selected to be restored.
Nesse momento teremos a opção de realizar mais algumas configurações. Serão listados todos os cliente cadastrados no seu servidor Bacula.
Defined Clients: 1: bacula-fd 2: cliente01-fd 3: cliente02-fd 4: cliente03-fd Select the Client (1-4):
Iremos escolher o cliente bacula-fd que corresponde o número 1. Esse cliente é nosso servidor Bacula, onde restauraremos o backup.
Defined Clients: 1: bacula-fd 2: cliente01-fd 3: cliente02-fd 4: cliente03-fd Select the Client (1-4): 1
Após escolhe um cliente para restaurar o backup, as informações de como a restauração será processada serão exibidas.
Using Catalog "MyCatalog" Run Restore job JobName: Restore_Cacula Bootstrap: /var/lib/bacula/bacula-dir.restore.1.bsr Where: *None* Replace: Always FileSet: Full Set Backup Client: bacula-fd Restore Client: bacula-fd Storage: ArquivoFULLWMS When: 2021-07-28 12:02:31 Catalog: MyCatalog Priority: 10 Plugin Options: OK to run? (yes/mod/no): mod Parameters to modify: 1: Level 2: Storage 3: Job 4: FileSet 5: Restore Client 6: When 7: Priority 8: Bootstrap 9: Where 10: File Relocation 11: Replace 12: JobId 13: Plugin Options
Nesse momento podemos alterar as opções de restauração. No meu caso irei alterar o caminho que o arquivo será restaurado. Como escolhi o cliente do próprio servidor Bacula bacula-fd, teremos que escolher um caminho que esteja configurado nesse cliente. Para alterar o destino do restor iremos alterar o campo Where que está configurado para *None*.
Então vamos escolher a opção 9.
Select parameter to modify (1-13): 9
Entraremos com o caminho onde o backup será restaurado.
Please enter the full path prefix for restore (/ for none): mnt/share/srvsqlbkp/
Após clicar em Enter será exibida as configurações do restore com o devido ajustes.
Run Restore job JobName: Restore_Cacula Bootstrap: /var/lib/bacula/bacula-dir.restore.1.bsr Where: mnt/share/srvsqlbkp/ Replace: Always FileSet: Full Set Backup Client: bacula-fd Restore Client: bacula-fd Storage: ArquivoFULLWMS When: 2021-07-28 12:02:31 Catalog: MyCatalog Priority: 10 Plugin Options: OK to run? (yes/mod/no): yes Job queued. JobId=1431893 *
Agora é só aguardar o fim do restore, que dependerá do tamanho do arquivo. Para utilizá-lo navegue no diretório que restaurou os arquivos e boa sorte.
Na ultima linha temos o ID do Job que está executando a nossa restauração. Na fila do JOB poderemos acompanhar a evolução da nossa restauração do backup.
Se está gostando das postagens, se inscreva em nosso site para receber mais materiais de nosso blog, é grátis, você vai ser notificado quando novas postagens forem publicadas, recebendo assim mais conteúdos de qualidades e ainda vai dar aquela força pra nossa comunidade. E não esquece de compartilhar em suas redes sociais os botões estão no final desse página.
No final dessa página temos um campo onde você é bem vindo para deixar seus comentários. Pode ser uma opinião, elogios, críticas ou correções. Pode ficar a vontade para tirar suas dúvidas ou colaborar acrescentando algo que tenhamos deixado passar desapercebido.
Sua visita e feedback é muito importante para o nosso espaço.
Artigo irado, muito bom. Ajudou bastante.