我们有一台运行大量数据库的SQL Server 2005 SP2计算机,所有数据库都包含全文目录。每当我们尝试删除这些数据库之一或重建全文索引时,删除或重建过程都会无限期地挂起MSSEARCH等待类型。无法终止该过程,并且需要重新启动服务器才能使事情再次运行。根据Microsoft论坛帖子1,问题似乎出在全文目录的删除不当。任何人都可以推荐一种方法来确定导致该问题的目录,而不必删除所有目录?
1 [ http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2681739&SiteID=1] “是的,我们确实在数据库中有全文目录,但是由于我禁用了数据库的全文搜索,并禁用了msftesql,我没有怀疑。但是,我从Microsoft支持部门获得了一篇文章,向我展示了如何测试未正确删除的目录。因此,我发现仍然存在一个旧目录,在重新启用全文搜索之后,并且只有在重新启用全文搜索之后,我才能删除该目录,从那时起我的备份就起作用了”
这是一个建议。我没有任何损坏的数据库,但是您可以尝试以下操作:
declare @t table (name nvarchar(128))
insert into @t select name from sys.databases --where is_fulltext_enabled
while exists(SELECT * FROM @t)
begin
declare @name nvarchar(128)
select @name = name from @t
declare @SQL nvarchar(4000)
set @SQL = 'IF EXISTS(SELECT * FROM '+@name+'.sys.fulltext_catalogs) AND NOT EXISTS(SELECT * FROM sys.databases where is_fulltext_enabled=1 AND name='''+@name+''') PRINT ''' +@Name + ' Could be the culprit'''
print @sql
exec sp_sqlexec @SQL
delete from @t where name = @name
end
如果不起作用,请删除过滤器检查sys.databases。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。