Como Fazer Backup do Banco de Dados de Sistemas – SQL Server, Firebird, Mysql, PostgreSQL ou Oracle.

0
2829

Conheça o Guia Definitivo para você fazer backup do banco de dados do sistema de maneira segura, correta e que facilita na restauração.

Neste guia, você vai aprender como fazer o backup e a restaurar bancos de dados amplamente utilizados no mercado.

A abordagem utilizada é a que possibilite ter um backup com maior confiabilidade, que seja possível restaurar em outro servidor caso seja necessário e que seja o mais rápido possível para restaurar.

Seguindo estes critérios: segurança, confiabilidade e velocidade na restauração, vamos cobrir abaixo como fazer backup do banco de dados de sistemas, que utilizem cada um destes bancos de dados:

Backup SQL Server – Linha de Comando com sqlcmd

Backup Firebird – Utilizando Gbak Restore

Backup MySQL – Rodando mysql dump database

Backup PostgreSQL – Rodando pg_dump e pg_restore

Backup Oracle – RMAN e Outros Backups

Logo abaixo, você vai descobrir cada um destes métodos.

Em cada seção de cada banco de dados, vou dividir em três partes:

  1. Como funciona este banco de dados e maneiras de fazer backup
  2. O Backup na prática
  3. O Restore na prática

Vamos lá?


Backup SQL Server – Linha de Comando com sqlcmd

O Microsoft SQL Server surgiu no mercado no segundo semestre de 1988, após a Microsoft assinar um contrato com a Sybase para utilizar seu banco de dados Dataserver, onde a Sybase receberia royalties por seu produto. Em 1994, essa parceria acabou e em 1995, a Microsoft lançou oficialmente o Microsoft SQL Server 6.0.

Ele é um banco de dados relacional que possui três tipos de arquivos:

  • Primário: Contém informações de inicialização do banco de dados e aponta para os outros arquivos no banco de dados. Todo banco de dados possui um arquivo de dados primário. A extensão de nome de arquivo indicada para arquivos de dados primários é .mdf.
  • Secundário: Arquivos de dados opcionais definidos pelo usuário. Os dados podem ser distribuídos em vários discos, colocando cada arquivo em uma unidade de disco diferente. A extensão de nome de arquivo indicada para arquivos de dados secundários é .ndf. (Geralmente não vejo esses arquivos em nossos clientes).
  • Log de Transações: O log contém informações usadas para recuperar o banco de dados. Deve haver, no mínimo, um arquivo de log para cada banco de dados. A extensão de nome de arquivo indicada para arquivos de transação é .ldf.

Para fazermos um processo de backup e restauração íntegro, precisamos utilizar os comandos nativo do SQL Server: BACKUP DATABASE e RESTORE DATABASE.

O SQL Server Backup – Como fazer:

Para realizarmos o backup completo do SQL Server, é necessário primeiro identificarmos quais bases de dados são necessárias fazer o backup.

Com o WSpeed Backup, utilizamos uma rotina que identifica todos os bancos de dados, e realizamos automaticamente a seleção destes bancos para o backup, o que facilita o processo de backup.

Você pode rodar a consulta SQL abaixo para descobrir quais são os bancos de dados instalados no sistema:

SELECT name, state_desc, compatibility_level  FROM sys.databases;

Isso é apenas para você saber quais bancos de dados serão gerados pelo backup.

O SCRIPT DE BACKUP SQL SERVER LINHA DE COMANDO:

O script consiste de 2 arquivos:

  • o arquivo TodasBases.sql: a rotina SQL para rodar o backup para cada uma das bases de dados de dados, compactar e salvar em arquivo
  • o arquivo Backup_SQL_Completo.bat: que chama esse comando SQL através do utilitário sqlcmd.
Todasbases.sql:
DECLARE @path NVARCHAR(512) -- path for backup files  
-- specify database backup directory
SET @path = 'C:\WSPEED\Backup'


DECLARE @name NVARCHAR(256) -- database name  

DECLARE @fileName NVARCHAR(512) -- filename for backup  
DECLARE @dia NVARCHAR(512) -- filename for backup 
DECLARE @fileDate NVARCHAR(40) -- used for file name

 
 
-- specify filename format		
SELECT @fileDate = CONVERT(NVARCHAR(20),GETDATE(),112) 

SELECT @dia = DATENAME(WEEKDAY, GETDATE())
 
DECLARE db_cursor CURSOR READ_ONLY FOR  
SELECT name 
FROM master.sys.databases 
WHERE name NOT IN ('master','model','msdb','tempdb')  -- exclude these databases
AND state = 0 -- database is online
AND is_in_standby = 0 -- database is not read only for log shipping
 
OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   
 
WHILE @@FETCH_STATUS = 0   
BEGIN   
	
   SET @fileName = @path + @name + '_' + @dia + '.BAK'  
   BACKUP DATABASE @name TO DISK = @fileName WITH FORMAT, MEDIANAME = @name ,
      NAME =  @name , COMPRESSION 
 
   FETCH NEXT FROM db_cursor INTO @name   
END   
 
CLOSE db_cursor   
DEALLOCATE db_cursor

BackupSQL_Completo.bat:
@echo off

REM AJUSTAR CAMINHO DO BACKup NO ARQUIVO TodasBases.sql

set servidor=DESKTOP-2MI8P18
set login=login
set senha=senha


SQLCMD -S %servidor% -U %login% -P %senha% -b -i TodasBases.sql

:: Metodo sem senha
:: SQLCMD -S %servidor% -E -b -i TodasBases.sql


Note, que para você baixar e tudo simplesmente funcionar, você precisa definir 3 coisas para fazer os ajustes nos scripts:

  1. Local dos Scripts: após baixar, definir onde você vai salvar os scripts
  2. Destino do Backup: Definir onde será salvo o backup
  3. Login e Senha do Banco: criar e definir login e senha ou utilizar o usuário administrador e utilizar o acesso confiável sem senha.

Após estas definições, vamos lá com a mão na massa:

Após baixar, vou salvar os scripts dentro da pasta C:\WSPEED\Scripts

Destino do Backup WSpeed

Legenda: Scripts salvo no local definido

O meu destino do backup vai ser c:\WSPEED\BACKUP

Legenda: ajustado arquivo Todasbases.sql, linha x para o destino do backup

E vou utilizar o modo de conexão ao banco confiável utilizando usuário administrador local da máquina.

Resultado do Backup: Utilizando autenticação confiável, para com usuário e senha utilize o outro comando sqlcmd.

Feito isso, basta eu rodar o script Backup_SQL_Completo.bat.

Assim que vai ficar, depois de rodar o script.

Veja que apareceram os arquivos de backup na pasta c:\WSpeed\Backup.

Agora, vamos para a restauração:

SQL Server Restore Database – como fazer:

Agora que já temos um backup concluído, basta realizarmos a restauração do backup.

Diferente de alguns bancos de dados, se vamos restaurar em um outro sistema, ex: fizemos backup do SQL server na máquina A e queremos restaurar o backup na máquina B, precisamos no comando de restauração informar onde vai ser instalado os arquivos .mdf e .ldf, primários e de log de transações.

Para isso, no comando de restauração, você precisa apontar os destinos que vão ficar estes arquivos após a restauração.

Então, agora vamos realizar a restauração de 1 das bases que fizemos o backup no passo anterior.

Para realizar a restauração, o processo é mais simples que o de backup.

Vamos elaborar nosso comando SQL e nosso script, para depois dispará-lo

Para facilitar a sua vida, quebrei o comando em variáveis para você apenas substituir, sem correr o risco de quebrar o comando.

:: Informe nome do arquivo de backup
set ARQUIVOBACKUPDB=C:\WSPEED\BACKUP\PR34-Sexta-feira.BAK
:: Informe nome da base de dados
set NOMEBASE=PR34
:: Informe nome da base como aparece no banco de dados
set NOMEBASENODB=DADP
:: Informe caminho onde será criado os .mdf e .ldf
set RESTORESQLPATH=C:\SQLSERVER\
:: Informe o nome do servidor -> voce pode obter pelo comando cmd hostname
set servidor=DESKTOP-2MI8P18
:: Login e senha se for utilizado metodo de conexao via login e senha
set login=rm
set senha=rm

set restorecomando=RESTORE DATABASE %NOMEBASE% FROM DISK = '%ARQUIVOBACKUPDB%' 	WITH MOVE '%NOMEBASENODB%' TO '%RESTORESQLPATH%%NOMEBASE%restore.mdf',  MOVE '%NOMEBASENODB%_log' TO '%RESTORESQLPATH%%NOMEBASE%_logrestore.ldf'

:: Comando sem informar login e senha
SQLCMD -S %servidor% -Q %restorecomando%

:: Comando informando login e senha (descomente e comente acima para utilizar)
:: SQLCMD -S %servidor% -U %login% -P %senha% -Q %restorecomando%


Copie e cole o conteúdo acima num arquivo .bat, faça edição das linhs 1 – 10, e pronto.

Rode o comando e você terá seu SQL Server Restore Database finalizado.

Veja como rodou o meu:

Pronto.

Se você tiver alguma dúvida, comente abaixo para te ajudar.

Vamos agora para o próximo banco de dados?


Backup Firebird – Utilizando Gbak Restore

O FireBird é um banco de dados de Código Livre cuja primeira versão foi o Interbase® 6.0 de Julho de 2000, desenvolvido pela Borland – mesma fabricante do Delphi.

Diferente do SQL Server, o Firebird utiliza apenas 1 arquivo principal que geralmente tem a extensão .fdb ou .gdb.

A atual versão do Firebird é a 4.0, existe também a versão 3.0, porém os bancos de dados que mais vejo fornecedores de sistema utilizar, é o Firebird 2.5.

Existem duas ferramentas bastante conhecidas para fazer backup:

  • gbak
  • nbackup.

Neste guia, vamos focar em utilizar a ferramenta gbak, pois já tivemos alguns problemas com a ferramenta nbackup.

O ponto positivo da nbackup é que é possível fazer o backup firebird mesmo com o banco de dados online, no entanto, se por algum motivo o backup pára, é necessário uma ação manual, pois se não o banco de dados vai ficar parado, e vai ser gerados deltas (apenas as mudanças) infinitamente. Terrível. Por isso, vamos focar no gbak.

Vamos então aprender o formato simplificado de backup com o Firebird? 

Backup Firebird – Usando o Gbak e o Gfix

Para realizarmos backup completo, seguro, rápido e garantido com o Firebird, é necessário pará-lo por alguns segundos para realizar sua cópia.

Muitos administradores de sistema derrubam o serviço do banco de dados Firebird para fazer essa tarefa, por não terem o conhecimento dos comandos corretos para fazer isso.

Antigamente, em nossas rotinas de backup Firebird, rodavamos todas as melhorias enquanto o banco estava em offline, mas isso não era muito eficiente.

Na WSpeed, utilizamos uma rotina onde são feitos diversos processos adicionais no backup firebird, como teste de restore na própria rotina, limpeza do banco, removendo lixo, e outras coisas para otimizar o banco já no processo de backup.

Desta rotina, criamos uma nova rotina simplificada que deixa o banco parado pelo mínimo de tempo possível, geralmente poucos minutos.

Na rotina que você vai ver abaixo, ela é responsável por:

  • Criar a estrutura de backup
  • Colocar o banco firebird em modo offline
  • Copiar o banco para pasta de backup
  • Reativar o banco
  • Realizar o backup e sua otimização

Detalhe, essa mesma rotina deve ser criada para cada base de dados do sistema.

Se possuir 2, é necessário criar 2 scripts para isso.

Neste script, você deve editar as seguintes informações:

  • Nome do Sistema
  • Nome do Banco de Dados
  • Caminho Completo do banco, ex: D:\Dados\Database.FDB
  • Diretório de destino dos backups, ex: D:\WSPEED\Backups

Segue script na íntegra:

@echo off


set NomeSistema=CVSistem
 set NomeBanco=Dados
 set CaminhoBD=c:\temp\monkey.fdb
 set DirBKP=C:\WSPEED\BACKUP

C:
cd "C:\Program Files (x86)\Firebird\Firebird_2_5\bin" 

echo ----------------------------------------
echo ********************* AGUARDE BACKUP DA BASE DE DADOS *************************
echo **************************** DO Sistema FIREBIRD  *****************************
echo ******************************* INICIADO **************************************
echo ----------------------------------------

echo Data de Inicio: %Date%
echo Hora de Inicio: %Time%

echo ----------------------------------------

echo off
@chcp 65001

::Login no Banco
set ISC_USER=SYSDBA
set ISC_PASSWORD=masterkey

::Fechar conexões existentes no Banco de Dados
echo Fechando conexões existentes no Firebird
rem cports /close * 3050 * *

echo.


::Exibe a versao do servidor FIREBIRD e do GFIX
echo A versao do servidor FIREBIRD e do GFIX E:.....................................
gfix -z localhost:%CaminhoBD%

echo.


echo Parando o servico do FIREBIRD..................................................
::ShutDown o Banco
gfix -sh -tr 100 -fo 100  -user %ISC_USER% -pas %ISC_PASSWORD%  localhost:%CaminhoBD%

echo ----------------------------------------

echo.

::Verifica se existe os diretorios, se nao cria.
if not exist %DirBKP% md %DirBKP%
if not exist %DirBKP%\Validar\ md %DirBKP%\Validar\
if not exist %DirBKP%\Backup\ md %DirBKP%\Backup\
if not exist %DirBKP%\Restaurado\ md %DirBKP%\Restaurado\
if not exist %DirBKP%\Logs\Backup\ md %DirBKP%\Logs\Backup\
if not exist %DirBKP%\Logs\Restaurado\ md %DirBKP%\Logs\Restaurado\

::Verifica se existe os arquivos da rotina %NomeSistema%-%NomeBanco%-1, se existe pula pra criar os arquivos da rotina %NomeSistema%-%NomeBanco%-2 
if exist %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk goto Sistema2
	
:Sistema1

echo.

echo Iniciando a rotina %NomeSistema%-%NomeBanco%-1....................................................

echo.
echo.

echo ----------------------------------------

::Verifica se existe arquivo restaurado %NomeSistema%-%NomeBanco%-1.gdb, se existe deleta.
if exist %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-1.gdb del %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-1.gdb
if exist %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk del %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk
if exist %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-1.txt del %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-1.txt
if exist %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-1.txt del %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-1.txt

::Copia o arquivos de banco de dados para a pasta validar
echo Copiando o arquivo  %CaminhoBD% para %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
copy %CaminhoBD% "%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb

echo Retornando Servico do Firebird...
gfix -online normal  -user %ISC_USER% -pas %ISC_PASSWORD% localhost:%CaminhoBD%

echo ----------------------------------------

echo Hora de Termino da Copia e Inicio do GFIX: %Time%

echo ----------------------------------------

echo Preparando o Banco de Dados para Backup........................................
::Inicia o GFIX preparando o Banco
echo.
echo     Validando o Banco de Dados e Fragmentos de registros.......................
gfix -v -full localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb 
echo.
echo     Eliminando linhas falsas...................................................
gfix -k localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
echo.
echo     Eliminando transacoes pendentes.......................................,....
gfix -l localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
echo.
echo     Executando o Garbage Collection, redimensionando o Banco
echo     de Dados conforme quantidade de registro e indices.........................
gfix -sw -i localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
echo.
echo     Commit, confirmando e gravando as alteracoes e correcoes...................
gfix -c all localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
echo.
echo     Preparando Banco de Dados Corrompido para Backup...........................
gfix -mend localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
echo.
echo ----------------------------------------

echo Hora de Termino do GFIX e Inicio do Backup: %Time%

echo Fazendo o Backup...............................................................
echo Arquivo:
echo De: %NomeSistema%1.gdb
echo Para: %NomeSistema%1.gbk

::Inicia o GBAK fazendo o Backup
gbak -backup -v -ig -y %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-1.txt localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk 
echo ----------------------------------------

echo Hora de Termino do Backup: %Time%

echo ----------------------------------------

::Verifica se existe os arquivos %NomeSistema%2
if exist %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-2.gbk del %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-2.gbk
if exist %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-2.gdb del %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-2.gdb
if exist %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb del %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
if exist %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-2.txt del %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-2.txt
if exist %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-2.txt del %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-2.txt

goto Fim

:Sistema2

::Verifica se existe os arquivos da rotina %NomeSistema%-%NomeBanco%-2, se existe pula pra criar os arquivos da rotina %NomeSistema%-%NomeBanco%-3
if exist %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-2.gbk goto Sistema1

echo.

echo Iniciando a rotina %NomeSistema%-%NomeBanco%-2....................................................

echo.
echo.

echo ----------------------------------------

::Verifica se existe arquivo restaurado %NomeSistema%-%NomeBanco%-2.gdb, se existe deleta.
if exist %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-2.gdb del %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-2.gdb
if exist %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-2.txt del %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-2.txt
if exist %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-2.txt del %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-2.txt

::Copia o arquivos de banco de dados para a pasta validar
echo Copiando o arquivo............................................................. 
copy %CaminhoBD% %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb

echo Retornando Servico do Firebird...
gfix -online normal  -user %ISC_USER% -pas %ISC_PASSWORD% localhost:%CaminhoBD%


echo ----------------------------------------

echo Hora de Termino da Copia e Inicio do GFIX: %Time%

echo ----------------------------------------

echo Preparando o Banco de Dados para Backup........................................
::Inicia o GFIX preparando o Banco
echo.
echo     Validando o Banco de Dados e Fragmentos de registros.......................
gfix -v -full localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb 
echo.
echo     Eliminando linhas falsas...................................................
gfix -k localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
echo.
echo     Eliminando transacoes pendentes............................................
gfix -l localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
echo.
echo     Executando o Garbage Collection, redimensionando o Banco
echo     de Dados conforme quantidade de registro e indices.........................
gfix -sw -i localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
echo.
echo     Commit, confirmando e gravando as alteracoes e correcoes...................
gfix -c all localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
echo.
echo     Preparando Banco de Dados Corrompido para Backup...........................
gfix -mend localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb
echo.
echo ----------------------------------------

echo Hora de Termino do GFIX e Inicio do Backup: %Time%

echo Fazendo o Backup...............................................................
echo Arquivo:
echo De: %NomeSistema%2.gdb
echo Para: %NomeSistema%2.gbk

::Inicia o GBAK fazendo o Backup
gbak -backup -v -y %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-2.txt localhost:%DirBKP%\Validar\%NomeSistema%-%NomeBanco%-2.gdb %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-2.gbk 
echo ----------------------------------------

echo Hora de Termino do Backup: %Time%

echo ----------------------------------------

::Verifica se existe os arquivos %NomeSistema%3
if exist %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk del %DirBKP%\Backup\%NomeSistema%-%NomeBanco%-1.gbk
if exist %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-1.gdb del %DirBKP%\Restaurado\%NomeSistema%-%NomeBanco%-1.gdb
if exist %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb del %DirBKP%\Validar\%NomeSistema%-%NomeBanco%-1.gdb
if exist %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-1.txt del %DirBKP%\Logs\Backup\%NomeSistema%-%NomeBanco%-1.txt
if exist %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-1.txt del %DirBKP%\Logs\Restaurado\%NomeSistema%-%NomeBanco%-1.txt

goto Fim

:Fim


 del /f %DirBKP%\Validar\*.gdb

Pronto. Sabendo dessas informações, basta atualizar no script, e rodar. Veja como fica a execução 

Conclusão da rotina de backup de Firebird

E a estrutura final de arquivos:

Veja que temos agora um arquivo .gbk, o backup da base de dados Firebird.

Vamos ver como fazer para restaurar?

Gbak Restore – Recuperando uma base Firebird

Agora que já temos um backup concluído, basta realizarmos a restauração do backup.

O ponto positivo deste tipo de backup do Firebird, é que podemos restaurar sem problemas em um novo sistema.

Para realizar a restauração, precisamos definir:

  • Nome do banco de dados
  • Destino onde será recuperado o banco Firebird
  • Origem do arquivo de backup a ser restaurado.

Feito essas definições, podemos atualizar no script e rodar.

:: Nome da Base de Dados Firebird
set NOMEBASE=DadosCV
:: Local onde será recriada após restaurar o backup
set RESTORESQLPATH=C:\WSPEED\TESTRESTORE\DBFIREBIRD\
:: Arquivo de backup a ser restaurado.
set RESTOREBKP=C:\WSPEED\BACKUP\Dados-1.gbk

set GBAK="C:\Program Files (x86)\Firebird\Firebird_2_5\bin\gbak"
set GFIX="C:\Program Files (x86)\Firebird\Firebird_2_5\bin\gfix"
set ISC_USER=SYSDBA
set ISC_PASSWORD=masterkey
set FIREBIRDRESTORESYNTAX=-c -r -user %ISC_USER% -pas %ISC_PASSWORD% -p 8192 -v %RESTOREBKP% localhost:%RESTORESQLPATH%%NOMEBASE%.gdb

 %GBAK% %FIREBIRDRESTORESYNTAX%

Copie e cole o conteúdo acima num arquivo .bat, faça edição das linhs 1 – 6, e pronto.

Rode o comando e você terá seu Gbak Restore finalizado com sucesso.

Veja como rodou o meu:

Pronto.

Se você tiver alguma dúvida, comente abaixo para te ajudar.

Vamos agora para o próximo banco de dados?


Backup MySQL – Rodando mysql dump database

O MySQL foi criado na Suécia por suecos e um finlandês: David Axmark, Allan Larsson e Michael “Monty” Widenius em 1994.

Em 25 de Maio de 1995 foi lançada internamente a primeira versão do MySQL.

Depois em 8/1/98 teve o lançamento da primeira versão para Windows 95 e NT. E dai foi crescendo.

Dizem que um dos motivos pelo qual cresceu tanto foi sua integração praticamente nativa feita com o PHP, e isso cria uma enorme possibilidade de programas web e sistemas.

Ele fica organizado em arquivos no sistema operacional, mas o ideal para seu backup é fazer o dump completo do banco de dados.

Ess processo pode ser executado com o banco de dados rodando, precisa apenas de um login e senha com acesso admin ao banco ou as bancos de dados que você está utilizando.

Esse script, que você vai ver que utilizamos, é para fazer o backup de todos bancos de dados que tiver disponível. 

Ele já é um script para linux, pois normalmente é onde se vê instalado.

Vamos para a parte prática do backup?

Backup Mysql – Rodando mysqldump e compactando

Para fazer o backup do mysql, basta rodar um comando.

Com as seguintes informações, você consegue rodar o comando:

  • Usuário 
  • Senha
  • Destino do Backup

Como normalmente o servidor é localhost, não foi alterado, mas você pode alterar se precisar.

#!/bin/sh
#BACKUP DE TODAS AS BASES
USER=root
PASS=oys-Dib-zeiD-
PASTA=/backup/DB_website

cd $PASTA

mysql -N -e 'show databases' -u${USER} -p${PASS} | while read dbname; do mysqldump --user=${USER} --password=${PASS} --complete-insert --routines --triggers --single-transaction "$dbname" > "$dbname"-`date +"%a"`.sql; [[ $? -eq 0 ]] && gzip -f "$dbname"-`date +"%a"`.sql; done
# SALVA COMO bancodedados-Mon ou bancodedados-Seg de segunda-feira ou Monday do inglês.

Vou rodar para ver…

E pronto, temos o backup do mysql prontinho aqui nessa pasta.

Restore Mysql – Recuperando o backup na Prática

Na prática mesmo, o seu servidor vai ter dado pau, e você precisa reinstalar o site.

Então, vai recuperar os arquivos do backup, e restaurar o banco mysql.

Neste servidor novo, você vai ter um usuário novo root, e vai rodar o script à seguir, para restaurar uma base de dados:

mysql -u login -p senha databasetorestore < C:\WSPEED\BACKUP\Sistema-Seg.sql

Veja como ficou aqui. Detalhe, eu tive que criar o banco de dados que eu gostaria de restaurar, com o comando:

CREATE DATABASE RESTORE;

Viu como é possível e não é tão difícil?

Pronto.

Se você tiver alguma dúvida, comente abaixo para te ajudar.

Vamos agora para o próximo banco de dados?


Backup PostgreSQL – Rodando pg_dump e pg_restore

O POSTGRES é um banco de dados relacional criado pela universidade de Berkeley USA, foi originalmente patrocinado pelo DARPA (Agência de Projetos de Pesquisa Avançada para Defesa), ARO (Departamento de Pesquisa Militar), NSF (Fundação Cinetífica Nacional) e ESL Inc. A implementação do projeto POSTGRES iniciou em 1986, já em 87 tornou-se operacional.

Hoje é utilizado no mundo todo para sistemas.

Ele fica salvo no sistema de arquivos como diversos arquivos, mas a maneira que você quer fazer backup para restaurar em qualquer outro servidor postgres da mesma versão ou mais recente, é com o pg_dump, pg_dumpall e pg_restore.

Neste guia, vou cobrir como fazer o backup de todas as bases com pg_dumpall.

Postgresql Dump Database – Como Fazer na Prática:

Você precisa selecionar qual usuário e senha para rodar e gravar os globals, todas as bases e guardar com o 7zip, por isso, tenha instalado ou ajuste para usar winzip ou algo assim.

@echo off
 

set DIR_OUT=C:\WSPEED\BACKUP\
set SISTEMA=Hospitada


set PGUSER=postgres
set PGPASSWORD=temp1234
set HOST=127.0.0.1

set PGDUMPALL="C:\Program Files\PostgreSQL\14\bin\pg_dumpall.exe"
set PGDUMP="C:\Program Files\PostgreSQL\14\bin\pg_dump.exe"
set SETEZIP="C:\Program Files\7-Zip\7z.exe"
if not exist %DIR_OUT% md %DIR_OUT%
for /f %%a in ('wmic path win32_localtime get dayofweek /format:list ^| findstr "="') do (set %%a)

if %DayOfWeek% == 5 (
	set DOW="Sexta"
)  
if %DayOfWeek% == 6 (
	set DOW="Sabado"
)
if %DayOfWeek% == 0 (
	set DOW="Domingo"
)    
if %DayOfWeek% == 1 (
	set DOW="Segunda"
)    

if %DayOfWeek% == 2 (
	set DOW="Terca"
)    

if %DayOfWeek% == 3 (
	set DOW="Quarta"
) 
 if %DayOfWeek% == 4 (
	set DOW="Quinta"
)    
rem echo %DOW%
set OUTFILE=%DIR_OUT%\Backup-FULL-%SISTEMA%-%DOW%.sql
set OUTFILE=%OUTFILE: =-%

%PGDUMPALL% -h %HOST% -U %PGUSER% -v  -f %OUTFILE%
set erro=%errorlevel%
%SETEZIP% a %DIR_OUT%\Backup_%SISTEMA%_pgsql_%DOW%.zip %DIR_OUT%\*.sql
del "%DIR_OUT%\*.sql"
exit /B %erro%

Agora, que temos um backup de postres, vamos restaurá-lo.

Postgresql Restore Dump – Como recuperar o banco de dados.

Para fazer a restauração do banco de dados, existem duas maneiras de fazê-lo, utilizando o psql e o pg_restore.]

Se o backup gerado não foi no formato padrão, e sim com um formato personalizado, como por exemplo utilizando o pg_dump opção -Fc, você pode não ter compatibilidade com outras versões de Postgres.

Como a intenção deste artigo é você ter maior segurança, confiabilidade e rapidez para restaurar, não vamos utilizar o pg_restore, e sim o psql.

Com a base de dados, você pode recuperar apenas uma base, rodando o seguinte comando:

set CAMINHOARQUIVOBACKUP=C:\WSPEED\BACKUP
set var=C:\WSPEED\BACKUP\base.sql
set PSQL="C:\Program Files\PostgreSQL\14\bin\psql.exe"
set PGUSER=postgres
set PGPASSWORD=temp1234
set PGHOST=127.0.0.1

cd %CAMINHOARQUIVOBACKUP%
%PSQL%  -h %PGHOST% -U %PGUSER% -v  -f %VAR%

Se você tiver alguma dúvida, comente abaixo para te ajudar.

Vamos agora para o próximo banco de dados?


Backup Oracle – RMAN e Outros Backups

O Oracle é um banco de dados que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade que outras companhias não haviam percebido, quando encontrou uma descrição de um protótipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia.

Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negócios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo.

Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados. A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações.

Como banco de dados é um dos mais robustos que existe hoje no mercado.

TOTVS, SAP e outros ERPS poderosos rodam em Oracle.

Então, sobre os bancos de dados, entenda que é um assunto que da maneira que lidamos aqui na WSpeed, é cada um especialista no que sabe.

Então, backup do Oracle, com archives, replicação offline com datafiles e control files, e restauração de tudo isso, geralmente vejo que DBAs experientes abraçam essa causa.

Por isso eu digo que hoje vou ficar te devendo como fazer backup do Oracle e sua restauração.

Mas se você está aqui e precisa disso para Oracle, recomendo você procurar um DBA, ok?

Espero que você tenha curtido esse artigo, foi para te ajudar e a quebrar muitos paradigmas de que você vai sofrer para fazer backup.

Deixa nos comentários qual maior perrengue que você ja teve com banco de dados e backups que deram errado para interagirmos…

Referências:

Maurício Bento é o CEO da WSpeed. Ele aprendeu sobre backups da forma mais dura possível - perdendo dados quando jovem. Após trabalhar em grandes empresas como SAP e Walmart, ele aprendeu a se proteger e decidiu resgatar suas origens e ajudar os pequenos e médios empresários a protegerem seus dados da forma mais confiável possível.

DEIXAR UM COMENTÁRIO

Por favor digite seu comentário!
Por favor digite seu nome aqui