I use readonlymode when migrating my sites, which I daily do to migrate localhost content to remote host.
I use drush's sqlq command to restore which better than BackupRestore module.
For proper migration, you must compare sites/all folder with that of live one. You also need to copy sites/default/files to the live one.
My typical restore goes like as in this Perl script:
chdir ("$home/public_html/$site") or die "Unable to change to site dire=$home/$site\n";
( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) = localtime(time);
$mon++;
$year += 1900;
my $file = "$inputdir/$prefix-sql-dmp-$mday-$mon-$year.sql";
-r "$file.gz" or die "$file.gz does not exists\n";
#compare modules
my $modulesfile="$inputdir/$prefix-all-$mday-$mon-$year.tar.gz";
my $modulesdir="$home/public_html/$site/sites/all";
if( -f $modulesfile)
{
run_cmd("$home/scripts/gij-restore/dircmp.sh $modulesfile $modulesdir");
}
run_cmd ("gunzip $file.gz");
run_cmd ("drush cc all");
run_cmd_ignore ("drush cron");
run_cmd ("drush vset site_readonly 1");
run_cmd ("drush sqlq --file=$file");
run_cmd_ignore ("drush pm-disable --yes devel ");
run_cmd ("drush cc all");
run_cmd_ignore ("drush cron");
run_cmd ("drush vset site_readonly 0");
unlink "$file" or die "Failed to delete $file";
print "Site restore success\n";
sendemail($site,"Restore success!");