problema ao fazer backup de um banco de dados mysql grande

5

Eu tenho um banco de dados wordpress MU com algo como mais de 10.000 tabelas para vários blogs de usuários. Eu preciso atualizar o wordpress MU para a versão mais recente, mas quero fazer o backup do banco de dados antes da mão.

O PHPMyAdmin falha ao carregar a página quando clico em exportar. Eu tentei entrar no servidor (windows) e usar a linha de comando do DOS:

mysqldump -u USERNAME -p PASSWORD> BACKUP.sql

mas paira por um minuto e me dá o erro:

error 23: out of resources when opinging file '.\USERNAME\wp_1037_links.MYD' (Errorcode: 24) when using LOCK Tables

O que estou fazendo de errado ou deveria estar fazendo? O PHPMyAdmin é adequado para algo desse tamanho? Existe uma maneira melhor de fazer isso do que os dois métodos que eu tentei?

** Observe que este não é o meu site, portanto, quaisquer sugestões quanto à configuração do DB devem ser executadas pelo proprietário. Eu estou aqui apenas para porcarias relacionadas a WP, isso é meio fora do escopo para o que eu fui levado a fazer.

    
por mrpatg 26.02.2010 / 10:29

10 respostas

1

Tente o seguinte: mysqldump --lock-all-table -u USERNAME -p SENHA > BACKUP.sql

Esteja ciente de que, se isso for ao vivo, isso pode impedir o funcionamento dos sites.

    
por 26.02.2010 / 10:41
1

O erro indica que você está ficando sem recursos no servidor; provavelmente o motivo é o bloqueio: o mysqldump bloqueia implicitamente as tabelas ao lê-las. Se houver muita atividade no banco de dados, o MySQL precisará manter uma cópia dos dados mais antigos disponíveis para a transação mysqldump; para tabelas grandes o suficiente, isso pode ser um problema real.

Se você não está muito preocupado com a consistência dos dados, você pode usar --skip-lock-tables ( -q na verdade não funcionará, ele apenas impede o buffer de saída. Isso pode ser útil, mas não resolverá seu problema) e --single-transaction .

    
por 13.04.2010 / 10:18
1

Eu tive o mesmo problema e percebi que é a variável open_files_limit para my.cnf

apenas atualize seu my.cnf

open_files_limit = 20000

[& reiniciar]

o valor deve ser 2 * número de tabelas que você tem em seu banco de dados. Se isso não funcionar, tente 3 * número de tabelas. Se isso também não acontecer, não vá incrementar, já que esse não é o problema no seu caso. Procure por solução novamente ;-)

    
por 08.06.2010 / 15:13
0

você pode tentar o administrador do mysql , mas parece que o mysqldump lança um erro desse tipo.

    
por 26.02.2010 / 11:16
0

error 23: out of resources when opening file '.\USERNAME\wp_1037_links.MYD'

Isso soa mais como um problema geral de RAM ou disco rígido em seu servidor. Isso é uma máquina virtual? Verifique seu disco rígido quota primeiro. Pode ser que o mySQL esteja ficando sem espaço, mesmo tentando acessar a tabela - nesse caso, mesmo um backup compactado não ajudará.

    
por 26.02.2010 / 11:17
0

O erro que você está enfrentando é:
shell & per perdo 23
Código de erro 23: muitos arquivos abertos no sistema
shell & per perror 24 | Código de erro 24: muitos arquivos abertos
Mais informações aqui:
forums.mysql.com/read.php?35,7639,7639#msg-7639

Mas, como você provavelmente já sabe, o mysqldump não é a única maneira de executar um backup do mysql e também não é a melhor maneira.
Estou assumindo que você está usando o Innodb como o mecanismo de armazenamento, então eu recomendaria usar o utilitário de backup 'hot' do innodb: ibbackup .
(ele também pode executar backup para o myisam mas não tem vantagens sobre o mysqlhotcopy)
Mas para proteção real do banco de dados Mysql você pode recomendar a ativação dos logs binários no servidor mysql (eles dizem que só diminui o desempenho em 1%) para que você possa fazer restaurações pontuais como mostrado aqui: dev.mysql.com/doc/ refman / 5.0 / pt / point-in-time-recovery.html.

Se nenhuma das alternativas acima for uma opção para você, por que não:
1. SELECIONE-SE EM ... OUTFILE
2. Considerando o ambiente do seu provedor, você pode fazer instantâneos do sistema de arquivos. 3. ou (eu sei que estou empurrando) escravos de replicação Mysql :)
4. Se estiver usando o myisam, basta limpar as tabelas com o bloqueio de leitura e copiar os arquivos
5. Solicite a atualização do servidor mysql para o 6.0 (quando ele atinge o GA) e faça backups como este:
mysql > BACKUP DATABASE 'db-name' para 'c: \ backups \ whynotswitchtounix.bkp';
(observe a mensagem subliminar :))

    
por 23.03.2010 / 11:03
0

mysqldump -q -u nome_do_usuário -ppassword database > file.sql

-q evita bloquear as tabelas durante o despejo

    
por 23.03.2010 / 20:10
0

De fato, o utilitário InnoDB Hot Backup é uma ótima ferramenta, mas você pode preferir uma ferramenta gratuita lançada recentemente pela Percona: XtraBackup . Ele realiza backup online de tabelas InnoDB e XtraDB e pode criar backups completos e incrementais.

    
por 13.04.2010 / 10:00
-1

tente usar gzip para compactar seus arquivos sql para fazer o backup do link

e talvez ampliando sua memória virtual ...

    
por 26.02.2010 / 11:15
-2

faça o proprietário entrar em contato com a empresa de hospedagem para fazer um backup rápido

    
por 11.04.2010 / 21:19