Backup MySQL mediante sentenças SQL
Informe de Carlos Cuenca - Criaweb
Artigo publicado no site : http://www.criarweb.com
Artigo publicado no site : http://www.criarweb.com
Como realizar um backup das tabelas de uma base de dados e a sua recuperação a partir de sentenças SQL.
Veremos como realizar uma cópia de segurança da tabela e a sua recuperação a partir de sentenças SQL.
Backup dos dados
Este comando permite-nos fazer uma cópia dos ficheiros das tabelas das quais queremos fazer um backup, actualmente só funcionam com tabelas do tipo MyIsam, e copia tanto os ficheiros .frm que contêm a definição da tabela, como os ficheiros .myd, que contêm os dados.
Antes de executar-se, guarda todas as alterações que possam existir em memória da tabela, de forma que fique de uma maneira consistente. Do mesmo modo, durante a execução do comando, bloqueia a tabela sobre a que se está a fazer a cópia de segurança para que os dados sejam consistentes na tabela. Há que ter em conta que este comando bloqueia uma das tabelas, consoante vai fazendo a cópia de segurança. Isto poderia provocar uma inconsistência de dados a nível de base de dados, se é necessário fazer um backup de todas as tabelas num instante, sendo então necessário a utilização do comando "lock tables" para bloquear todas as tabelas antes de começar a cópia de segurança.
Ao finalizar o comando retorna uma tabela, que contem os dados:
Coluna | Valores |
Table | Nome da tabela |
Op | Sempre põe "backup" |
Msg_type | Pode conter status, error, info ou warning. |
Msg_text | Mensagem descritivo do resultado da operação |
Para realizar uma cópia de uma tabela chamada pedidos, à pasta Backups:
BACKUP TABLE pedidos TO `/backups/`
Recuperação de dados
Para complementar a sentença "Backup table", Mysql dispõem da sentença "Restore table", que permite restaurar uma tabela a partir de uma cópia de segurança que se realizou com o comando "Backup Table".
Esta opção só se pode utilizar se a tabela que se pretende restaurar não se encontra na base de dados, pois em caso afirmativo mostrará uma mensagem de erro. Igual que o comando de Backup, esta opção só está disponível para as tabelas de tipo MyIsam, e a partir da versão 3.23.25.
Como o comando de backup não copia os ficheiros de índices, o comando para recuperar os dados, volta a indexar todos os campos que contem índices, criando os ficheiros correspondentes. Ao igual que o comando para fazer cópias de segurança, invocar o comando "restore table" retorna uma tabela, com um registo por cada tabela sobre a que se fez a base de dados, e que contem a seguinte informação:
Coluna | Valores |
Table | Nome da tabela |
Op | Sempre põe "restore" |
Msg_type | Pode conter status, error, info ou warning. |
Msg_text | Mensagem descritivo do resultado da operação |
Para restaurar uma tabela chamada pedidos da pasta Backups à base de dados:
RESTORE TABLE pedidos FROM `/backups/`