Migrar Moodle de Servidor Sem Perder Dados nem Parar o AVA
O roteiro de quem opera EAD: as três peças que precisam chegar juntas, o ensaio antes do dia D e a janela de corte medida em minutos.
por Cleverson Gouvêa
Migrar Moodle de servidor parece a tarefa mais simples do mundo até a primeira tentativa: copiar três coisas, apontar o DNS e pronto. Na prática, é exatamente aí que se perdem submissões de alunos, notas de um semestre inteiro e uma manhã de aula. Trabalho com Moodle desde 2008 e este é o roteiro que uso para tirar um AVA de um servidor e colocá-lo em outro sem perder dado e sem derrubar a operação.
TL;DR — o essencial
- Uma migração move três peças independentes: o código do Moodle, a pasta
moodledatae o banco de dados. Esquecer uma delas é o erro nº 1.- A janela de indisponibilidade não precisa ser de horas. Com cópia incremental e TTL de DNS reduzido, o corte real fica em minutos.
- Não migre e atualize a versão no mesmo movimento. A documentação oficial é explícita: uma variável por vez, ou você não saberá o que quebrou.
- Em setembro de 2026 o calendário pesa na decisão: o Moodle 5.0 perde até o suporte de segurança em 5 de outubro de 2026, e o 5.3 LTS chega no mesmo dia, com suporte de segurança até 1º de outubro de 2029.
- Migrar Moodle de servidor sem ensaio prévio é aposta. O ensaio custa algumas horas; o rollback improvisado custa o semestre.
O que muda de fato ao migrar Moodle de servidor
O Moodle não é um site. É um sistema com estado espalhado em três lugares que precisam chegar íntegros e coerentes entre si no destino. Quem vai migrar Moodle de servidor precisa levar as três peças na mesma foto do tempo — entender isso já evita metade dos acidentes.
1. O código
A pasta da aplicação: core do Moodle, plugins, tema e customizações. É a parte mais fácil de mover e a mais fácil de subestimar — plugins de terceiros instalados há anos costumam não ter registro em lugar nenhum. Gere a lista real em Administração do site → Plugins → Visão geral dos plugins e guarde-a fora do servidor.
2. A pasta moodledata
É onde vivem os arquivos enviados por professores e alunos, os backups de curso e os caches. Ela fica fora da pasta pública do site e o caminho dela está no $CFG->dataroot do config.php. É a peça mais pesada: num AVA com alguns anos de operação, costuma ser dezenas de vezes maior que o código.
A documentação oficial recomenda não copiar os subdiretórios cache, localcache, sessions, temp e trashdir. São efêmeros, o Moodle os recria, e ignorá-los corta horas de transferência.
3. O banco de dados
Todo o resto: usuários, matrículas, notas, logs, configurações, conteúdo dos cursos. É a peça que exige congelamento — se alguém enviar uma tarefa depois do dump, aquele arquivo estará no moodledata novo e o registro dele não estará no banco novo. Resultado: arquivo órfão, entrega invisível na correção.
Quando migrar Moodle de servidor — e quando adiar
Migrar por migrar não resolve nada. Os motivos que sustentam a decisão de migrar Moodle de servidor são quatro:
- O servidor não aguenta o pico. O gargalo de EAD é sazonal: semana de prova e primeira semana do semestre concentram acesso. Se o sistema cai justamente aí, o problema é dimensionamento.
- A pilha ficou velha demais para a próxima versão. O Moodle 5.0 já exige PHP 8.2 no mínimo, a extensão
sodiumemax_input_varsmaior ou igual a 5000. Servidor preso em PHP 7.4 não recebe versão nova — ponto. - Ninguém cuida da infraestrutura. Servidor sem responsável definido não tem backup testado, nem atualização de segurança, nem monitoramento. Não é risco técnico, é risco institucional.
- O custo não fecha. VPS grande e ocioso 10 meses por ano, ou plano de nuvem gerenciada que não permite instalar o plugin de que a instituição depende.
E quando não migrar? Três situações em que a resposta certa é esperar:
- No meio do semestre, com atividades abertas e prazos correndo. A janela boa é recesso, virada de semestre ou madrugada de fim de semana.
- Junto com um upgrade de versão. A documentação oficial de migração pede uma mudança de cada vez: se algo quebrar, você precisa saber o que causou. Migre, estabilize, e só depois atualize.
- Sem backup restaurado com sucesso pelo menos uma vez. Backup que nunca foi testado é hipótese, não garantia — o mesmo raciocínio que já detalhei em o caso da exclusão de conteúdos no Moodle da UFOP.
Para qual versão migrar em setembro de 2026
Esta é a decisão que mais muda o resultado, porque ela define os requisitos do destino. Quem vai migrar Moodle de servidor agora precisa abrir o calendário oficial antes de escolher a versão:
| Versão | Lançamento | Fim do suporte geral | Fim do suporte de segurança | LTS |
|---|---|---|---|---|
| 4.5 | 07/10/2024 | 06/10/2025 | 04/10/2027 | Sim |
| 5.0 | 14/04/2025 | 20/04/2026 | 05/10/2026 | Não |
| 5.1 | 06/10/2025 | 05/10/2026 | 19/04/2027 | Não |
| 5.2 | 20/04/2026 | 19/04/2027 | 04/10/2027 | Não |
| 5.3 | 05/10/2026 | 04/10/2027 | 01/10/2029 | Sim |
Fonte: tabela de releases do Moodle Developer Resources.
Duas leituras práticas saem daí. A primeira: quem ainda roda 5.0 tem prazo curto — em 5 de outubro de 2026 nem correção de segurança sai mais. A segunda: o 5.3 é a próxima LTS, com suporte de segurança até outubro de 2029. Se a migração é agora, o destino inteligente é um servidor que já atenda aos requisitos do 5.3, mesmo que você suba o 5.1 ou o 5.2 hoje e faça o upgrade depois, em outra janela.
E os requisitos subiram de verdade:
| Requisito | Moodle 5.0 | Moodle 5.3 (LTS) |
|---|---|---|
| PHP mínimo | 8.2 (8.3 e 8.4 suportados) | 8.3 (8.4 suportado) |
| MariaDB | 10.11 | 10.11 |
| MySQL | 8.4 | 8.4 |
| PostgreSQL | 14 | 16 |
| SQL Server | — | 2019 |
| Oracle | Não suportado | Não suportado |
O corte do Oracle a partir do 5.0 e o salto do PostgreSQL para a versão 16 no 5.3 são os detalhes que costumam derrubar planos de migração feitos "no olho". Confira também o comprimento do prefixo de tabelas: o limite passou a ser 10 caracteres. Já escrevi sobre esse tipo de armadilha ao analisar as versões e o ciclo de LTS de um AVA institucional grande.
O passo a passo que reduz o risco a quase zero
Pré-voo (dias antes)
Antes de migrar Moodle de servidor, levante a versão exata do Moodle, a versão de PHP e do banco, a lista de plugins, o tamanho do moodledata, o tamanho do dump do banco e quem são os integradores externos (SSO, matrícula automática, gateway de pagamento, aplicativo). Provisione o destino já com a pilha certa e teste uma instalação limpa do Moodle nele: se a instalação limpa falha, a migração falharia também — só que mais tarde e com dados dentro.
Ensaio (a etapa que quase ninguém faz)
Ensaie migrar Moodle de servidor uma vez inteira, sem cutover, com o site novo respondendo num endereço temporário e em modo de manutenção. É no ensaio que aparecem o plugin incompatível, a permissão errada e o cron que não roda. Cronometre cada etapa: esse número vira a janela real que você vai anunciar à instituição.
Execução
Chegou o dia. Esta é a ordem que sigo para migrar Moodle de servidor em produção — cada item da lista existe porque um dia ele faltou em algum lugar.
- Ative o modo de manutenção no site antigo. Sem isso não existe consistência entre banco e arquivos.
- Gere o dump do banco com a ferramenta nativa (
mysqldump,pg_dump) e confira o tamanho do arquivo — dump truncado é silencioso. - Copie o
moodledatacomrsync, pulandocache,localcache,sessions,tempetrashdir. - Copie o código com os plugins e o tema.
- Crie o banco vazio no destino com a collation correta (normalmente
utf8mb4_unicode_ci) e restaure o dump. - Ajuste o
config.php:$CFG->wwwroot,$CFG->dataroote as credenciais do banco. - Corrija dono e permissões do código e do
moodledata— o servidor web precisa de leitura e escrita nomoodledata. - Rode o cron manualmente uma vez e acompanhe a saída; depois agende-o.
- Teste com o site ainda em manutenção: login de admin, um curso com atividade, upload, envio de e-mail, relatório de notas.
- Faça o cutover de DNS, saia do modo de manutenção e monitore os logs por 48 horas.
O roteiro completo está na documentação oficial de migração do Moodle — vale ler antes, não durante.
Como derrubar a janela de indisponibilidade de horas para minutos
A parte demorada de migrar Moodle de servidor é copiar arquivo, e arquivo velho não muda. Use isso a favor.
Cópia em duas passadas. Dias antes, rode um rsync com o site no ar — ele leva o volume inteiro sem pressa. No dia, com o site em manutenção, rode o mesmo rsync de novo: ele copia só o delta, e o que levava horas leva minutos.
TTL de DNS reduzido. Baixe o TTL do registro para 300 segundos com 24 a 48 horas de antecedência. Sem isso, parte dos alunos continua caindo no servidor antigo por horas depois do corte — e, pior, enviando arquivos que ficarão órfãos lá.
Servidor antigo em modo de manutenção, não desligado. Quem chegar por cache de DNS vê "em manutenção" em vez de erro, e não grava nada.
Validação com o site novo ainda em manutenção. Se precisar refazer a restauração, ninguém perdeu trabalho.
Na prática, com essa sequência, a janela anunciada costuma ser de 30 a 60 minutos, dos quais boa parte é teste — e não transferência.
Domínio novo: o search and replace que salva (ou destrói) o site
Quem vai migrar Moodle de servidor e trocar de domínio no mesmo movimento tem uma tarefa extra. Se o endereço muda, o conteúdo do banco continua apontando para o antigo: links dentro de rótulos, páginas, questões e recursos. O Moodle traz a ferramenta em /admin/tool/replace/index.php, com versão de linha de comando:
php admin/tool/replace/cli/replace.php --search=//antigo.exemplo.br --replace=//novo.exemplo.br --shorten --non-interactive
Três cuidados que a própria documentação sinaliza — e um quarto que aprendi apanhando:
- Backup do banco antes. A ferramenta reescreve texto em massa e não tem "desfazer".
- Sem barra final e sem esquema fixo. Buscar por
//antigo.exemplo.brcobrehttpehttpsde uma vez. - Rode uma vez só, com o site em manutenção. Duas execuções com padrões diferentes viram bagunça difícil de auditar.
- reCAPTCHA e integrações precisam de chave nova. Domínio novo invalida as chaves do Google usadas no cadastro por e-mail; o mesmo vale para callbacks de SSO e de gateway de pagamento, que apontam para a URL antiga.
Sete armadilhas que quebram uma migração de Moodle
As sete já apareceram em ambientes que recebi para arrumar depois de alguém migrar Moodle de servidor às pressas.
- Copiar o
moodledatacom o site no ar e sem segunda passada. Tudo que entrou depois da cópia sumiu. - Permissões erradas. O site abre, mas nenhum upload funciona. Quase sempre é dono do
moodledatadiferente do usuário do servidor web. - Collation diferente entre origem e destino. Acentuação corrompida em milhares de registros — e a correção depois é cara.
- Cron não configurado no destino. Sem cron, o Moodle para de notificar, de processar filas e de indexar — sem erro visível, silenciosamente.
- Plugins ausentes. O Moodle sobe reclamando de tabelas de plugins que não existem mais, e atividades inteiras somem dos cursos.
- Migrar e atualizar de uma vez. Quando quebra, você tem dois suspeitos e nenhum caminho de volta rápido.
- Não guardar o servidor antigo por uma semana. Desligar no dia seguinte é apostar que nada foi esquecido.
Quanto custa migrar Moodle de servidor — e quanto custa não migrar
Há três caminhos, com contas bem diferentes.
Nuvem oficial (MoodleCloud). Os planos padrão vão de AUD 230 por ano (50 usuários, 1 GB de armazenamento) a AUD 3.000 por ano (750 usuários, 50 GB), conforme a tabela oficial de planos. É previsível, mas com um limite duro: não se instala plugin nem integração, e domínio próprio só está incluído no plano mais alto. Para instituição que depende de plugin de matrícula, emissor de certificado ou integração com o sistema acadêmico, a conversa acaba aí.
VPS por conta própria. O aluguel é barato; o custo real é a hora de quem administra. Atualização de PHP, certificado, ajuste de banco, backup testado, monitoramento e resposta a incidente na semana de prova — isso é uma função, não uma tarefa.
Hospedagem gerenciada especializada. O servidor vem afinado para Moodle e alguém responde pelo funcionamento dele. É o modelo que oferecemos em hospedagem gerenciada de Moodle, e o que faz sentido para quem tem alunos dependendo do ambiente e não tem sysadmin dedicado.
O custo de não migrar é o mais fácil de subestimar: um AVA fora do suporte de segurança é superfície de ataque conhecida. Com 146.693 sites Moodle registrados no mundo, segundo o painel oficial de estatísticas, falha divulgada é explorada em escala — e não escolhe alvo.
Como a Agathas Web resolve isso
Migrar Moodle de servidor é serviço, não produto de prateleira. O que fazemos, na ordem:
- Diagnóstico do ambiente atual. Versão, plugins, tamanho de
moodledatae banco, integrações e o que está fora de suporte. Sai daí a estimativa honesta de janela. - Provisionamento do destino. Servidor já com a pilha compatível com o Moodle 5.x — PHP 8.2 ou superior com
sodium, banco na versão mínima exigida, Redis para cache e sessões, certificado, firewall e cron. - Ensaio completo antes do dia D. Site novo no ar em endereço temporário, para validar plugins, tema, SSO, envio de e-mail e desempenho antes de qualquer corte.
- Cutover com cópia incremental e TTL baixo, com o servidor antigo preservado em modo de manutenção por uma semana como rollback real.
- Operação depois. Backup diário automatizado com restauração testada, monitoramento, atualização de ponto de versão e suporte técnico em português. É o que está incluso na hospedagem gerenciada de Moodle — a migração inicial entra no processo de contratação, sem cobrança separada para ambientes dentro do porte do plano.
Somos certificados em Moodle, administramos ambientes críticos de EAD desde 2008 e desenvolvemos as integrações quando o plugin pronto não existe — de sincronismo com sistema acadêmico a notificação de aluno pela API oficial do WhatsApp, para avisar prazo e nota sem depender do e-mail que ninguém abre.
Para começar, o caminho é simples: pela página de hospedagem gerenciada de Moodle você solicita o diagnóstico, recebe o levantamento do ambiente atual e uma janela de migração proposta em data que não atropele o calendário letivo.
Conclusão: planeje o corte, não a correria
Migrar Moodle de servidor com segurança é menos sobre comandos e mais sobre sequência: congelar, copiar em duas passadas, validar em manutenção, cortar o DNS com TTL baixo e guardar o servidor antigo como rede de proteção. As três peças — código, moodledata e banco — precisam chegar juntas e coerentes, e o upgrade de versão fica para outro dia.
Se o seu ambiente está preso numa pilha que não aceita o Moodle 5.x, ou se o servidor já deu o que tinha que dar, o próximo passo é levantar o que existe hoje antes de escolher o destino. Peça o diagnóstico pela página de hospedagem gerenciada de Moodle e faça a mudança na janela certa — não no meio da semana de prova.
Perguntas frequentes
Quanto tempo leva para migrar o Moodle de um servidor para outro?
Depende muito mais do tamanho do `moodledata` e do banco do que do Moodle em si. O trabalho total — diagnóstico, provisionamento do destino, ensaio completo e testes — costuma ocupar alguns dias de calendário. Já a janela em que o site fica indisponível é outra conversa: com cópia em duas passadas (uma com o site no ar, outra só do que mudou) e TTL de DNS reduzido para 300 segundos, ela cabe em 30 a 60 minutos, e boa parte desse tempo é teste, não transferência. Quem tenta fazer tudo numa passada única, no dia, é que acaba com uma madrugada inteira de site fora do ar.
Dá para migrar o Moodle sem tirar o site do ar?
Downtime zero de verdade só existe em arquiteturas preparadas para isso: banco replicado, armazenamento compartilhado e balanceador na frente. Para a maioria dos ambientes, o caminho honesto é encurtar a janela, não fingir que ela não existe. O motivo é consistência: o dump do banco precisa sair num instante em que ninguém está gravando. Se um aluno enviar uma tarefa depois do dump, o arquivo fica no `moodledata` novo sem o registro correspondente no banco — a entrega existe no disco e não aparece na correção. Modo de manutenção, dump, cópia do delta e cutover: é curto, previsível e não perde dado.
Posso aproveitar e já atualizar a versão do Moodle na mesma migração?
Tecnicamente dá; na prática, não faça. A documentação oficial de migração recomenda mudar uma variável por vez — se algo quebrar, você precisa saber se a culpa foi do servidor novo ou da versão nova. Plugins de terceiros são o principal motivo: muitos param de funcionar entre versões maiores e o sintoma só aparece quando um professor abre a atividade em plena aula. A sequência que funciona é migrar, rodar uma semana no destino, confirmar cron, envio de e-mail, SSO e desempenho, e só então planejar o upgrade — de preferência mirando o Moodle 5.3, a próxima LTS, com suporte de segurança até 1º de outubro de 2029.
O que acontece com os links dos cursos se o domínio mudar?
Eles continuam apontando para o endereço antigo, porque estão gravados como texto dentro do banco: em rótulos, páginas, questões e descrições de atividade. O Moodle traz a ferramenta de busca e substituição em `/admin/tool/replace/index.php`, também disponível por linha de comando. Faça backup do banco antes — a operação reescreve texto em massa e não tem desfazer — e rode uma vez só, com o site em modo de manutenção, buscando por `//dominio-antigo` sem o esquema e sem a barra final, o que cobre `http` e `https` de uma vez. Depois, gere chaves novas de reCAPTCHA e atualize as URLs de retorno de SSO e de gateways de pagamento.
Meu Moodle é 4.5 LTS. Preciso migrar de servidor agora?
Não é emergência: o 4.5 recebe correções de segurança até 4 de outubro de 2027. Mas o suporte geral dele terminou em 6 de outubro de 2025, o que significa que bug sem impacto de segurança não é mais corrigido. A pergunta útil não é a versão, é o servidor: ele tem PHP 8.3 e banco na versão mínima exigida pelo 5.3? Se não tiver, você vai precisar de servidor novo de qualquer jeito. Nesse caso, é melhor migrar antes com calma, ainda na versão atual, do que empilhar migração e upgrade às pressas quando o prazo de suporte apertar.
Posts relacionados
Backup do Moodle: a rotina que salva a instituição
Banco, moodledata e código: o que copiar, com que frequência e como provar que a restauração funciona antes do desastre chegar.

Hospedagem Moodle: Requisitos, Custos e Erros em 2026
PHP 8.3, cron a cada minuto e moodledata fora da pasta pública: o que separa o plano que aguenta semana de prova do que cai.
Moodle Lento: As Causas Reais e Como Diagnosticar
Antes de contratar um servidor maior, meça. As causas mais comuns de lentidão no Moodle são de configuração — e custam zero para corrigir.