В SQL Server 2005 изменять расположение файлов ресурсной БД можно, что заявлено в msdn.
Посмотрим там же о SQL Server 2008 R2, читаем:
The resource database cannot be moved.
Все же полюбопытствуем, и попробуем сделать так же, как описано в msdn для SQL Server 2005:
C:\>NET START MSSQLSERVER /f /T3608
Проверим версию:
select @@version
Microsoft SQL Server 2008 R2 (SP2) – 10.50.4000.0 (X64) Jun 28 2012 08:36:30 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1(Build 7601: Service Pack 1) (Hypervisor)
Задаем новое расположение:
ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=data, FILENAME= 'C:\DATA\mssqlsystemresource.mdf'); ALTER DATABASE mssqlsystemresource MODIFY FILE (NAME=log, FILENAME= 'C:\DATA\mssqlsystemresource.ldf');
The file “data” has been modified in the system catalog. The new path will be used the next time the database is started.
The file “log” has been modified in the system catalog. The new path will be used the next time the database is started.
Перемещаем файлы БД mssqlsystemresource:
C:\>move "C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\mssqlsystemresource.*" C:\DATA\
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\mssqlsystemresource.ldf
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Binn\mssqlsystemresource.mdf
2 file(s) moved.
И перезапускаем SQL Server – всё работает.
Версия:
Microsoft SQL Server 2008 R2 (RTM) – 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)
Проблема:
В таблице IndexTable есть полнотекстовый индекс, около 3 миллиардов строк.
При старте актуализации (populate) получаем очень много таких ошибок в FT-логе:
2012-07-17 18:34:26.04 spid25s Error ‘0x80043630: The filter daemon process MSFTEFD timed out for an unknown reason. This may indicate a bug in a filter, wordbreaker, or protocol handler.’ occurred during full-text index population for table or indexed view ‘[TS_MageDB].[dbo].[IndexTable]’ (table or indexed view ID ‘667201477’, database ID ‘7’), full-text key value ‘1986286701’. Attempt will be made to reindex it.
Продолжается это 9 дней, загрузка процессора и диска не превышает ежедневную, процесс не заканчивается.
Ничего особенно полезного здесь (в моем случае 2008 R2, а не 2008) и здесь не нашел (Только “We have therefore resolve this issue as by design”)
Решение:
Помогло только пересоздание индекса, с последующим заполнением:
DROP FULLTEXT INDEX ON [dbo].[IndexTable] CREATE FULLTEXT INDEX ON [dbo].[IndexTable]( [IndexValue] LANGUAGE [Russian]) KEY INDEX [PK_IndexTable] ON ([FT_IndexTeble], FILEGROUP [ftfg_FT_IndexTeble]) WITH (CHANGE_TRACKING = OFF, STOPLIST = SYSTEM)
или, если мы хотим запускать заполнение позже, например, ночью, то:
...CHANGE_TRACKING = OFF, NO POPULATION...
и стартуем:
ALTER FULLTEXT INDEX ON [dbo].[IndexTable] START FULL POPULATION
Процесс длился около 12 часов, ошибок больше не было.