
SQL Serverの保守計画について質問です。
真夜中に保守計画を動かしているシステムがあるのですが、
以下のようなエラーが発生しました。
クエリ "DBCC CHECKDB WITH NO_INFOMSGS" の実行が次のエラーで失敗しました:
"オブジェクト ID 321578567、インデックス ID 0、パーティション ID 72057597094199296、
アロケーション ユニット ID 72057597100556288 (型 In-row data) のページ (1:734549) の
PFS 空き領域情報が不適切です。予想値 0_PCT_FULL、実際の値 95_PCT_FULL。
CHECKDB により、テーブル 'D出庫予定データ' (オブジェクト ID 321578567) に 0 個のアロケーション
エラーと 1 個の一貫性エラーが見つかりました。
CHECKDB により、データベース 'AAAdb' に 0 個のアロケーション エラーと 1 個の一貫性エラーが見つかりました。
repair_allow_data_loss は DBCC CHECKDB (AAAdb) で見つかったエラーの最小修復レベルです。"。
考えられるエラーの理由: クエリに問題がある、"ResultSet" プロパティが正しく設定されていない、
パラメータが正しく設定されていない、または接続が正しく確立されていない。
整合性チェックでエラーが出ているのは分かるのですが、
具体的な解決策がよく分かりません。
何かアドバイスがいただければ、嬉しいです。
No.3ベストアンサー
- 回答日時:
PFSはGAMやSGAMと同じくシステムの内部情報ですので、通常意図的にこのような不整合を生じさせることはできないはず。
。ちなみにSQL Server 2005のSPはいくつですか?
以下のサイトによれば、SQL Server 2005 SP2までにはPFSのバグらしきものがあったようです。
http://www.sqlskills.com/BLOGS/PAUL/post/Corrupt …
直接関係あるかはわかりませんが、この内容だと主にBULK処理の場合に発生する可能性がありそうですね。
なるほど!
ちなみにSPは当たってないというひどい状態でした。
ってことで、最新のSPを当てることにしました。
わざわざありがとうございました。
本当に助かりました!
No.2
- 回答日時:
DBCC CHECKDBには修復オプションがあります。
保守計画ということはSQL Server2000ですよね。
http://technet.microsoft.com/ja-jp/library/aa258 …
1) DBCC CHECKDB (AAAdb,REPAIR_FAST)
2) DBCC CHECKDB (AAAdb,REPAIR_REBUILD)
3) DBCC CHECKDB (AAAdb,REPAIR_ALLOW_DATA_LOSS)
今回のメッセージでは"repair_allow_data_loss は DBCC CHECKDB (AAAdb) で見つかったエラーの最小修復レベルです"と出ているので、3)でないと直らないかもしれませんが、1)2)はデータロストの可能性はないのに対し、3)は不整合データをページレベルで削除して整合性を確保するため、データロストの可能性があります。
したがって、既にアドバイスがあるように可能ならばリストアが無難です。
ただ、今回のケースでは'D出庫予定データ'に不整合があると判明しているため、正しいバックアップがない場合は修復を実行して、データロストをチェックするというアプローチもありかもしれません。
なお、修復オプションはデータベースをシングルユーザモードに変更してからでないと実行できません。
ALTER DATABASE AAAdb SET SINGLE_USER
GO
(修復)
ALTER DATABASE AAAdb SET MULTI_USER
GO
御回答ありがとうございます。
SQL Serverは2005です。
データは不整合だった分は、確かにバッサリ
削除されてました。
御回答いただいた方法で一度、修復をしてみます。
ただ、このような不整合が起きる根本原因って
どんなことが考えられるでしょうか?
今回のエラーが出たテーブルは、
毎日数万件のデータを作成し、更新し、
1日の終わりの締め処理でテーブルを空っぽにするような
テーブルなんです。
そのようなテーブルは他にもあるんですが、
同じようなテーブルは、このエラーがたまに発生します。
No.1
- 回答日時:
「空き領域情報が不適切です」というのがあるので、
まずはディスクの空きが十分にあるか。およびデータファイルの空きが十分か(自動拡張が設定されてればこのエラーに関しては気にしなくていいかも)を確認かも。
で、一番無難なのが、多分データベースを一度バックアップとって復元すること。領域関連のエラーっぽいので、バックアップ→復元で作り直せば戻せそう。
その場合、念のために一度サービスを落とすかでタッチするかして、MDF、LDFのファイルをコピーしておいたほうがいいかも知れません。
御回答ありがとうございます。
このPFS 空き領域情報というのがSQL Server上の
どこを見れば分かるのかを理解してないので、
エラー原因がつかめない状況です。
できれば、エラー原因を知りたいです。
ちなみにSQL Serverは2005です。
一応、解決策としては、復元もしくは、
該当のテーブルをDrop→Createをしようと
思っています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Excel(エクセル) EXCELの外部データ取得ができない 1 2023/03/23 09:03
- PHP preg_matchで Warning: Undefined variableが出ます 1 2022/11/15 17:06
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
- Windows 10 数年前からWindows10 の Update ができないです。なぜですか? 7 2022/11/09 06:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスでエラー このフィー...
-
BULK INSERTのエラー取得は可能...
-
#1062 - '0' は索引 'PRIMARY' ...
-
AccessにExcelデータの自動取込...
-
列名に変数を使うことはできな...
-
空白はダメというエラーの表示...
-
AccessVBA 実行時エラー'2766'...
-
DocuWorksでの印刷
-
SQL文で既定値の記述
-
(素人の質問) SQL Server エ...
-
実行時エラー459 withステート...
-
SQL文長の制限
-
オラクル(PL/SQL)のエラー
-
UPDATEを使ったSQL文にて
-
PL/SQL ORA-06502エラーに関し...
-
Transact-SQLのBULK INSERTでエ...
-
SQLserver2005 nvarchar を flo...
-
Access2010実行時エラー-21473525
-
複数フィールドの条件について
-
エラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
列名に変数を使うことはできな...
-
アクセスでエラー このフィー...
-
Access2010実行時エラー-21473525
-
空白はダメというエラーの表示...
-
SQL文長の制限
-
オラクル(PL/SQL)のエラー
-
DocuWorksでの印刷
-
SQLserver2005 nvarchar を flo...
-
AccessVBA 実行時エラー'2766'...
-
UPDATEを使ったSQL文にて
-
BULK INSERTのエラー取得は可能...
-
オラクルでisnumeric?
-
「1004:アプリケーション定義...
-
実行時エラー459 withステート...
-
ADOでの接続
-
Access 実行時エラー'3075' 対...
-
AccessのMDBのオープンエラーに...
-
SQL*Loaderで「オブジェクトが...
-
ODBCデータソースが削除できま...
おすすめ情報