banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

SQLServer2005/2008/2012データベースの修復/疑わしい(Suspect)状態の修復

昨夜、データセンターで停電が発生し、SQLServer2008 サーバーが再起動されました。朝、Sharepoint システムにログインできなくなり、SQLServer の管理ツールで調査したところ、SharePoint_Config データベースに黄色い三角形の記号が表示され、データベースが疑問 / 疑わしい状態であることが示されました。すぐに以下の SQL スクリプトを使用してデータベースを強制的に回復しました。

use master
declare @databasename varchar(255)
set @databasename='SharePoint\_Config'
sp\_configure 'allow updates',1
reconfigure with override
--データベースの状態を強制的に変更
update master..sysdatabases set status = 16 where name = @databasename
--データベースの回復を試みる
dbcc dbrecover(@databasename, IGNOREERRORS)

結果は依然として疑問 / 疑わしい状態であり、おそらくデータベースのログファイルが破損していると推測されます。幸いなことに、これは SharePoint_Config データベースのみであり、ユーザーデータには影響を与えません。以下の方法を使用してデータベースを回復しました。

1.SQLServer サービスを停止する 2.SQLServer のデータベースフォルダーに移動し、SharePoint_Config と SharePoint_Config のログデータをバックアップする 3.SQLServer サービスを起動する 4. 同じ名前の新しい SharePoint_Config データベースを削除して作成する 5.SQLServer サービスを停止する 6.SQLServer のデータベースフォルダーに移動し、SharePoint_Config を以前にバックアップした SharePoint_Config で置き換える 7.SQLServer サービスを起動する 8.SharePoint_Config を緊急状態に設定する

 alter database SharePoint\_Config set emergency

9.SharePoint_Config データベースを回復する(多数の回復エラーが発生する)

use master
declare @databasename varchar(255)
set @databasename='SharePoint\_Config'
--シングルユーザーモードに設定する
exec sp\_dboption @databasename, N'single', N'true'
--データを回復する(データの損失を許可する)
dbcc checkdb(@databasename,REPAIR\_ALLOW\_DATA\_LOSS)
--データを回復する(データベースの構造を再構築する)
--dbcc checkdb(@databasename,REPAIR\_REBUILD)
--制約をチェックする
—dbcc checkconstraints
--マルチユーザーモードに戻す
exec sp\_dboption @databasename, N'single', N'false'

10.SQLServer サービスを再起動する 11. データの回復が完了しました。回復後のデータとバックアップデータの差分を手動で処理する

上記の方法は、データベースファイルが完全であり、ログファイルが不完全または紛失している場合にのみ適用されます。データベースファイルが不完全な場合は使用しないように注意してください。

参考 URL: http://blog.csdn.net/htl258/article/details/4136908 http://blog.sina.com.cn/s/blog\_75a555e401015o4z.html

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。