quinta-feira, 19 de julho de 2012

Original data directory is not empty! at /usr/bin/innobackupex

Se você usa o software Percona XtraBackup e está tendo esse problema (Original data directory is not empty! at /usr/bin/innobackupex )  para fazer o restore eu vou colocar abaixo os passos para corrigir  os erros e realizar o restore.

Tem vários fóruns a respeito, mas cada um vai de uma forma, e poucos são eficientes. A melhor forma é alterar o script innobackupex.

1 – Garanta que realmente o diretório origem está vazio. Por default fica no /var/lib/mysql
Pode mover os arquivos para um diretório temporário. Mova os arquivos conforme a especificação do seu backup se foi apenas de um banco, mais ou de todos.  
*********** Quem nao usou ainda, no comando "innobackupex --apply-log" para preparar o restore, é feito shutdown do mysql***********

2 – Edit o arquivo  /usr/bin/innobackupex (vi /usr/bin/innobackupex) e ache essa linha:

# check that original data directories exist and they are empty

Abaixo terá:

 if_directory_exists_and_empty($orig_datadir, "Original data");
 if_directory_exists_and_empty($orig_ibdata_dir, "Original InnoDB data");
 if_directory_exists_and_empty($orig_iblog_dir, "Original InnoDB log");

Comente essas linhas:

### if_directory_exists_and_empty($orig_datadir, "Original data");
### if_directory_exists_and_empty($orig_ibdata_dir, "Original InnoDB data");
### if_directory_exists_and_empty($orig_iblog_dir, "Original InnoDB log");

3 - Execute o comando novamente e enjoy o seu restore :)

4 - Você talvez tenha ainda uma surpresa, o restore será executado com sucesso mas o mysql não vai subir

service mysqld start:   [failed]

Isso é simples e tem haver com permissão no diretório, basta executar:

chown -R mysql:mysql /var/lib/mysql/
 
Logo coloco um passo-a-passo para quem quer usar essa ferramenta (ao invés do mysqldump) para Innodb

[]´s

Gnomo

Nenhum comentário:

Postar um comentário