Вы находитесь на странице: 1из 3

Backup MySQL com mysqldump

O comando mysqldump do sistema gestor de base de dados MySQL serve para fazer cpias de segurana.
Explicamo-lo ao pormenor e vemos as suas opes mais importantes.
Este comando permite fazer a cpia de segurana de uma ou vrias bases de dados. Tambm permite que estas
cpias de segurana 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 contm todas as sentenas SQL
necessrias para poder restaurar a tabela, que contem desde a sentena de criao da tabela, at uma sentena insert
por cada um dos registos que formam parte da mesma.
O comando dispem de uma ampla variedade de opes que nos permitir realizar a cpia da forma mais
conveniente para o propsito da mesma. Para poder restaurar a cpia de segurana, bastar com executar todas as
sentenas SQL que se encontram dentro do ficheiro, bem desde a linha de comandos de MySQL, ou desde o menu
de criao de sentenas SQL de qualquer entorno grfico como pode ser o MySQL Control Center.
As limitaes da restaurao dependero das opes que se especificaram na hora de fazer a cpia de segurana, por
exemplo, se incluirmos a opo -add-drop-table ao fazer a cpia de segurana, podero-se restaurar tabelas que
existem actualmente no servidor (apagando-as primeiro). Pelo qual necessrio estudar primeiro os procedimentos
que se utilizaro tanto na cpia como na restaurao, para que tudo saia correcto!
Algumas das opes que tem so:
--add-locks
Adiciona LOCK TABLES antes, e UNLOCK TABLE depois da cpia de cada tabela.
--add-drop-table
Adiciona um drop table antes de cada sentena create.
-A, --all-databases
Copia todas as bases de dados. Isto o mesmo que utilizar -databases seleccionando todas.
-a, --all
Inclui todas as opes de criao especficas de MySQL.
--allow-keywords
Permite a criao de nomes de colunas que so 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 sentena (incrementa bastante o tamanho do ficheiro)
-C, --compress
Comprime a informao entre o cliente e o servidor, se ambos suportam compresso.
-B, --databases
Para copiar vrias bases de dados. Neste caso, no se especificam tabelas. O nome dos argumentos refere-se aos
nomes das bases de dados. Incluir-se USE db_name na sada 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 sentenas de insert mais compactas e rpidas)

-#, --debug[=option_string]
Utilizao do modo de depurao.
--help
Mostra mensagem de ajuda e termina.
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--lines-terminated-by=...
Estas opes utilizam-se com a opo -T e tm o mesmo significado que a correspondente clusula LOAD DATA
INFILE.
-F, --flush-logs
Escreve em disco todos os logs antes de comear com a cpia.
-f, --force,
Continua ainda que se produza um erro de SQL durante a cpia.
-h, --host=..
Copia os dados do servidor de MySQL especificado. O servidor pr-definido localhost.
-l, --lock-tables.
Bloqueia todas as tabelas antes de comear com a cpia. As tabelas bloqueiam-se com READ LOCAL para
permitir inserts simultneos em caso das tabelas MyISAM. Quando se realiza a cpia de mltiplas bases de dados.
As tabelas em diferentes bases de dados copiaro-se em estados completamente diferentes.
-K, --disable-keys
Incluir-se na sada /*!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 rpido devido
a que os ndices se criaro depois de que todos os dados tenham sido restaurados.
-n, --no-create-db
No se incluir na sada CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; Esta linha inclui-se se a
opo --databases ou --all-databases foi seleccionada.
-t, --no-create-info
No incluir a informao de criao da tabela (sentena CREATE TABLE).
-d, --no-data
No incluir nenhuma informao sobre os registos da tabela. Esta opo serve para criar uma cpia s da estrutura
da base de dados.
--opt
O mesmo que --quick --add-drop-table --add-locks --extended-insert --lock-tables. Esta opo deveria permitir
realizar a cpia de segurana da base de dados da forma mais rpida e efetiva.
-pyour_pass, --password[=your_pass]
Password utilizada quando se conecta com o servidor. Se no se especifica `=your_pass', mysqldump preguntar a
password.
-P, --port=...
Porto utilizado pelas ligaes TCP/IP.

--protocol=(TCP | SOCKET | PIPE | MEMORY)


Especifica o protocolo de conexo que se utilizar.
-q, --quick
No armazena no buffer a sentena, copia-a diretamente na sada. Utiliza mysql_use_result() para realiza-lo.
-Q, --quote-names
Pe entre aspas as tabelas e nomes de coluna.
-r, --result-file=...
Redireciona a sada ao ficheiro especificado. Esta opo deveria utilizar-se em MSDOS, porque previne a
converso de nova linha '\n' em nova linha e return '\n\r'.
--single-transaction
Utiliza o comando BEGIN antes de realizar a cpia desde o servidor. muito til com as tables InnoDB e o nvel
de transao READ_COMMITTED, porque deste modo realizar-se a copia de segurana de um estado consistente
sem a necessidade de bloquear as aplicaes. 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 opo --databases (-B).
-T, --tab=path-to-some-directory
Cria um ficheiro table_name.sql, que contem a sentena de criao de SQL, e um ficheiro table_name.txt, que
contem os dados de cada tabela. O formato do ficheiro '.txt' realiza-se com as opes --fields-xxx y --lines--xxx
options.
Nota: Esta opo s funciona se o comando mysqldump se executa na mesma mquina que o demnio (daemon)
mysqld, o usurio dever ter licena para criar e escrever o ficheiro no path especificado.
-u nombre_usuario, --user=nombre_usuario
O nome de usurio que se utilizar quando se conecte com o servidor, o valor pr-definido o do usurio actual.
-v, --verbose
Vai mostrando informao sobre as aces que se vo realizando (mais lento)
-w, --where='clusula where'
Serve para realizar a cpia de determinados registos.
-X, --xml
Realiza a cpia de segurana num documento XML.
-x, --first-slave
Bloqueia todas as tabelas de todas as bases de dados.
Exemplo:
Para realizar a cpia de segurana da base de dados minhabase ao ficheiro copia_seguranca.sql
mysqldump --opt minhabase > copia_seguranca.sql

Вам также может понравиться