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.

Criar Tabela MySQL

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.

Backup Tabela MySQL

Ficheiros MySQL

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

Be Sociable, Share!

Participa! Comenta...