quarta-feira, 12 de fevereiro de 2014

MYSQL backup e restore

Para esta tarefa utilizaremos a ferramenta mysql e mysqldump. 

Backup


# mysqldump -u root -p my_schema > my_file_bkp.dmp

# mysqldump -u root -p[solicita senha*] [schema_name] > dumpfilename.sql


Outra maneira de efetuar o bkp é utilizando o parâmetro -A o qual vc não precisa selecionar o schema que deseja efetuar o bkp ele efetuará o dump de todos o bancos.

# mysqldump -u root -p -A > my_file_bkp.dmp

# mysqldump -u root -p[solicita senha*]  -A > dumpfilename.sql


Caso vc queira selecionar alguns schemas em específico o qual deseja efetuar o bkp vc poderá utilizar o parâmetro --databases e logo em seguida colocar os nomes dos schemas separados por espaço.

# mysqldump -u root -p  --databases my_schema1  my_schema2  my_schema3 > my_file_bkp.dmp

# mysqldump -u root -p[solicita senha*] [schema_name ...] > dumpfilename.sql


Para outros parâmetros vc pode consultar o manual com o seguintes comando:

#man mysqldump


Restore


Neste caso ele poderá ser de duas maneiras uma quando vc NÃO utiliza nem o parâmetro -A nem o --databases, neste caso vc poderá efetuar o restore em qualquer schema pré existente que esteja vazio. Para ilustrar o exemplo vou criar um banco antes de efetuar efetivamente o restore.

# mysql -u root -p

Quando executo este comando é aberto para mim um shell específico para o mysql onde vc poderá executar comando para o banco de dados.

> create database my_schema;
> quit

Agora vc deve executar o comando:

# mysql -u root -p my_schema < my_file_bkp.dmp

# mysql -u root -p[solicita senha*] [schema_name] < dumpfilename.sql


Agora, caso vc tivesse usado os parâmetros -A, --databases vc não seria necessário informar o schema e nem criar o schema pois ele tentará restaurar no mesmo de origem:

# mysql -u root -p  < my_file_bkp.dmp

# mysql -u root -p[solicita senha*]  < dumpfilename.sql


Para outros parâmetros vc pode consultar o manual com o seguintes comando:

#man mysql



* Se vc não passar este parâmetro o sistema tentara utilizar a senha do usuário logado no shell, vc poderia passar também a senha na própria linha de comando porém eu não recomento, visto que a mesma deverá ser salva no histórico do shell permitindo que outro usuário com um pouco de artimanha e mal intencionado furte sua senha.




Nenhum comentário:

Postar um comentário