This post was originally published here.
BizTalk provides out-of-the-box functionality to include your custom BizTalk database in the standard backup procedure. You can find all details on MSDN. Here’s a small synopsis:
- Execute these scripts against your custom database
- %BTSINTALLDIR%\Schema\Backup_Setup_All_Procs.dsl
- %BTSINTALLDIR%\Schema\Backup_Setup_All_Tables.dsl
- Add the SQL Agent account to the BTS_BACKUP_USERS role of your custom database
- Modify the adm_OtherBackupDatabases table of the BizTalkMgmtDb, add a record for your custom database
However, when I executed the BizTalk Backup Job after this change, I got the following exception:
“[SQLSTATE 01000] (Message 4035) BACKUP LOG is terminating abnormally. [SQLSTATE 42000] (Error 3013) BACKUP LOG cannot be performed because there is no current database backup.“
The cause was the fact that it is not possible to take a transactional backup of a database, if you didn’t take a full backup first. This issue was fixed by executing the stored procedure sp_ForceFullBackup of the BizTalkMgmtDb. Now the custom database had a initial full backup and the BizTalk Backup Job executed successfully. This result was an extra database backup: