It appears setting a filegroup to read_only
prevents dbcc checkdb
for the entire database if the filegroup contains a columnstore index. When attempting to run checkdb
or checkfilegroup
(for any filegroup in the database, including read-write secondaries and [PRIMARY]
), the below error is returned...
Msg 8921, Level 16, State 1, Line 24
Check terminated. A failure was detected while collecting facts.
Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
Is there a supported method for having columnstore data in a read-only filegroup? Or am I precluded from integrity checks in this scenario?
Repro
create database check_fg_ro
go
use check_fg_ro
go
exec sp_changedbowner 'sa';
go
alter database check_fg_ro add filegroup check_fg_ro_2;
alter database check_fg_ro
add file (
name='check_fg_ro_2'
,filename='C:\check_fg_ro_2.ndf'
) to filegroup check_fg_ro_2;
go
create table foo (
i int not null primary key
) on check_fg_ro_2;
go
create columnstore index ccix_foo on foo(i);
go
use master
go
alter database check_fg_ro modify filegroup check_fg_ro_2 read_only;
go
dbcc checkdb( check_fg_ro ) with no_infomsgs, all_errormsgs, extended_logical_checks;
/*
Msg 8921, Level 16, State 1, Line 24
Check terminated. A failure was detected while collecting facts.
Possibly tempdb out of space or a system table is inconsistent. Check previous errors.
*/
go
Disclaimer: cross-posted to technet forums