Create & maintain mirror site

Hey all-

How would I go about creating an exact duplicate of my forum site? I understand that I can simply upload a backup (from CPanel) and alter some variables and get this to work. It’s mostly a php site with two databases.

Unfortunately, I’d like to have it automatically update (hopefully through Cron jobs.)

What I have is a forum, on shared hosting, that I’d like to have a backup of, so in case somethng were to go kerflooey at my original domain, I could simply offer another address (preferably on another server) to point my members to. A backup site that is up to date at any given point. I don’t get many posts per day, but they eventually add up. Also, right now, it’s a bit big to just upload a backup each time i might need it…it’s currently about 4GB and that takes me too much time to download and upload.

I know what I mean to say as it’s pictured in my mind, but getting that visual onto the printed “page” is proving difficult for me. Does anyone understand me? And if so, could you please advise me of how I might go about accomplishing what I’d like to do?

Thanks all.

Database servers like MySQL, MS SQL do have direct mirroring features.
But the network may not be reliable, or it may not be allowed, eg due to the ISP’s server not allowing admin level connections to do the mirror.
Now…

The forum exists as a bunch of tables.

If every entry (rows) in the tables has a date stamp, then each day
dump the rows updated that day. (or since last time it was dumped.)

Normally the dump is like text , which you can cause to be commands to make it suitable as text based script run on the destination.
Transport the script to the backup server… and load it.
Run a few checks to ensure all rows are transferred, and updated.
For example you could checksum the rows by days, and transfer the checksums from one server to the other, and then compare the checksum.

If there is no time stamp on each row, then you might do the full table,
Or, dump the whole file each day, and use ‘diff’ to extract just the update between the days.