Windows PowerShell will automatically lock the site collection during backup to reduce the risk of SQL blocking and locking errors.
Backup Command: Backup-SPSite -Identity http://ps.rlan.ca -Path "D:\temp\RootBackup.bak"
Restore-SPSite -Identity http://www.rlan.ca/sites/New/ -Path "D:\temp\PSRootBackup.bak"
If you have custom solution and if you take backup from one server to another and restore it, the custom solution related to backup doesn’t go with backup. So after restoring backup you need to manually deploy the solution on the destination server.