Sometimes you will find a need to copy a website between two servers or upgrade hosting plan by switching to a brand new server or move to different hosting platform or may be sometimes moving to a complete different hosting provider. I have personally observed that the things go smoothly when we move a server or change the platform with the same host, but faced more trouble when switching from/to the different providers. Common mistakes happen if the source or destination host do not follow and do not execute some of these basic rules while doing the server/website migration.
Even though you sign up for a fully managed service and there is 24x4/7 supports to assist for the migration, you might face problems and inconvenience if you are not prepared enough and do not follow proper action plans. You have to provide all necessary information and updates to the local host, remote host and the domain registrar support teams whenever required to process smooth service and DNS transfer.
I have mostly worked on the Linux servers so will explain about all common types of the Linux servers migration. For windows hosting, the steps should remain same except data transfer and backup/restore procedure using windows control panel and other FTP/SCP utilities. This post should provide you guidelines and an action plan about which steps a server migration procedure needs to be followed to achieve successful migration. So here are some important points about migration that will help you to well prepare and have least problems during the switch over.
* The new server setup and environment Settings.
If you get a new server or signup for a shared hosting account then make sure that the server environment settings match up with your application requirements. For the shared/Reseller account, the web host will not able to make any major environment change as other users sites are hosted on the same, so you should inform
host about your exact application requirement while processing signup and add a appropriate comment in your order.
If you are going to move on your own VPS or Dedicated Server then do mention appropriate requirements and also inform host about move while submitting an order. You should request support to check your existing server settings and ask to replicate as much as possible on the new server, so that there won’t be any compatibility issues after the actual server move. If you cant afford much downtime or change in the IP Address then ask support team if there is way to retain the IP address on new platform.
If possible, ask your host to use the same OS, control panel and also retain the same PHP, MySQL, Apache and other system and application services version and config settings. Very often due to Operating System's End of Life Policy [EOL] and also bugs and security vulnerabilities in the software version, its not possible to get the same release and hence we could not replicate the same environment settings as the old server. So you should consult with your developer/application provider and be prepare to re-design/update application to work on the new server environment.
You can refer to the following post which explains as what to do after purchasing your new VPS or Dedicated Server. This will help you to plan and configure your new server with better performance and security policies.
* Notify staff members and customers about the change.
As the website/server will be moved physically and/or there will be change in the IP Addresses and other DNS settings, there will be service downtime and hence inconvenience. So make sure that you schedule such events to weekend or midnight as there will be less visitors at that time. Also make sure that you host a separate portal on another remote server where you can post schedule maintenance and downtime updates about the server migration. It's recommended to put your sites in maintenance mode while migration is in progress and also when other maintenance task is going on that can affect live visitors. Keep your customers informed with the status posts/comments and also do send emails to your staff and customers so that they can also be prepared.
The most common causes of downtime during migration are, Propagation time due to change in the IP address and other DNS records, suspension of appropriate services to transfer all updates on new servers and the server or network service restart in some IP address routing case. You should be aware of all impacts due to these activity and notify end users about possible downtime for the same.
* Data transfer.
The main concern about the server migration is as how we are going to migrate the data and the configuration settings. The retention of the configuration settings and structure of all other contents as the emails, web data [ located in the home directory and Document Root], logs and statistics data and databases will depend on the backup format. There are smart features in most of the well known control panels like cPanel, Plesk to take a full/partial backup of your account/site and get it downloaded on the local machine or transfer it directly to the remote server.
As each control panel has different build structure and format and features support, we cant copy/move all the contents and the configuration settings same as they are across another server. Although some control panels support direct migration from their web panels, not all contents and the configuration settings are copied because of compatibility issues. In such scenarios, we have to copy contents manually and then need to update configuration settings accordingly.
So we do recommend to select the same control panel on the new servers and use standard full backup transfer method via SSH or control panel itself as much as possible. Our support team usually evaluates the server configuration and resources usage as soon as we receive migration requests and then will start migration with the right method with client's confirmation.
Below are common migration scenarios in the Linux servers hosting wherein we have to adopt different transfer methods depending on the source and the destination servers.
Linux to Linux [With or without control panel ie. plain server].
Windows to Linux [With or without control panel].
cPanel to Plesk Linux Server.
Plesk to cPanel Linux Server.
Plesk to Plesk Linux Server.
cPanel to cPanel Linux Server.
Other control panel to cPanel/Plesk Linux Server.
cPanel/Plesk to Other control panel installed Linux Server.
We have to use control panel or SSH access with rsync, FTP/SFTP/SCP and wget utility to transfer the files and configuration settings between two servers. The transfer method will totally depend on the control panel support and size of the accounts and the server resources. For non compatible control panels and plain customized servers, we have to dump(export) the databases in .SQL/Data files and restore (import) on the remote server via phpMyAdmin or MySQL CLI tools. Regarding the files and directories data transfer, we have to make zip/tar archive and download it on the remote server via FTP/SFTP methods. If the server supports and allow access to SSH then use rsync tool to transfer data without creating zip/tar archive file as its very convenient and fast as compare to the FTP method.
Please note that most of the control panel uses different MTA (message transfer agent or mail transfer agent) and emails format, so we cant copy the email messages and email accounts across another server. In such cases, we can create email account manually on the new server and download all the messages via remote POP account option available in webmail plugins. If not supported by webmail then download all the emails on local machine via POP account configured under the suitable email client eg. Outlook/Windows Mail, Thunderbird.
If you feel need to change the domain or the user name and files/folders path then make sure that you update appropriate configuration files and reference in the database as well. Moving from different control panel and plain servers often cause file path issues. If the change is known and notable then we can easily replace it with replace utility from Linux shell or using rich text editor on any desktop OS. However, be prepared to face and troubleshoot URL and path issues due to the change in such environment settings. With the help of error logs and right trial and error method we can get it sorted out.
* DNS records update.
The most inconvenience and interruption in the web service during website/server migration is faced due to the DNS change. We can reduce or avoid the propagation time completely by adopting proper DNS transfer method. Any time that DNS changes are made, we have to wait for propagation to complete due to cache update on the DNS server. So changes in the Name servers, IP address or any other DNS record takes time to resolve request from new server depending on the DNS servers located in different geographic locations. Its always suggested to use the same IP address and name servers records as much as possible. This will avoid downtime caused due to the DNS propagation. If its not possible to retain the IP Address then try to use the same name servers and just change their IP Address to point on new one server, so there wont be need to change other DNS records for all other domains on the new server.
In order to avoid downtime due to the IP address change, put new server's IP address in DNS zones of appropriate domains on old server and restart the DNS service. This will redirect traffic towards the new server and will avoid request coming on the old server.
Be prepared for any DNS records update and IP address change at your convenient time with the help of hosting and domain registrar support. The support is available 24-Hour so schedule change activity in the midnight or off-peak times so that there wont be disruption in any service.
* Service suspension and final DATA sync.
As the DNS propagation takes a few minutes to 24 hours time and the resolution service totally depends on ISP's DNS server cache, some requests are forwarded to old server and the contents are served from the same server. To avoid any asynchronous update situation and get all the requests redirected to the new server,
disable/stop appropriate services on the old server and keep only DNS service running there to forward DNS request on new server till propagation happens.
The rsync is very useful utility software and network protocol in such asynchronous data communication situation due to the DNS change. We can sync only updated files and folders from old server to the new server during propagation time. So make sure that both the servers are accessible till the DNS fully propagate and we can run rsync again if required. Keep the old server active till 48 hours in case of you find need to compare data/settings or remigrate anything.
* Please ask for assistance.
We do take care of all migration things if the source and destination servers are hosted with us and client doesn't need to do anything from their end. Also if the client provides appropriate root/admin access credentials, we do provide all necessary assistance without any extra cost to migrate site/server from/to any external remote server. All of our managed servers include free technical support, so we argue clients to follow these rules with the help of our support team to avoid common mistakes in hosting migrations.
If you come across any issue or have a query about the server/site migration then just initiate a live chat session with our support team or open a helpdesk ticket and post your comment with the server login details. We will help you to get your server/site moved accordingly.