SQLVDI.DLL version required...

swjohnsonswjohnson Posts: 30
edited August 30, 2011 12:26PM in SQL Backup Previous Versions
We have a server with three instances on it. Two instances are SQL 2005 SP2 and one instance (just recently added) with SP4. After we installed SP4 on the third, we are no longer able to use the RG Backup 6.5.1.x tool anymore to backup or restore databases. In doing some digging, I noticed that the SQLVDI.DLL file has been updated from version 2000.85.2004.0 to 2000.85.2312.0.

What version of SQLVDI is required and could the mixed SP levels be causing an issue for the RG backup tool?

Thanks!

SJ

Error: 8/26/2011 1:49:24 PM: VDI error 1010: Failed to get the configuration from the server because the timeout interval has elapsed. Check that the SQL Server instance is running, that you have the SQL Server System Administrator server role; and that no other processes are blocking the backup or restore process; or try increasing the value of the VDITimeout registry setting in HKEY_LOCAL_MACHINE\SOFTWARE\Red Gate\SQL Backup\BackupSettingsGlobal\[InstanceName]
8/26/2011 1:49:24 PM:

8/26/2011 1:49:24 PM: SQL error 3013: BACKUP DATABASE is terminating abnormally.
8/26/2011 1:49:24 PM: SQL error 3201: Cannot open backup device 'SQLBACKUP_699DDD2B-7BB4-4DE6-8DFC-2C3F5D0C686F'. Operating system error 0x80770006(error not found).
8/26/2011 1:49:24 PM:
8/26/2011 1:49:25 PM: Memory profile
8/26/2011 1:49:25 PM: Type Maximum Minimum Average Blk count Total
8/26/2011 1:49:25 PM:





8/26/2011 1:49:25 PM: Commit 138674176 4096 152568 46071 7028973568
8/26/2011 1:49:25 PM: Reserve 1459552256 4096 208172 42415 8829652992
8/26/2011 1:49:25 PM: Free 6864668786688 4096 24457477242 359 8780234330112
8/26/2011 1:49:25 PM: Private 1459552256 4096 179338 87495 15691194368
8/26/2011 1:49:25 PM: Mapped 1585152 4096 112341 103 11571200
8/26/2011 1:49:25 PM: Image 32063488 4096 175519 888 155860992
8/26/2011 1:49:25 PM:

Comments

  • SJ,

    You mentioned that you added a new instance to an existing server. What version and Edition(s) are you running of SQL and how much memory are you giving to each instance?

    The 1010 error can be associated with lack of VAS memory situations.

    Chris
    English DBA living in CANADA
  • Chris,

    The server has 8GB and each instance has max memory set to 2048GB. All are Standard Edition SQL Server 2005 x64 (2 at SP2 and 1 at SP4) and that should leave about 2GB for SQL and the other memory pools.

    NOTE: one of the instances is not used except to replay log files.
  • Run this query in each instance as see what you return

    With VASummary(Size,Reserved,Free) AS
    (SELECT
    Size = VaDump.Size,
    Reserved = SUM(CASE(CONVERT(INT, VaDump.Base)^0)
    WHEN 0 THEN 0 ELSE 1 END),
    Free = SUM(CASE(CONVERT(INT, VaDump.Base)^0)
    WHEN 0 THEN 1 ELSE 0 END)
    FROM
    (
    SELECT CONVERT(VARBINARY, SUM(region_size_in_bytes))
    AS Size, region_allocation_base_address AS Base
    FROM sys.dm_os_virtual_address_dump
    WHERE region_allocation_base_address <> 0x0
    GROUP BY region_allocation_base_address
    UNION
    SELECT CONVERT(VARBINARY, region_size_in_bytes), region_allocation_base_address
    FROM sys.dm_os_virtual_address_dump
    WHERE region_allocation_base_address = 0x0
    )
    AS VaDump
    GROUP BY Size)


    SELECT SUM(CONVERT(BIGINT,Size)*Free)/1024 AS [VAS Total avail mem, KB] ,CAST(MAX(Size) AS BIGINT)/1024 AS [Max free size, KB]
    FROM VASummary
    WHERE Free <> 0

    Chris
    English DBA living in CANADA
  • Chris,

    Thanks, this is the result that I get back from the 3 instances.

    instance VAS (KB) // Max Free (KB)
    vsql30 (sp2) 8574413888 // 6703778112
    JRA (sp4) 8581239204 // 6710851968
    svydata6 (sp2) 8581229524 // 6710851968

    I also see this in the System Event Log.

    SQLVDI: Loc=SVDS::Open. Desc=BADMEM. ErrorCode=(-1). Process=1548. Thread=2112. Server. Instance=SVYDEMO. VD=Global\SQLBACKUP_6886F8B0-F810-40AF-B050-48DBED89BA60_SQLVDIMemoryName_0.

    SQLVDI: Loc=SignalAbort. Desc=Client initiates abort. ErrorCode=(0). Process=956. Thread=1132. Client. Instance=SVYDEMO. VD=Global\SQLBACKUP_5F1F3589-B066-401D-9AA3-620C22C9CC32_SQLVDIMemoryName_0.

    SQLVDI: Loc=CVDS::Close. Desc=Abnormal termination state. ErrorCode=(0). Process=956. Thread=1132. Client. Instance=SVYDEMO. VD=Global\SQLBACKUP_5F1F3589-B066-401D-9AA3-620C22C9CC32_SQLVDIMemoryName_0.

    So I am having my tech team run some memory diagnostics on the server .

    Thanks!

    SJ
  • The reason that I got you to run the query is that SQLBackup uses VAS memory. In SQL2005 it is set to 256Mb by default. In this memory all CLR and Linked Servers run as well as SQLBackup. If you run short of VAS memory SQLBackup will throw the 1010 error.

    Chris
    English DBA living in CANADA
  • peteypetey Posts: 2,358 New member
    I would check the sqlvdi.dll versions.

    In the registry, look for the key {40700425-0080-11d2-851f-00c04fc21759} in HKEY_CLASSES_ROOT. In the subkey InprocServer32, look for the copy of sqlvdi.dll that is used. Check the version number of this file. Since you are running a 64-bit system, you should find another entry in HKEY_CLASSES_ROOT\Wow6432Node\CLSID. Again, check the version number of this file and ensure it matches the 64-bit copy.
    Peter Yeoh
    SQL Backup Consultant Developer
    Associate, Yohz Software
    Beyond compression - SQL Backup goodies under the hood, updated for version 8
  • Peter,

    Yes both the sqlvdi.dll are the same version 2000.85.2312.0

    Thanks

    SJ
  • peteypetey Posts: 2,358 New member
    Is it only the SP2 instances that cannot back up, or is it all 3 instances?

    SQL Backup uses the SQL Server Virtual Device Interface (VDI) to communicate with SQL Server to receive/provide backup data. The VDI is implemented as a set of COM interfaces. As such, there can only be 1 registered instance of the VDI interfaces (or 2 on x64 instances, 1 for 32-bit, and another for 64-bit). In your case, the SP2 instances would be using the SP4 VDI library, which may be the cause of the problem.

    SQL Backup itself does have any requirement with regards to the VDI library that's installed. It will work just fine with any VDI library installed with SQL Server 2000 instances and above. It's the SQL Server instances themselves that may not always be compatible with newer versions of the VDI library.
    Peter Yeoh
    SQL Backup Consultant Developer
    Associate, Yohz Software
    Beyond compression - SQL Backup goodies under the hood, updated for version 8
  • Peter,

    Correct, we are not able to do backups/restores from the two SP2 instances. The SP4 instance works just fine.

    So as I am understanding you are saying this is an issues for the way SQL 2005 SP2 handled calls to the newer DLL. Correct? If so, then my only plan is to upgrade the other instances to SP4.

    Thanks!

    SJ
  • peteypetey Posts: 2,358 New member
    swjohnson wrote:
    If so, then my only plan is to upgrade the other instances to SP4.
    Yes, it looks that way. The error message that SQL Server is emitting:
    SQL error 3201: Cannot open backup device 'SQLBACKUP_699DDD2B-7BB4-4DE6-8DFC-2C3F5D0C686F'. Operating system error 0x80770006&#40;error not found&#41;.
    
    indicates that it does not recognise one of the VDI parameters (error code 0x80770006).
    Peter Yeoh
    SQL Backup Consultant Developer
    Associate, Yohz Software
    Beyond compression - SQL Backup goodies under the hood, updated for version 8
Sign In or Register to comment.