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