I have a few remote databases, hosted at my web hosts. For mysql, I use periodic mysqldump and for MSSQL, I use bcp to back them up. How do I validate those backups? How do I make sure that the backup was not partial (its done over the public network).
Write a small PHP script (or similar) that prints the number of records in each table, and install it onto your websites. When you download your backups, load them into a local database and run the same script locally against that database, comparing the results with the ones out on the web.
In SQL Server you can use the RESTORE command with the option VERIFYONLY in order to validate the contents of a database backup file.
See the following Books Online reference for details:
http://msdn.microsoft.com/en-us/library/ms188902.aspx
Further considerations for SQL Server Backups, it is considered good practice to perform a DBCC CHECKDB of your database prior to performing a database backup, in order to ensure/validate the integrity of the database data. This may not be practical however, dependent on the size of your database.
Books Online Reference: DBCC CHECKDB
Performing a CHECKSUM as part of a BACKUP DATABASE operation is also considered a good practice.
See Books Online: BACKUP DATABASE
Ultimately, the way to validate a backup is to use it for a restore. The acid test is: can you recreate a fully working database from the backup. Ideally, you'd be able to create it on some machine other than the one where the backup was made - to simulate recovery after the destruction of the machine where the backup was made.
Some DBMS provide tools that allow you to simulate such a recovery.