Backup MySQL com mysqldump | DeServ – Info
Lomadee, uma nova espcie na web. A maior plataforma de afiliados da Amrica Latina.

Backup MySQL com mysqldump

By Flávio Silva

O comando mysqldump do sistema gestor de base de dados MySQL serve para fazer cópias de segurança. Explicamo-lo ao pormenor e vemos as suas opções mais importantes.

Este comando permite fazer a cópia de segurança de uma ou várias bases de dados. Também permite que estas cópias de segurança se possam restaurar em diversos tipos de gestores de bases de dados, sem a necessidade de que se trate de um gestor de mySQL. Isto consegue-se criando uns ficheiros, que contêm todas as sentenças SQL necessárias para poder restaurar a tabela, que contem desde a sentença de criação da tabela, até uma sentença insert por cada um dos registos que formam parte da mesma.  

O comando dispõem de uma ampla variedade de opções que nos permitirá realizar a cópia da forma mais conveniente para o propósito da mesma. Para poder restaurar a cópia de segurança, bastará com executar todas as sentenças SQL que se encontram dentro do ficheiro, bem desde a linha de comandos de MySQL, ou desde o menu de criação de sentenças SQL de qualquer entorno gráfico como pode ser o MySQL Control Center.

As limitações da restauração dependerão das opções que se especificaram na hora de fazer a cópia de segurança, por exemplo, se incluirmos a opção -add-drop-table ao fazer a cópia de segurança, poderão-se restaurar tabelas que existem actualmente no servidor (apagando-as primeiro). Pelo qual é necessário estudar primeiro os procedimentos que se utilizarão tanto na cópia como na restauração, para que tudo saia correcto!

Algumas das opções que tem são:

–add-locks
Adiciona LOCK TABLES antes, e UNLOCK TABLE depois da cópia de cada tabela.

–add-drop-table
Adiciona um drop table antes de cada sentença create.

-A, –all-databases
Copia todas as bases de dados. Isto é o mesmo que utilizar -databases seleccionando todas.

-a, –all
Inclui todas as opções de criação específicas de MySQL.

–allow-keywords
Permite a criação de nomes de colunas que são palavras chave, isto realiza-se pondo como prefixo a cada nome de coluna, o nome da tabela.

-c, –complete-insert 
Utiliza inserts incluindo os nomes de coluna em cada sentença (incrementa bastante o tamanho do ficheiro)

-C, –compress 
Comprime a informação entre o cliente e o servidor, se ambos suportam compressão.

-B, –databases 
Para copiar várias bases de dados. Neste caso, não se especificam tabelas. O nome dos argumentos refere-se aos nomes das bases de dados. Incluirá-se USE db_name na saída antes de cada base de dados.

–delayed 
Insere as filas com o comando INSERT DELAYED.

-e, –extended-insert 
Utiliza a sintaxe de INSERT multilinha. (proporciona sentenças de insert mais compactas e rápidas)

-#, –debug[=option_string] 
Utilização do modo de depuração.

–help 
Mostra mensagem de ajuda e termina.

–fields-terminated-by=…
–fields-enclosed-by=…
–fields-optionally-enclosed-by=…
–fields-escaped-by=…
–lines-terminated-by=… 

Estas opções utilizam-se com a opção -T e têm o mesmo significado que a correspondente cláusula LOAD DATA INFILE.

-F, –flush-logs 
Escreve em disco todos os logs antes de começar com a cópia.

-f, –force, 
Continua ainda que se produza um erro de SQL durante a cópia.

-h, –host=.. 
Copia os dados do servidor de MySQL especificado. O servidor pré-definido é localhost.

-l, –lock-tables.
Bloqueia todas as tabelas antes de começar com a cópia. As tabelas bloqueiam-se com READ LOCAL para permitir inserts simultâneos em caso das tabelas MyISAM. Quando se realiza a cópia de múltiplas bases de dados. As tabelas em diferentes bases de dados copiarão-se em estados completamente diferentes.

-K, –disable-keys 
Incluirá-se na saída /*!40000 ALTER TABLE tb_name DISABLE KEYS */;e /*!40000 ALTER TABLE tb_name ENABLE KEYS */; Isto fará que o carregamento de dados num servidor MySQL 4.0 se realize mais rápido devido a que os índices se criarão depois de que todos os dados tenham sido restaurados.

-n, –no-create-db 
Não se incluirá na saída CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; Esta linha inclui-se se a opção –databases ou –all-databases foi seleccionada.

-t, –no-create-info 
Não incluirá a informação de criação da tabela (sentença CREATE TABLE).

-d, –no-data 
Não incluirá nenhuma informação sobre os registos da tabela. Esta opção serve para criar uma cópia só da estrutura da base de dados.

–opt 
O mesmo que –quick –add-drop-table –add-locks –extended-insert –lock-tables. Esta opção deveria permitir realizar a cópia de segurança da base de dados da forma mais rápida e efetiva.

-pyour_pass, –password[=your_pass] 
Password utilizada quando se conecta com o servidor. Se não se especifica `=your_pass’, mysqldump preguntará a password.

-P, –port=… 
Porto utilizado pelas ligações TCP/IP.

–protocol=(TCP | SOCKET | PIPE | MEMORY) 
Especifica o protocolo de conexão que se utilizará.

-q, –quick 
Não armazena no buffer a sentença, copia-a diretamente na saída. Utiliza mysql_use_result() para realiza-lo.

-Q, –quote-names 
Põe entre aspas as tabelas e nomes de coluna.

-r, –result-file=… 
Redireciona a saída ao ficheiro especificado. Esta opção deveria utilizar-se em MSDOS, porque previne a conversão de nova linha ‘\n’ em nova linha e return ‘\n\r’.

–single-transaction 
Utiliza o comando BEGIN antes de realizar a cópia desde o servidor. É muito útil com as tables InnoDB e o nível de transação READ_COMMITTED, porque deste modo realizará-se a copia de segurança de um estado consistente sem a necessidade de bloquear as aplicações. Consultar o manual para mais detalhes.

-S /path/to/socket, –socket=/path/to/socket 
O ficheiro de sockets que se especifica ao conectar ao localhost (que é o host pré-definido).

–tables 
sobrescreve a opção –databases (-B).

-T, –tab=path-to-some-directory 
Cria um ficheiro table_name.sql, que contem a sentença de criação de SQL, e um ficheiro table_name.txt, que contem os dados de cada tabela. O formato do ficheiro ‘.txt’ realiza-se com as opções –fields-xxx y –lines–xxx options.

Nota: Esta opção só funciona se o comando mysqldump se executa na mesma máquina que o demónio (daemon) mysqld, o usuário deverá ter licença para criar e escrever o ficheiro no path especificado.

-u nombre_usuario, –user=nombre_usuario
O nome de usuário que se utilizará quando se conecte com o servidor, o valor pré-definido é o do usuário actual.

-v, –verbose 
Vai mostrando informação sobre as acções que se vão realizando (mais lento)

-w, –where=’cláusula where’ 
Serve para realizar a cópia de determinados registos.

-X, –xml 
Realiza a cópia de segurança num documento XML.

-x, –first-slave 
Bloqueia todas as tabelas de todas as bases de dados.

Exemplo:

Para realizar a cópia de segurança da base de dados minhabase ao ficheiro copia_seguranca.sql

mysqldump –opt minhabase > copia_seguranca.sql

 

fonte: http://www.criarweb.com

Posts Relacionados:

  1. Sistema de autenticação de usuários em PHP usando sessões e MySQL Esse artigo é um passo-a-passo da criação de um simples...
  2. Resolvendo os problemas do tamanho do ibdata1 no MySQL Um problema que enfrentava sempre que colocava um aplicativo utilizando...

Artigos parecidos fornecidos por Yet Another Related Posts Plugin.

Tags: , , , , , ,

Deixe uma Resposta