Vous êtes sur la page 1sur 2

Aula-05: Segurana e Otimizao:

Banco de Dados Backup

Conforme Carlos E. Morimoto, uma das grandes dvidas de qualquer


administrador iniciante como fazer backup das bases de dados do MySQL,
j que os dados so gravados e acessados atravs do servidor MySQL e no
diretamente atravs de arquivos, como no caso dos arquivos referentes aos
sites, salvos na pasta "/var/www" (no caso de LINUX), ou na pasta
c:\EasyPHP 3.0\mysql\bin, no caso de ser Windows.
No Linux, as bases de dados do MySQL so salvas por padro dentro da
pasta "/var/lib/mysql". Ao criar a base de dados "escola", por exemplo,
ser criada a pasta "/var/lib/mysql/escola", contendo um conjunto de
arquivos, referentes s tabelas criadas.
No caso de ser Windows, as bases de dados do MySQL so salvas por
padro dentro da pasta c:\EasyPHP 3.0\mysql\data. Ao criar a base de
dados escola, por exemplo, ser criada a pasta c:\EasyPHP
3.0\mysql\data\escola, contendo um conjunto de arquivos, referentes s
tabelas criadas.
A forma mais simples de fazer backup das bases de dados do MySQL
simplesmente salvar o contedo da pasta "/var/lib/mysql", criando um
arquivo .tar.gz ou mesmo copiando os arquivos diretamente para outra
partio. O maior problema que as bases de dados so alteradas
continuamente durante a operao do banco de dados, o que leva a cpias
inconsistentes. Se alguns dos arquivos dentro da pasta com a base mudam
no meio da cpia, o backup conter uma mistura de dados novos e antigos,
uma receita para o desastre.
A forma mais segura parar o servio do MySQL antes de fazer o backup,
garantindo assim que nada ser alterado durante a cpia, como no exemplo
abaixo:
# /etc/init.d/mysql stop
# tar -zcvf mysql.tar.gz /var/lib/mysql/
# /etc/init.d/mysql start
O problema nesse caso que o servio fica fora do ar durante alguns
segundos ou minutos. Se a base de dados usada pelo site da sua empresa,
por exemplo, ele ficar fora do ar at que o backup seja concludo e o
servidor MySQL volte a ser iniciado. Voc pode agendar os backups usando o
cron, para que eles sejam executados durante a madrugada, por exemplo,
mas, mesmo assim, voc vai acabar sempre perdendo algumas visitas.
A segunda opo fazer um backup online, sem parar o servidor. O
utilitrio mais simples (e provavelmente o mais usado) para isso o
mysqldump, que acompanha o pacote principal do MySQL.

Diferente do mtodo anterior, onde os arquivos so copiados


diretamente, o mysqldump acessa o banco de dados por vias normais, da
mesma forma que um aplicativo qualquer faria. Em outras palavras, ele no
l os arquivos, mas sim as informaes armazenadas nas bases de dados.
Isso permite que o backup seja consistente, mesmo que as bases de dados
sejam alteradas durante o backup.
BACKUP
Para salvar todas as bases de dados do servidor no arquivo "backup.sql",
criado no diretrio atual, por exemplo, o comando seria:

# mysqldump -u root -p -x -e -A > backup.sql


O "-u root -p" especifica o usurio que ser usado para acessar o banco de
dados. No exemplo estou fazendo um backup completo, por isso estou
usando diretamente o root. A opo "-x" trava as bases de dados no
momento em que cada uma copiada, evitando qualquer problema de
inconsistncia, enquanto a "-e" uma opo de otimizao, que permite ao
mysqldump combinar argumentos INSERT dentro das tabelas, o que torna
tanto o backup quanto a restaurao mais rpidos. Finalizando, a opo "-A"
especifica um backup completo, de todas as bases de dados.
Se o comando parasse por a, o mysqldump simplesmente escreveria todo
o contedo das bases de dados na prpria janela do terminal, resultando em
uma longa exibio de informaes, sem muita utilidade. Como queremos
que a sada seja salva em um arquivo, usamos o ">", que redireciona a sada
para o arquivo especificado.
O arquivo "backup.sql" gerado basicamente um arquivo de texto gigante
contendo declaraes de todas as informaes armazenadas.
RESTAURAO
O backup poderia ser ento restaurado diretamente usando o comando
abaixo, sem que voc precisasse remover as bases e tabelas manualmente
antes de iniciar a recuperao:

# mysql -u root -p < backup.sql


O backup usando o mysqldump e a restaurao usando o mysql so
preferveis cpia manual dos arquivos da pasta "/var/lib/mysql", pois evita
problemas de incompatibilidade ao migrar os dados para verses diferentes
do MySQL. Alm disso, a facilidade de fazer o backup sem precisar parar o
servidor uma grande vantagem em um ambiente de produo.
Ateno! Essa facilidade de fazer backup sem precisar parar o servidor,
remete a um cuidado, onde, a restaurao sobrepe os dados que esto em
operao. Assim, necessrio que o administrador, pare o Banco de Dados, e
somente aps a restaurao permita que os demais usurios continuem
trabalhando.

Vous aimerez peut-être aussi