• Hi Neil,

    I should have posted an update sooner once I found out. There is actually a NetApp KB that states it doesn't support CHECKDB for databases on an SMB fileshare.

    https://kb.netapp.com/support/index?page=content&id=2017129&locale=en_US

    You might need a NetApp account to access the link so here is the relevant text I was given from the KB:

    Cause

    The SQL Server attempts to create a hidden database snapshot in order to create a point-in-time consistent state of the database. However, since an SQL Server database snapshot cannot be created, DBCC CHECKDB will fail.

    We are trying to move away from using a NetApp fileshare for SQL because of this. But there are some potential workarounds that you could use if you are ok with the downsides.

    Workaround 1:

    Run the following command to set the database in the Read-Only mode:

    USE [master]

    GO

    ALTER DATABASE [Adventureworks] SET READ_ONLY WITH NO_WAIT

    GO

    use Adventureworks

    go

    DBCC CHECKDB

    Workaround 2:

    First, create a SQL Server database snapshot that resides on the local storage and then run the DBCC CHECKDB command against that SQL snapshot.

    Run the following commands:

    Use master?go

    CREATE DATABASE Adventureworks_ss

    ON (NAME = Broken, FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\Adventureworks.ss'

    ) AS SNAPSHOT OF Advnetureworks

    use Adventureworks_ss

    go

    DBCC CHECKDB

    The downside for #1 is that turning a db read only could be forcing a downtime that you don't want to take for your application. #2 can't be used for the system databases