|
|
|
||||||||||||||||||||||
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Parceiros - CSS para Web Design - S.O.S Designers - Slackware-Brasil - Crie seu Web site - Oficina da Net - CodigoFonte.net |
Backup MySQL com mysqldumpO 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.
-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
Autoria e outras referências sobre este artigo Dentro deste artigo: + 1 manual relacionado + 1 categoria relacionada
Manuais relacionados com este artigo Dentro de Manual de MySQL Anterior: Backup MySQL mediante sentenças SQL Categorias relacionadas Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo: + Entrar em MySQLComentários dos visitantes Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
|
| Sobre nós | Copyright | Anuncie | Entrar em contato | <criarweb> |