スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサードリンク

SQL Server データベースのエラー修復

DBCC CHECKDB


SQL Serverから返されたエラー


CHECKDB により、データベース '○○○' に 0 個のアロケーション エラーと 47 個の一貫性エラーが見つかりました。
repair_allow_data_loss は DBCC CHECKDB (○○○) で見つかったエラーの最小修復レベルです。
DBCC の実行が完了しました。DBCC がエラー メッセージを出力した場合は、システム管理者に相談してください。


突然上記エラーが発生し、アプリケーションが異常動作するようになったとお客様から連絡があった。

お客様からデータベースをお預かりし、早速修復を試みたので、ここに備忘録を残しておきます。


データベースの修復手順


【手順】
1.現在のデータベース物理ファイル(○○○○.mdf、○○○○.ldf)を別のディレクトリにコピーしてください。

2.SQL Server Management Studio、もしくは、Enterprise Manager等で、
  問題のデータベースと同名のデータベース、同名のデータファイル、同名のログファイルを作成してください。

3.サービスから SQL Server を停止してください。

4.手順1でコピーした物理ファイル(mdf、ldf)を、手順2で作成した新規のデータファイル、
  ログファイルに上書きコピーしてください。

5.SQL Server を起動してください。

6.以下のコマンドでデータベースのエラー状況を確認してください。

use master
go
sp_configure 'allow updates',1
go

reconfigure with override
go

update master..sysdatabases set status = 16 where name = 'データベース名'
go

DBCC DBRECOVER ('データベース名', IGNOREERRORS)

※なお、この時点で「未確認」のままであれば、緊急モードで DDBC REBUILD_LOG を実施してください。

DBCC CHECKDB('データベース名')

これでエラー内容が判明します。

で、エラー修復が以下の通り。

※データベースによっては数時間要します。


1.シングルユーザーモードにします(しないとREPAIR_ALLOW_DATA_LOSSオプションが使えない)
ALTER DATABASE [データベース名] SET SINGLE_USER

2.修復します
DBCC CHECKDB ('データベース名', REPAIR_ALLOW_DATA_LOSS)

3.整合性チェックします
DBCC CHECKDB ('データベース名')
DBCC CHECKCONSTRAINTS

4.マルチユーザーモードに戻します
ALTER DATABASE [データベース名] SET MULTI_USER


修復が完了したら、修復内容が表示されますので、
これを確認してください。


DBCC CHECKDB 実行時の修復完了メッセージ


修復: ページ (1:10545) が、オブジェクト ID 843150049、インデックス ID 1、パーティション ID 72057596967190528、アロケーション ユニット ID 72057597450780672 (型 In-row data) から割り当て解除されました。
メッセージ 8945、レベル 16、状態 1、行 7
テーブル エラー: オブジェクト ID 843150049、インデックス ID 1 は再構築されます。
エラーは修復されました。



DBCC CHECKDB で修復できない時は


上記修復で解決しない場合は、直近のバックアップファイルから復元するしかないようです。




スポンサードリンク

テーマ:プログラミング - ジャンル:コンピュータ

コメントの投稿

非公開コメント

DDBC REBUILD_LOG

いいスレッドありがとうございます、SharePointというMSのものを使っていますが突然SQLがこわれてしまった復活させようとしています。手順通り実行してDBCC DBRECOVER ('データベース名', IGNOREERRORS)
まで行いましたが未確認のままだったので緊急モードに変更してDDBC REBUILD_LOG をしようとしていますが(DDBCと書いてますがDBCCの間違いだと思います)
DBCC REBUILD_LOG('DB名`,'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\testLog.LDF')
go
こうやってDB名,新しいログファイルのPATHと名前を書きましたが(正しい方法なのかはわかりませんが)
DBCC ステートメントが不適切です←このようなエラーになっています。どこか間違っているのでしょうか、ご存知でしたら教えていただければ助かります。

DBCC REBUILD_LOG

コメントに気付かず現在に至ってしまいました。
とりあえずご返答させていただきます。

ステートメントの'DB名` の部分が間違っているようです。 後ろのシングルクォーテーション部分ですね。
正しく入力すれば問題ないかと思います。

遅くなりました事お詫びいたします。
スポンサードリンク
最新記事
カテゴリ
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
最新トラックバック
ブロとも申請フォーム

この人とブロともになる

月別アーカイブ
激安特価情報
Amazonタイムセール
楽天市場タイムセール
Yahoo出店記念セール
NTT-X Store 激安特価!
激安家電のGENO PLUS
コストコ・イケアの通販
つけたまま眠れるファンデ
家電品を安値で買うならこちら!
ケーズデンキ
ベルメゾンアウトレット
激安ブランドコスメ 週末セール
モバコレ SALE
au Brand Garden
アウトレットモール BRANDELI
ブックオフオンラインのオトナ買い
ビッグカメラ◆週末特別セール
ソフマップ 中古・アウトレット
【宿代全額ポイントバック】夏休み早期予約キャンペーン
ネットプライス 送料294円
イオンモールオンライン
EDIONネットショップ
最新コメント
天気予報

-天気予報コム- -FC2-
カウンター
検索フォーム
リンクに表示されるテキスト
ランキング参加中
クリックしていただけると、 こまつもとは大変嬉しいです。



人気ブログランキングへ

ランキングに参加しています。 クリックのご協力をお願い致します。 いつもありがとうございます。 にほんブログ村 通販ブログへ
ブログランキング・にほんブログ村へ
にほんブログ村 IT技術ブログ ソフトウェアへ
にほんブログ村 ゲームブログへ
にほんブログ村 IT技術ブログへ



人気ブログをblogramで分析

趣味・個人

ランキング

リンクリックブログランキング

私を登録 by BlogPeople



RSSリンクの表示
リンク
QRコード
QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。