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:
- Como funciona este banco de dados e maneiras de fazer backup
- O Backup na prática
- 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:
- Local dos Scripts: após baixar, definir onde você vai salvar os scripts
- Destino do Backup: Definir onde será salvo o backup
- 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
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.
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
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…