MySQL – Realização De Backups
Tutorial Anterior > MySQL – Registo E Exibição De Imagens
Nas edições anteriores mostramos como criar uma tabela, efetuar inclusões, alterações e exclusão de seus dados.
Hoje vamos falar sobre um assunto que não é muito usado, porém, na hora que tudo dá errado, perdemos vários registros, é a ele a quem devemos recorrer.
Apesar de ser um processo simples, vamos disponibilizar passo a passo, de forma que você não tenha qualquer dúvida no final da atividade!
Caso esta seja sua primeira visita a este Blog, se não tiver um conhecimento sobre inserção, alteração e exclusão, sugerimos visitar nossas matérias anteriores, antes de dar andamento a esta matéria!
Visando lhe facilitar ainda mais nas atividades, disponibilizamos em anexo os scripts desta matéria, para você analisar e testar tudo o que vamos lhe explicar, ok?
1 – Criando a Tabela:
Antes de efetuar qualquer processo de backup, vamos criar uma tabela (estaremos utilizando uma das tabelas utilizadas em outra matéria), conforme descrito abaixo:
----- CRIANDO A TABELA -----
CREATE TABE `cidades` (
`id` smallint(6) NOT NULL auto_increment,
`cidade` varchar(50) NOT NULL,
`estado` char(2) NOT NULL,
PRIMARY KEY(`id`)
);
----------
OBS.: Copie tudo o que está dentro de SCRIPT DE EXCLUSÃO (ou no arquivo disponível em anexo chamado “codigo-fonte-anteriores.txt”) e cole no SQL Editor (conforme imagem abaixo).
Feito isso, clique em F9 (RUN) e o Programa carregará suas informações na base de dados, efetuando a exclusão de seu conteúdo.
Agora que você criou a tabela Cidades, vamos dar início ao processo de backup da tabela.
2 – Efetuando o Backup:
No exemplo a seguir, enviaremos o backup da tabela cidades para a pasta c:/tmp.
Lembro que este exemplo só funcionará com tabelas do tipo MyISAM..
----- EFETUANDO O BACKUP -----
BACKUP TABLE `cidades` TO 'c:/tmp';
----------
OBS.: Copie tudo o que está dentro de EFETUANDO O BACKUP (ou o que está descrito no arquivo “efetuando-backup.txt”) e cole no SQL Editor (conforme imagem abaixo).
Feito isso, clique em F9 (RUN) e o Programa carregará suas informações na base de dados, efetuando a exclusão de seu conteúdo.
3 – Restauração Dos Dados
Feito o backup da tabela, vamos agora dar início à restauração dos dados.
Como falei desde a primeira matéria, a primeira preocupação de um programador deve ser quanto a integridade ou segurança de seus dados!
Certamente você não vai restaurar uma Tabela se a original (que está em uso) não tiver com defeito, correto?
Por este motivo, caso seja necessário efetuar qualquer restauração, você precisará excluir a Tabela que está em uso.
Veja no exemplo abaixo como você pode fazer isto:
----- RESTAURANDO DADOS DE BACKUP -----
DROP TABLE `cidades`;
RESTORE TABLE `cidades` FROM 'c:/tmp';
---------
OBS.: Copie tudo o que está dentro de RESTAURANDO DADOS DE BACKUP (ou o que está descrito no arquivo “restaurando-dados-backup.txt”) e cole no SQL Editor (conforme imagem abaixo).
Feito isso, clique em F9 (RUN) e o Programa carregará suas informações na base de dados, efetuando a exclusão de seu conteúdo.
PRONTO: O backup foi efetuado com sucesso!
Prático, não? Coloque em prática no seu dia a dia, certamente este recurso poderá lhe ajudar bastante (principalmente se você fizer muito uso da base de dados).
Exemplo Extra
Como você pode ver, os exemplos acima são básicos, voltados a quem está iniciando no MySQL.
No dia a dia, vejo vários Programadores (até mesmo experientes) apanhando para fazer backups em locais seguros!
Vamos disponibilizar abaixo (temos este exemplo em anexo no arquivo “backup_database.php”) uma forma prática e objetiva de se fazer este backup (desta vez, de toda a base de dados) em local restrito sem qualquer problema.
Como base, utilizaremos a linguagem de Programação PHP/MySQL (uma das mais utilizadas). Caso seja necessário desenvolver esta atividade em outra linguagem, você poderá migrar facilmente, sem ter muito trabalho!
Como o script é longo, estaremos separando os exemplos por linha, ok?
----- Linha 02 -----
require ("config/conexao.php");
----------
No exemplo acima o sistema busca o arquivo conexao.php (que está dentro da pasta config), responsável pelos dados de acesso à base de dados, assim como conexão ao MySQL.
----- Linha 04 -----
require ("data_atual.php");
No exemplo acima o sistema busca o arquivo data_atual.php (está no mesmo diretório).
Script responsável por retornar a data atual.
--------------------------------------- Linha 06 -------------------------------------------------
$back = fopen("backup/$dbname$data.sql","w");
A variável $back será a responsável em informar ao Sistema o nome do arquivo e a pasta onde será inserida o arquivo de backup.
--------------------------------------- Linha 08 à Linha 27 -------------------------------------------------
// Pega a lista de todas as tabelas
$res = mysql_list_tables($dbname) or die(mysql_error());
while ($row = mysql_fetch_row($res)) {
$table = $row[0]; // cada uma das tabelas
$res2 = mysql_query("SHOW CREATE TABLE $table"); MySQL - Principais Comandos MyQL
while ( $lin = mysql_fetch_row($res2)){ // Para cada tabela
fwrite($back,"-- Criando tabela : $tablenn");
fwrite($back,"$lin[1];nn-- Dados da tabela $tablenn");
$res3 = mysql_query("SELECT * FROM $table");
while($r=mysql_fetch_row($res3)){ // Dump de todos os dados das tabelas
$sql="INSERT INTO $table VALUES ('";
$sql .= implode("','",$r);
$sql .= "');nn";
fwrite($back,$sql);
}// fecha while($r=mysql_fetch_row($res3)){
}// fecha while ( $lin = mysql_fetch_row($res2)){
}// fecha while ($row = mysql_fetch_row($res)) {
----------
O script acima tem por finalidade pegar todas as Tabelas disponível dentro da base de dados apontada no arquivo CONEXAO.PHP.
--------------------------------------- Linha 30 à Linha 35 -------------------------------------------------
<script language="JavaScript">
alert('Backup de banco de dados realizado com sucesso !!!');
</script>
<meta http-equiv='refresh' content='0;URL=principal.php'>
<?
fclose($back);
----------
Após ter feito o backup, através das linhas acima o Sistema deverá gerar um Alerta, informando que o backup do banco de dados foi realizado com sucesso!
A seguir, ele fará o redirecionamento para o arquivo principal.php, fechando o arquivo para inserções.
Espero ter lhe ajudado em algo com esta matéria.
Envie-nos suas dúvidas e dê sugestões para as próximas matérias! Nosso compromisso é lhe ajudar!
DOWNLOAD: Descarregue o código utilizado neste tutorial de Realização De Backups, em formato .zip.
Tutorial Seguinte > MySQL – Principais Comandos MyQL