5

多数のデータベースを実行しているSQLServer2005 SP2マシンがあり、そのすべてにフルテキストカタログが含まれています。これらのデータベースの1つをドロップするか、フルテキストインデックスを再構築しようとすると、ドロップまたは再構築プロセスがMSSEARCH待機タイプで無期限にハングします。プロセスを強制終了することはできません。サーバーを再起動して、処理を再開する必要があります。Microsoftフォーラムの投稿1に基づくと、問題は不適切に削除されたフルテキストカタログである可能性があります。すべてを削除せずに、問題の原因となっているカタログを特定する方法を誰かが推奨できますか?

1 [ http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2681739&SiteID=1] 「はい、データベースに全文カタログがありましたが、データベースの全文検索を無効にしていたため、無効にしましたmsftesql、私はそれらを疑っていませんでした。ただし、Microsoftサポートから、適切に削除されていないカタログをテストする方法を示す記事を受け取りました。そのため、古いカタログがまだ存在していることを発見しました。これは、全文検索を再度有効にした後でのみ削除できました。それ以降、バックアップは機能しました。」</ p>

4

3 に答える 3

2

ここに提案があります。破損したデータベースはありませんが、これを試すことができます:

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ください。

于 2008-10-03T19:32:41.160 に答える
1

プロセスモニターを実行してみましたか?それがハングして、根本的なエラーが何であるかを確認しましたか?プロセスモニターを使用すると、待機中/エラーが発生しているファイル/リソースを確認できるはずです。

于 2008-09-08T02:50:44.327 に答える
1

無効な全文カタログの場所についても同様の問題がありました。サーバーは、起動時にすべてのデータベースをオンラインにするわけではありません。データベースを dbid 順に処理し、途中で停止します。古い DB のみがオンラインになり、残りの DB にはアクセスできませんでした。sysprocesses を調べると、waittype = 0x00CC 、lastwaittype = MSSEARCH のプロセスが 12 個以上あることがわかりました。MSSEARCH を停止できませんでした。この問題は、alter database ... modifyfile コマンドの実行時にフル テキスト カタログを再配置したときに、それらの 1 つに間違ったパスを入力したときに発生しました。解決策は、MSSEARCH を無効にし、サーバーを再起動してすべての DB をオンラインにし、問題のあるデータベースを見つけてオフラインにし、alter database コマンドを使用してファイル パスを修正し、DB をオンラインにすることでした。次に、MSSEARCH を起動し、自動起動に設定します。

于 2010-03-23T00:47:01.640 に答える