There are TWO components to the backup:
- The database
- The folders and files
Let's start with 2...
Download all the ZC folders and the respective files to your hard drive via FTP. It is often best to do this in "stages" - ie: a few "folders" at a time, to minimize potential errors that can occur during ftp. I usually do the admin folder on its own, and likewise the includes folder, as these usually contain several MB of files.
Now, backing up the database... The CPanel option generally is for restores on the existing server, and will only allow the host to perform a restore. I favour phpMyAdmin, as it gives you full control.
If you navigate to phpMyAdmin, you will see two "frames". The LH frame lists all databases you have operational. Click on the one relevant to your store. Naturally, if you have other databases and you want to use these on your new installation, then you will have to "backup" (export) them too.
After clicking on your store database in the left frame, the right frame will refresh showing all the tables. Across the top will be some menu tabs.
Click EXPORT.
Then the screen will refresh, offering a few options. You want to EXPORT all tables, so select ALL . Then, make sure the SQL radio button is chosen.
Then, you need to choose what options to include in the export:
These are a series of radio buttons / check-boxes, and generally, the ones selected by "default" are all you will need. I make sure the following are included.
OPTIONS: Select COMMENTS... leave the others unchecked.
STRUCTURE: I just select these:
Add IF NOT EXISTS
Add AUTO_INCREMENT value
Enclose table and field names with backquotes
DATA - check this checkbox.
... and the following:
Complete inserts
Extended inserts
Use hexadecimal for BLOB
Export Type: select INSERT
(Scroll down a bit) - on extreme bottom right, click GO button...
depending on the SIZE of your database, this may take a few minutes, but the screen will refresh and you will see a large textbox containing ALL the SQL with the tables and data.
You now need to highlight all this stuff and COPY it to your clipboard.
Then, just PASTE it into a notepad file and save it as my_database.sql on your local machine.
You now have all the SQL needed to populate your NEW database on the new server.
If you move to a reputable, certified host, they will usually import this into your new setup, so you just need to send them the file.
If you want to do it yourself, create a NEW empty database on your new server.
Click the SQL menu option.
When the empty input field comes up (if it contains any sql just delete that) open that notepad file of your original database sql and copy all of it again to your clipboard.
Put your cursor inside the empty sql field in the new database screen.
PASTE the contents of the clipboard so all your sql appears in the field (textbox) and then click GO.
You will now have your database on the new server.
It is important to make sure that the MySQL versions on the NEW server are compatible with those on the OLD server.