SQBConverter.exe splits SQB to multiple .bak files.

shanshan Posts: 4
edited December 7, 2010 7:26PM in SQL Backup Previous Versions
Hey, instead of re-inventing the wheel here, i thought i would check and see if someone's doing this (and how?)

we're backing up a ~300GB db using SQLBackup 6 and i have an alternate server i use for a couple accounting people to run reports on (so they don't hammer our live db or live report server - we are using redgate to log ship to our live report server, works great)

but the alternate report server is only updated once a week on sundays...and the first of the month. i used to just do a restore from a .bak file pre redgate.

now i have the went over the SQBConverter.exe file and that looks to work great, but it splits the .bak files out into 5 or 6 files. And now I am wondering if anyone has a script or anything to run to complete the restore?

thanks,
shan

Comments

  • Brian DonahueBrian Donahue Posts: 6,590 New member
    Hi Shan,

    SQL Server native backup and restore does not support interleaved IO like SQL Backup does, so the SQBConverter will split multithreaded backups into a series of files so they can be restored to SQL Server.

    All that's needed to restore these is to alter the restore command to specify multiple FROM DISK parameters. (RESTORE DATABASE [x] FROM DISK='x.bak', DISK='y.bak'... etc).
  • Eddie DEddie D Posts: 1,666 Rose Gold 5
    Hi Shan

    Thank you for your post into the forum. The number of converted files depends upon the number of threads used to create the backup file. When the backup process runs, it will create multiple files. The SQL backup process simply combines them to create a single .sqb file. When the file is converted, n number of files are created.

    There are two solutions to your question:

    1. Is to submit multiple FROM DISK parameters in your restore script, for example:
    RESTORE DATABASE [database_name] FROM DISK = '<path to file1.bak>', DISK = '<path to file2.bak>', DISK = '<path to file3.bak>', DISK = '<path to file4.bak>', DISK = '<path to file5.bak>' WITH RECOVERY, REPLACE, MOVE 'databasename_data' TO '<path to.mdf>', MOVE 'databasename_log' TO '<path to.ldf>'
    

    2. Modify the backup job that creates the backup file you wish to restore and removing the THREADCOUNT = <value> parameter. This means that the backup job will use a single thread to create the .sqb file. When the .sqb file is converted it will create a single .bak file.

    By removing the THREADCOUNT = <value> parameter, the time taken to create the backup file may increase.

    I hope the above answers your question.

    Many Thanks
    Eddie
    Eddie Davis
    Product Support Engineer
    Redgate Software Ltd
    Email: [email protected]
  • thanks for the replies guys. That may answer my question perfectly.

    If i'm running 5 threads - it will only ever create 5 .bak files? i wasn't sure if that was created based of of size or what. so if i have 5 .bak files and i know i'll always have 5 - that's pefect i can schedule my jobs knowing the .bak files names and write my TSQL accordingly.

    thanks again.
    shan
  • peteypetey Posts: 2,358 New member
    In addition to the above, there is also a restore-only license of SQL Backup that you could use on your reporting server. If you're interested, contact [email protected] for more details and eligibility.

    Thanks.
    Peter Yeoh
    SQL Backup Consultant Developer
    Associate, Yohz Software
    Beyond compression - SQL Backup goodies under the hood, updated for version 8
  • Cool, thanks Peter.

    shan
Sign In or Register to comment.