FAQ sobre cópias de segurança

De MoodleDocs

Revisão de 13h33min de 10 de janeiro de 2008; Jaime Villate (disc | contribs)
(dif) ← Versão anterior | ver versão actual (dif) | Versão posterior → (dif)
Cópias de segurança do sítio
Recomenda-se fazer cópias de segurança do sítio, como se explica em Actualização_do_Moodle, para que todos os dados sejam gravados em forma mais confiável e com o menor tempo de recuperação.
Cópias de segurança das disciplinas
As cópias de segurança de uma disciplina, configuradas na página de configuração das cópias de segurança, são mais caras em termos de tempo e de uso da CPU. Para além disso, o tempo necessário para restaurar o sítio no seu estado original é também maior. As cópias de segurança de disciplinas são úteis para obter uma cópia "fresca" de disciplinas que serão reutilizadas ou distribuídas individualmente, mas não deveriam ser utilizadas como mecanismo de segurança num sítio (a menos que o seu fornecedor do sistema Moodle não permita fazer cópias completas do sítio). Para fazer cópias de seguranças programadas, deverá configurar o Cron para que seja executado periodicamente. Por favor consulte as instrucções sobre o cron.

Tabela de conteúdo

Como faço uma cópia de segurança de todo o meu sítio Moodle?

Existem dois elementos que precisam de ser copiados: a base de dados e os ficheiros enviados para o servidor. Os scripts do Moodle são menos importantes, já que sempre poderá obter uma cópia recente se for preciso.

Há muitas formas de criar essas cópias de segurança. Tem aqui um pequeno script que poderá executar em Unix para realizar uma cópia da base de dados (é boa idéia executar este script diariamente usando o cron):

cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername --password=mypassword -C -Q -e -a mydatabasename > moodle-database.sql
gzip moodle-database.sql

Em relação aos ficheiros pode usar rsync de forma regular para copiar para outro servidor unicamente os ficheiros que tenham sido modificados:

rsync -auvtz --delete -e ssh mysshusername@example.com:/servidor-moodle/directorio-dados /servidor-backup/directorio-dados/

Codificação de caracteres

Quando fizerem cópias da base de dados completa de um sítio Moodle, os administradores devem ter cuidado e verificar que não se produzam problemas com a codificação de caracteres. Em alguns casos, as cópias de segurança geradas com mysqldump ou com phpmyadmin podem não ter a codificação correcta de todos os dados, dando como resultado a inclusão de caracteres falsos. Um solução é usar mySQL Administrator 1.1 ou outra ferramenta que forçe a codificação dos datos em UTF-8.

Como restauro uma cópia do meu sítio Moodle?

Se tiver seguido as instrucções acima para criar a cópia do sítio Moodle, é provável que não saiba como restaurar a cópia do sítio. Aqui tem um conjunto de procedimentos básicos que constituem o processo de restauração.

1. Mude o nome do directório original dos dados de Moodle para algum nome diferente (para evitar perdé-lo totalmente) e transfira a cópia de segurança do directório no seu lugar.

3. Se está a usar MySQL, a cópia da base de dados deverá ser um ficheiro com extensão .sql, .gz ou .tar.gz. Se for .tar.gz ou .gz necesitará transformá-lo num ficheiro sql.

tar -xzvf moodlesqlfile.tar.gz

4. Se estiver a usar MySQL, importe o ficheiro para uma nova base de dados dentro do servidor MySQL. Tenha cuidado aqui, algumas cópias de segurança tentam importar para a mesma base de dados de trabalho que está a ser usada pelo Moodle. Isso conduz a problemas na base dados que podem danificar a instalação do Moodle. O melhor é ciar uma nova base de datos, importar os dados da base de dados gravvada, e modificar o ficheiro de configuração do Moodle, config.php, para que use essa nova base de dados (assim terá ainda a base de dados original).

Uma vez tenha criado a nova base de dados:

mysql -p new_database < moodlesqlfile.sql

Que dados estão armazenados na cópia de segurança de uma disciplina?

Se selecionar todas as opções quando se configura a cópia de segurança, incluirá quase todos os dados da disciplina. No entanto, deverá ter em conta que algumas coisas não são gravadas:

  • As perguntas serão gravadas unicamente se pelo menos uma pergunta na mesma categoria tiver sido adicionada a algum teste.
  • As escalas são salvadas unicamente se tiverem sido usadas pelo menos numa actividade.

O que significa a mensagem de erro: "An error occurred deleting old backup data"?

(Essa mensagem não pode ser traduzida, porque não está dentro dos pacotes linguísticos mas no código PHP). O processo de criação (ou restauração) da cópia de segurança tenta apagar informação antiga, de cópias anteriores, usando as seguintes tarefas:

  • Apagar registos antigos da tabela "backup_ids": Verifique que a tabela existe na base de dados e tente outra vez.
  • Apagar registos antigos da tabela "backup_files": Verifique que a tabela existe na base de dados e tente outra vez.
  • Apagar ficheiros antigos em "moodledata/temp/backup": Apague o directório completamente e tente outra vez.

Há várias formas de reparar tabelas da base de dados, incluindo o MySQL Admin.

Porque aparece uma mensagem "XML error: not well-formed (invalid token) at line YYYY"?

Este problema pode aparecer durante o processo de restauração. É produzido quando o processador do XML detecta algum erro no ficheiro da cópia de segurança que impede a correcta execução. Usualmente, é causado por algum caracter "ilegal" adicionado na disciplina quando tenha sido colado texto com caracteres de control, ou sequências inválidas.

O melhor método para resolver o problema é:

  • Descomprima o ficheiro da cópia num dierectório vazío.
  • Abra o ficheiro moodle.xml com o browser Firefox, que mostrará onde (o caracter exacto) está o problema.
  • Edite o ficheiro moodle.xml com algum editor compatível com UTF8 e elimine os caracteres ilegais. Grave o ficheiro modificado.
  • Teste o ficheiro moodle.xml novamente com o Firefox até que não apareça nenhum erro.
  • Comprima tudo novamente (todo o conteúdo do directório, inclusive o próprio directório).
  • Tente novamente restaurar a disciplina, que deveria agora funcionar.
  • Se a restauração ainda falhar, veja a pergunta seguinte.

Recomenda-se vivamente corrigir na disciplina original todos os caracteres ilegais encontrados, para que nas cópias de seguranças futuras não apareça o mesmo problema.

O erro de XML ainda persiste. Como posso reparar o ficheiro XML?

Em alguns casos, a pesar de ter feito o que se recomendou na resposta anterior, os ficheiros XML da cópia de segurança continuam a ter caracteres que façem com que o processo de restauração seja interrompido. Nesses casos pode tentar o seguinte:

  • Descarregue o Atlassian XML Cleaner Utility no sítio da JIRA Atlassian.
  • Descomprima o ficheiro da cópia de segurança do Moodle num directório vazío. O Moodle criará os directórios de dados da disciplina assim como o ficheiro moodle.xml. Para descomprimir o ficheiro zip use o próprio Moodle.
  • Modifique o nome do ficheiro moodle.xml para algo como moodle-unclean.xml.
  • Se não tiver acesso à linha de comandos no seu servidor Moodle, use o compactador zip do Moodle para comprimir o ficheiro moodle-unclean.xml, descarregue o ficheiro zip localmente e descomprima-o. É importante descarregar o ficheiro XML em formato zip para evitar codificação indesejada de carecteres ao transferir entre diferentes sistemas operacionais.
  • Coloque o programa Atlassian XML Cleaner Utility no mesmo directório do ficheiro moodle-unclean.xml.
  • Execute o seguinte comando desde a linha de comando:
java -jar atlassian-xml-cleaner-0.1.jar moodle-unclean.xml > moodle.xml
  • Se executou o programa no seu computador local, comprima o ficheiro moodle.xml que acabou de criar (que supostamente já estará correcto), transfira-o para o mesmo directório onde estava originalmente o ficheiro moodle-unclean.xml, e use o Moodle para o descomprimir.
  • Comprima tudo outra vez (todo o conteúdo do directório, incluindo o próprio directório!).
  • Tente novamente restaurar a disciplina, que deveria agora funcionar.

Porque aparece a mensagem "Algumas das suas disciplinas não foram gravadas!!"?

Existem três causas possíveis para este problema:

1. Erro - Isto ocorre quando na criação da cópia de segurança aparece um erro e, portanto, a cópia de uma disciplina particular não é concluida. Estes são erros "controlados", que permitem que o processo continue com outras disciplinas.

2. Não finalizado - Isto acontece quando o procedimento de cópia termina sem sucesso sem saber qual foi a causa. O cron na seguinte execução determina que a última execução estava errada, e omite a disciplina com problemas. Uma solução provável seria aumentar os limites no PHP/Apache na sua instalação (memória, tempo de execução,...). Se olhar para tabelas de logs, poderá ver se o erro ocorre em intervalos exactos de tempo (usualmente um problema com a variável do PHP max_execution_time), ou se há algum ponto exacto no qual todas os disciplinas falham (geralmente librarias zip internas; tente usar executáveis externos no seu lugar).

3. Omitidos - Isto acontece quando uma disciplina não está disponível os alunos e não tem tido modificações no último mês (31 dias). Esta não é uma situação de erro - é uma característica útil para sítios com muitas disciplinas antigas não disponíveis, que permite pupar tempo.

Como posso restaurar cópias de segurança prévias à versão 1.6, que não usem ISO-8859-1, no Moodle 1.6 (Unicode)?

Moodle1.6

Qualquer cópia de segurança cujo conteúdo não seja 100% ISO-8859-1 dará problemas para ser restaurada no Moodle 1.6 (e superiores), que usa Unicode. Em lugar disso, por favor tente o seguinte:

  1. Faça uma instalação nova do Moodle 1.5.x (a última versão disponível).
  2. Restaure todas as disciplinas (deveriam funcionar se estavam funcionando originalmente).
  3. Atualize o sítio para Moodle 1.6 e execute o script de migração UTF-8.
  4. Faça novamente a cópia de segurança das disciplinas.

Isto produzirá um novo conjunto de cópias de segurança que serão 100% UTF-8, podendo ser usadas no Moodle 1.6 sem problemas.

Por que são omitidas algumas disciplinas?

Moodle1.6

A partir de 1.6, as cópias de segurança de disciplinas automaticamente omitem as disciplinas que não estejam disponíveis para os alunos e que não tenham sido modificadas no último mês.

Veja também

Sítios externos