A successful server migration requires careful planning and execution. Use this checklist to ensure nothing is missed during your migration to Data Mammoth, whether you are performing a self-service migration or working with our migration team.
Pre-Migration Checklist
Planning
- [ ] Inventory your server — Document all services, websites, databases, and applications running on your current server.
- [ ] Check resource requirements — Ensure your new Data Mammoth server has sufficient CPU, RAM, and disk space.
- [ ] Choose the right OS — Select the same operating system version (or a compatible one) for the new server.
- [ ] Plan the timeline — Schedule the migration during a low-traffic period.
- [ ] Estimate downtime — Communicate expected downtime to stakeholders and users.
- [ ] Identify dependencies — Note external services, APIs, or integrations that reference your current server's IP.
Backups
- [ ] Create a full backup of your current server (files, databases, configurations).
- [ ] Download backups locally — Keep a copy on your local machine or a separate storage location.
- [ ] Verify backup integrity — Test that backups can be restored successfully.
- [ ] Document backup locations — Know where every backup is stored.
DNS Preparation
- [ ] Lower DNS TTL — Reduce the TTL on your DNS records to 300 seconds (5 minutes) at least 24 hours before migration. This ensures faster DNS propagation during cutover.
- [ ] Document current DNS records — Note all A, AAAA, CNAME, MX, TXT, and other records.
- [ ] Identify DNS provider — Know where your DNS is managed and ensure you have login access.
New Server Preparation
- [ ] Order your Data Mammoth server — See How to Order Your First Server.
- [ ] Complete initial server setup — Follow the Initial Server Setup guide for your OS.
- [ ] Install required software — Set up the web server, database, PHP/Python/Node.js, and any other required software.
- [ ] Configure the firewall — Allow necessary ports (SSH, HTTP, HTTPS, etc.).
- [ ] Set up SSH access — Configure SSH key authentication.
During Migration Checklist
Data Transfer
- [ ] Transfer website files — Copy all web content to the new server.
bash
rsync -avz -e ssh /var/www/ [email protected]:/var/www/- [ ] Export databases — Dump all databases from the current server.
bash
mysqldump -u root -p --all-databases > all_databases.sql- [ ] Import databases — Load databases on the new server.
bash
mysql -u root -p < all_databases.sql- [ ] Transfer configuration files — Copy web server configs, application configs, and cron jobs.
- [ ] Transfer SSL certificates — Copy SSL certificate files or plan to re-issue them.
- [ ] Transfer email data — If applicable, migrate email accounts and mailboxes.
- [ ] Transfer cron jobs — Recreate scheduled tasks on the new server.
bash
crontab -l > crontab_backup.txtConfiguration
- [ ] Configure virtual hosts — Set up web server virtual hosts for all domains.
- [ ] Update database connection strings — Ensure applications point to the correct database on the new server.
- [ ] Set file permissions — Verify ownership and permissions on web files.
- [ ] Configure reverse DNS — Set PTR records for the new IP. See Server Networking.
- [ ] Replicate cron jobs — Install all scheduled tasks.
Testing (Before DNS Cutover)
- [ ] Test via hosts file — Edit your local
/etc/hostsfile to point domains to the new server's IP for testing:
text
203.0.113.10 example.com www.example.com- [ ] Test all websites — Navigate to each site and verify pages, forms, and functionality.
- [ ] Test database connectivity — Ensure applications can read and write to databases.
- [ ] Test email — If the server handles email, verify sending and receiving.
- [ ] Test SSL certificates — Verify HTTPS works without certificate errors.
- [ ] Run application tests — Execute any automated tests for your applications.
- [ ] Check error logs — Review web server and application error logs for issues.
DNS Cutover Checklist
- [ ] Final data sync — Perform one last sync to capture any changes since the initial transfer.
bash
rsync -avz -e ssh --delete /var/www/ [email protected]:/var/www/
mysqldump -u root -p --all-databases | mysql -u root -p -h 203.0.113.10- [ ] Update DNS A records — Point domain A records to the new server's IP.
- [ ] Update MX records — If email moved, update MX records.
- [ ] Update other records — Update any CNAME, TXT, or other records as needed.
- [ ] Remove hosts file entries — Remove the testing entries from your local
/etc/hosts. - [ ] Monitor DNS propagation — Use online tools to check propagation progress.
Post-Migration Checklist
Immediate (First 24 Hours)
- [ ] Monitor the new server — Watch for errors, high resource usage, or connectivity issues.
- [ ] Check all websites — Verify every site is loading correctly from the new server.
- [ ] Monitor error logs — Review logs for any migration-related errors.
- [ ] Test email delivery — Send and receive test emails.
- [ ] Verify backups — Ensure automated backups are running on the new server.
- [ ] Check SSL certificates — Verify all certificates are valid and auto-renewal is configured.
First Week
- [ ] Restore DNS TTL — Increase TTL back to its normal value (e.g., 3600 seconds).
- [ ] Monitor performance — Compare performance metrics with the old server.
- [ ] Update external references — Update any hardcoded IPs in external services, APIs, or monitoring tools.
- [ ] Decommission old server — Once you are confident everything is working, cancel the old server. Keep the old server running for at least a week as a safety net.
- [ ] Document the new setup — Record the new server's configuration for future reference.
What to Do Next
- How to Request a Server Migration — Get expert help with your migration.
- Server Migration FAQ — Common questions answered.
- Server Networking — IPs, DNS, Reverse DNS — Configure DNS for the new server.
- Backup Strategy — Snapshots, Offsite, Automated — Set up backups on the new server.