software_vendor_id in msdb..Backupset always return 4608 RRS feed

  • Question

  • software_vendor_id in msdb..Backupset always return 4608. is bug?


    Thursday, May 10, 2012 4:08 PM


All replies

  • Hello Manish,

    Why should it return a different value?

    See http://msdn.microsoft.com/en-us/library/ms178536.aspx

    4608 stands for SQL Server

    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing

    • Proposed as answer by Maggie Luo Friday, May 11, 2012 9:34 AM
    • Marked as answer by Maggie Luo Tuesday, May 22, 2012 7:12 AM
    Thursday, May 10, 2012 4:13 PM
  • All SQL Server backups are done by SQL Server, so the software_vendor_id would not change.

    What exactly are you looking for?

    Friday, May 11, 2012 8:14 PM
  • I believe this *is* a bug - but not in the traditional sense of the word.  If you have a 3rd party vendor who uses a SQL-related API to perform backups, it would be up to the vendor to update the field software_vendor_id column in msdb..BackupSet to distinguish it from a native SQL backup.  Normally 3rd party vendors are used to backup larger databases, where native SQL backups are unable to provide the backups in a timely manner due to their size.

    When this occurs, the 3rd party vendors (which backup SQL) do not update this column in the msdb..BackupSet table, and thus it is not a good reference to help determine what was used to perform the backup.  This is not a Microsoft error, but a failure on the part of the 3rd party software vendor to assist with determining a backup was made with their software.  By default, it appears that Microsoft puts their own value (i.e. 4608) in the column.

    This value (software_vendor_id) is also found on the msdb..backupmediaset (linked via the media_set_id to the msdb..backupset) which has the software_name column.  Again, this appears to default to [Microsoft SQL Server] because 3rd party vendors do not modify it. 

    I am unaware if this is because the API presented to 3rd party vendors does not allow these columns to be updated (in which case it *is* Microsoft's fault).  In Microsoft BOL the software_name column is described as "Name of the backup software that wrote the media label. Can be NULL.".

    Monday, October 3, 2016 9:17 PM
  • Hello Linda,

    Seems you don't know how the backup/restore API of SQL Server work.

    No third-party can interact to the database engine or the database in raw directly, they all have to request a backup operation via the API and then get a data stream of the backup data; but the backup as it is still always done by MS SQL Server engine.

    See A Guide for SQL Server Backup Application Vendors

    Normally 3rd party vendors are used to backup larger databases, where native SQL backups are unable to provide the backups in a timely manner due to their size.

    How do you get on this? In theory it's impossible that 3rd party backups are fast then the native one.

    Olaf Helper

    [ Blog] [ Xing] [ MVP]

    Friday, October 7, 2016 7:33 PM
  • Unfortunately, I do not agree with this - and it does not answer the issue I raised.

    Microsoft lets other software vendors build products (ComVault, LightSpeed, etc.) that use the SQL API's to perform database backups.  There is a field in the msdb..Backupset table that could be used to identify which of these vendor products are creating the backups that SQL records.  In fact, Microsoft could identify these values (at least the vendor company) when they license the use of their API's.  Why have a column for a vendor, that will ONLY identify Microsoft, when other vendor products (note that the name of the column actually indicates [vendor] that it might not be Microsoft) are performing the backup?

    I am asking if this is a fault of Microsoft for not allowing the vendors to update this field to uniquely identify who they are, or is it the vendors who are at fault for not taking advantage of this facility to identify themselves as something other than software_vendor_id = 4608?

    Tuesday, November 1, 2016 9:40 PM
  • Linda,

    It is not clearly documented in books online that this field would be populated by name of software (LiteSpeed, ComVault) which is taking the backup. If you want any such field/information to be stored, please feel free to file a connect item and give your feedback to product team. If its very critical for you, then product team might give a thought to your requirement.

    Balmukund Lakhani
    Please mark solved if I've answered your question, vote for it as helpful to help other users find a solution quicker
    This posting is provided "AS IS" with no warranties, and confers no rights.
    My Blog | Team Blog | @Twitter | Facebook
    Author: SQL Server 2012 AlwaysOn - Paperback, Kindle

    Tuesday, November 1, 2016 11:46 PM
  • I am afraid this is where I would beg to disagree.

    If I understand correctly, Microsoft has designed fields in a backup table, called [Software_Vendor_ID and Software_Name].  Yet the only values that are populating it are Microsoft, as opposed to those vendor products which perform SQL Server backups (such as LiteSpeed, ComVault, etc.).  Microsoft itself doesn't even bother to populate it for different Microsoft products (such as DPM vs SQL Agent) which perform database backups?

    If Microsoft is the only "vendor" that takes backups, why have columns to help distinguish alternate backup sources? What purpose do these columns serve, if they only point back to Microsoft, and don't even distinguish between different Microsoft products that can take SQL database backups?

    I am being told that this would be viewed as a design change, and thus a cost option.  Microsoft is of course able to make this decision, but it is not [I feel] in the best interest of their customers who may struggle to deal with multiple backup vendors and multiple database backups via differing software products.  SQL Server records these backups faithfully, it just does not record enough information.

    If Microsoft is not going to use these fields to record anything other "Microsoft", what purpose do these columns serve?  How would a vendor register their SQL backup using the API that Microsoft provides, so that SQL Server can identify the backup software in the current MSDB backup tables?

    Tuesday, April 4, 2017 12:55 AM