14 min de leitura · Guia técnico
Solucionar problemas de migração de hospedagem sem downtime requer um processo meticuloso de transferência de arquivos, banco de dados e configurações DNS. Uma migração bem-sucedida mantém seu site acessível durante todo o processo, evitando perda de visitantes e receita. Este guia apresenta um método verificado para migrar qualquer site entre servidores sem interrupção de serviço.
Pré-requisitos
- Acesso SSH aos servidores de origem e destino
- Acesso ao painel de controle do provedor DNS
- Acesso ao painel de controle de hospedagem (cPanel, Plesk, etc.)
- Conhecimentos básicos de linha de comando Linux
- Backup completo do site antes de iniciar
- Ferramentas: rsync, mysqldump (ou equivalente para seu banco de dados)
Entendendo a migração sem downtime
A migração sem downtime (zero downtime) utiliza uma estratégia de transferência paralela onde o site continua operando no servidor antigo enquanto é configurado no novo. O segredo está na sincronização precisa dos dados e na transição suave do DNS. Diferente de migrações tradicionais, que podem causar interrupções de horas ou dias, este método mantém seu site acessível continuamente.
O processo se divide em três fases principais: preparação, sincronização inicial e transição final. A chave para o sucesso está no planejamento detalhado e na execução cuidadosa de cada etapa, especialmente na configuração do DNS e na sincronização final dos dados.
Vamos começar com a fase de preparação, fundamental para garantir uma migração sem problemas.
Fase 1: Preparação da migração
Reduzindo o TTL do DNS
O TTL (Time To Live) determina quanto tempo os servidores DNS armazenam em cache as informações do seu domínio. Para uma migração sem downtime, é essencial reduzir este valor com antecedência.
- Acesse o painel de controle do seu provedor DNS
- Localize os registros A e CNAME do seu domínio
- Altere o TTL para um valor baixo (300 segundos ou 5 minutos)
Exemplo de alteração no registro A:
dominio.com.br. 300 IN A 123.45.67.89
Aguarde pelo menos 24-48 horas após esta alteração antes de prosseguir. Isso garante que a propagação do TTL reduzido ocorra globalmente, permitindo uma transição mais rápida quando você alterar os apontamentos DNS.
Verificando compatibilidades entre servidores
Diferenças entre os ambientes de hospedagem podem causar problemas após a migração. Verifique:
- Versões de PHP, MySQL/MariaDB, Apache/Nginx
- Extensões PHP disponíveis
- Limites de recursos (memória, CPU, I/O)
- Configurações específicas do servidor (como open_basedir, max_execution_time)
Para verificar a versão do PHP no servidor atual, crie um arquivo info.php com o seguinte conteúdo:
<?php phpinfo(); ?>
Acesse este arquivo pelo navegador e anote as configurações importantes. Repita o processo no servidor de destino para comparar.
Fase 2: Sincronização inicial de dados
Transferindo arquivos com rsync
O rsync é a ferramenta ideal para transferência de arquivos durante a migração sem interrupção, pois permite sincronizações incrementais eficientes. Conecte-se via SSH ao servidor de destino e execute:
rsync -avz -e "ssh -p PORT" usuario@servidor-origem:/caminho/para/site/ /caminho/destino/site/
Substitua PORT, usuario, servidor-origem e os caminhos pelos valores corretos do seu ambiente. O output mostrará a lista de arquivos transferidos e estatísticas da operação.
Para sites maiores, considere usar a opção --exclude para ignorar arquivos temporários:
rsync -avz -e "ssh -p PORT" --exclude='tmp/*' --exclude='cache/*' --exclude='logs/*' usuario@servidor-origem:/caminho/para/site/ /caminho/destino/site/
Exportando e importando o banco de dados
A transferência do banco de dados requer atenção especial para garantir a integridade dos dados. No servidor de origem:
mysqldump -u usuario -p nome_do_banco > backup_banco.sql
Transfira o arquivo para o servidor de destino:
scp -P PORT backup_banco.sql usuario@servidor-destino:/caminho/temporario/
No servidor de destino, importe o banco de dados:
mysql -u usuario -p nome_do_banco < /caminho/temporario/backup_banco.sql
Para bancos de dados muito grandes, considere usar ferramentas como Percona XtraBackup ou mysqldump com a opção --single-transaction para evitar bloqueios durante a exportação.
Fase 3: Configuração do ambiente de destino
Configurando o servidor web
No servidor de destino, configure o servidor web (Apache ou Nginx) para hospedar seu site. Para Apache, crie um arquivo de virtualhost:
sudo nano /etc/apache2/sites-available/seu-dominio.conf
Adicione a configuração básica:
<VirtualHost *:80>
ServerName seu-dominio.com.br
ServerAlias www.seu-dominio.com.br
DocumentRoot /caminho/destino/site
<Directory /caminho/destino/site>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/seu-dominio-error.log
CustomLog ${APACHE_LOG_DIR}/seu-dominio-access.log combined
</VirtualHost>
Ative o site e reinicie o Apache:
sudo a2ensite seu-dominio.conf
sudo systemctl restart apache2
Testando o site no novo servidor
Antes de alterar o DNS, teste o site no novo servidor modificando seu arquivo hosts local:
No Windows, edite C:\Windows\System32\drivers\etc\hosts
No Linux/Mac, edite /etc/hosts
# Adicione esta linha
IP_DO_NOVO_SERVIDOR seu-dominio.com.br www.seu-dominio.com.br
Acesse o site pelo navegador e verifique se tudo funciona corretamente. Teste formulários, login, páginas dinâmicas e outras funcionalidades críticas. Este teste local permite identificar problemas antes da transição DNS.
Fase 4: Transição do DNS e sincronização final
Sincronização final antes da mudança DNS
Antes de alterar o DNS, faça uma sincronização final para garantir que dados recentes sejam transferidos:
rsync -avz -e "ssh -p PORT" usuario@servidor-origem:/caminho/para/site/ /caminho/destino/site/
Para o banco de dados, repita o processo de exportação e importação descrito anteriormente. Se o site tiver tráfego constante, considere colocá-lo em modo de manutenção temporariamente no servidor antigo durante esta sincronização final.
Alterando os registros DNS
Acesse o painel de controle do seu provedor DNS e atualize os registros A para apontar para o IP do novo servidor:
Antes:
dominio.com.br. 300 IN A 123.45.67.89 (IP antigo)
Depois:
dominio.com.br. 300 IN A 98.76.54.32 (IP novo)
Atualize também os registros CNAME, MX e outros conforme necessário. Como você reduziu o TTL anteriormente, a propagação ocorrerá mais rapidamente (geralmente entre 5 minutos e algumas horas).
Monitoramento da propagação DNS
Monitore a propagação DNS usando ferramentas online como verificadores de propagação DNS. Durante este período, seu site estará acessível tanto pelo servidor antigo quanto pelo novo, dependendo de qual servidor DNS o visitante estiver usando.
Use comandos como dig ou nslookup para verificar a propagação:
dig seu-dominio.com.br +short
nslookup seu-dominio.com.br
Fase 5: Sincronização pós-migração
Capturando alterações durante a transição
Durante a propagação DNS, alguns usuários ainda acessarão o servidor antigo, potencialmente criando ou modificando dados. Para capturar essas alterações:
- Mantenha ambos os servidores operacionais por 24-48 horas após a mudança DNS
- Configure um script para sincronizar periodicamente os dados:
#!/bin/bash
# Sincronização a cada 30 minutos
while true; do
rsync -avz -e "ssh -p PORT" usuario@servidor-origem:/caminho/para/site/ /caminho/destino/site/
# Exportar e importar banco de dados
ssh -p PORT usuario@servidor-origem "mysqldump -u usuario -p'senha' nome_do_banco > /tmp/sync_db.sql"
scp -P PORT usuario@servidor-origem:/tmp/sync_db.sql /tmp/
mysql -u usuario -p'senha' nome_do_banco < /tmp/sync_db.sql
echo "Sincronização concluída em $(date)"
sleep 1800
done
Atenção: Este script contém senhas em texto plano. Use apenas temporariamente e em ambiente seguro.
Verificação final e ajustes
Após a propagação DNS completa (geralmente 24-48 horas), faça uma verificação final:
- Teste todas as funcionalidades do site
- Verifique os logs de erro do servidor
- Confirme que emails, formulários e integrações funcionam corretamente
- Verifique o desempenho do site no novo servidor
Após confirmar que tudo está funcionando corretamente, você pode restaurar o TTL para um valor mais alto (3600 ou 86400) para reduzir a carga nos servidores DNS.
Problemas comuns e como resolver
Sintoma: Arquivos faltando após a migração
Causa: Permissões incorretas ou problemas na transferência com rsync.
Solução: Verifique as permissões dos diretórios e execute novamente o rsync com a opção -v para visualizar detalhes. Certifique-se de que o usuário no servidor de destino tenha permissões adequadas.
sudo chown -R usuario:grupo /caminho/destino/site/
sudo find /caminho/destino/site/ -type d -exec chmod 755 {} \;
sudo find /caminho/destino/site/ -type f -exec chmod 644 {} \;
Sintoma: Erro de conexão ao banco de dados
Causa: Configurações incorretas no arquivo de conexão ou credenciais desatualizadas.
Solução: Atualize o arquivo de configuração (como wp-config.php para WordPress) com as novas credenciais do banco de dados:
// Para WordPress
define('DB_HOST', 'localhost');
define('DB_NAME', 'nome_do_banco');
define('DB_USER', 'usuario_do_banco');
define('DB_PASSWORD', 'senha_do_banco');
Sintoma: Site parcialmente carregado com erros de CSS/JS
Causa: URLs absolutas apontando para o servidor antigo ou problemas com CDN.
Solução: Atualize URLs no banco de dados e verifique configurações de CDN:
// Para WordPress
UPDATE wp_options SET option_value = replace(option_value, 'http://antigo-dominio.com', 'http://novo-dominio.com');
UPDATE wp_posts SET post_content = replace(post_content, 'http://antigo-dominio.com', 'http://novo-dominio.com');
Sintoma: Emails não funcionam após a migração
Causa: Configurações de MX incorretas ou falta de configuração de email no novo servidor.
Solução: Verifique os registros MX no DNS e configure corretamente os serviços de email no novo servidor. Se estiver usando serviços de email externos como Google Workspace, certifique-se de que os registros SPF, DKIM e DMARC estejam atualizados.
Perguntas frequentes sobre solucionar problemas de migração de hospedagem sem downtime
Quanto tempo leva uma migração de hospedagem sem downtime?
O tempo varia conforme o tamanho do site e velocidade de conexão, mas geralmente entre 1-24 horas. A maior parte desse tempo é para propagação DNS, enquanto a transferência de dados pode levar de minutos a algumas horas dependendo do volume.
É possível migrar um site WordPress sem downtime?
Sim, é possível migrar WordPress sem downtime usando sincronização de arquivos com rsync, exportação de banco de dados e ajustes de DNS com TTL reduzido. O processo requer sincronização final após a mudança de DNS para garantir que nenhuma alteração seja perdida.
Preciso informar meus visitantes sobre a migração de hospedagem?
Não é necessário informar os visitantes se a migração for realizada corretamente sem downtime. O processo deve ser transparente para os usuários finais, que não perceberão a mudança de servidor se todas as etapas forem seguidas adequadamente.
Quais são os riscos de uma migração de hospedagem?
Os principais riscos incluem perda de dados recentes, problemas de compatibilidade entre servidores, configurações incorretas de DNS e interrupções temporárias de serviço. Estes riscos podem ser mitigados com planejamento adequado, backups completos e testes antes da migração final.
Posso migrar vários sites ao mesmo tempo sem downtime?
Sim, é possível migrar múltiplos sites simultaneamente sem downtime, mas isso aumenta a complexidade e os riscos. Recomenda-se criar um cronograma escalonado, começando pelos sites menos críticos, e utilizar scripts automatizados para sincronização em massa de arquivos e bancos de dados.
Conclusão
A migração de hospedagem sem downtime é um processo técnico que requer planejamento cuidadoso e execução precisa. Seguindo as etapas descritas neste guia, você pode transferir seu site para um novo servidor sem interrupções perceptíveis para seus visitantes.
- Sempre faça backups completos antes de iniciar qualquer migração
- Reduza o TTL do DNS com pelo menos 48 horas de antecedência
- Mantenha o servidor antigo ativo por alguns dias após a migração para capturar alterações durante a transição
Lembre-se que cada site tem suas particularidades, e você pode precisar adaptar algumas etapas para seu caso específico. O importante é seguir a metodologia geral de preparação, sincronização, transição DNS e verificação pós-migração.
Precisa de ajuda com migração de hospedagem?
A AviraHost oferece serviços de migração profissional que garantem a transferência segura e sem interrupções do seu site. Nossa equipe técnica especializada cuida de todo o processo para você.