sqlserver2000
症状
更新処理時にエラー、ピボットのサーバーの参照がエラーできない
修復方法
修復コマンド サーバーが動いているPCで
osql -S サーバー名 -U username
Use master
go
sp_dboption dbname, single, true
Use dbname
go
DBCC CHECKDB(DBname,REPAIR_ALLOW_DATA_LOSS )
go
sp_dboption dbname, single, false
go
ロックがかかっていたらエンタープライズマネージャーで調べ片っ
ぱしから強制終了
他の修復方法 -シングルモードにせずに修復するには
*エラーテーブルを他のテーブルに件数を限定してコピー
1.エラーテーブルを damyテーブルにコピー
2.ダミーテーブルをクリア、テーブル構成だけが残る
3.ダミーテーブルに、エラーテーブルを年月を指定してコピー(データ件数を絞る、サイズが大きすぎてエラーになっていると推測、テーブルをクリアした意味がある?)
4.エラーテーブルをリネイム
5.ダミーテーブルをエラーのあったテーブルに名前変更
第3の方法
データベースの復元
dbcc checkdbや
checktableが失敗するとデータベースが消失するので仕方なく、エラー前のデータから復元するわけですが。とりあえずそれでうまく更新できるようになったりします。。
今回の場合14/10/8、chkdskでもブルースクリーンが出たので、hddレベルのエラーかもしれないというか、イベントログにftdiskとかntfsのエラーが出まくってたのでhdd要因。
---イベントログ----------------
chkdisk時に出ました。
イベントの種類: 警告
イベント ソース: Ftdisk
イベント カテゴリ: ディスク
イベント ID: 57
日付: 2014/10/07
時刻: 18:42:42
説明:
データをトランザクション ログにフラッシュできませんでした。障害が発生する可能性があります。
イベントの種類: 警告
イベント ソース: Ntfs
イベント カテゴリ: なし
イベント ID: 50
日付: 2014/10/07
時刻: 18:42:37
説明:
{遅延書き込みデータの紛失} ファイル のためのデータを一部保存できませんでした。データを損失しました。 このエラーは、コンピュータのハードウェアまたはネットワーク接続の障害によって発生した可能性があります。このファイルをどこか別の所に保存してください。
--------------------------------------
処置
ユーザーデータベースをデタッチして別のドライブにコピーしてアタッチ
*デタッチしないとコピー不可だった。
システムデータベースはどうしたものか
どうしたものかじゃなくて、移さないとやばいのだが。。休みにでも移すか
参考)
SQL Server のデタッチとアタッチ機能を使用して SQL Server データベースを新しい場所に移動する方法
------------------------------------
原因不明
原因の推測
システムがおかしい
再起動後823エラーがよく出る
HDD LIFEを常駐させたらエラー頻発
特定のDBでエラーが出る
勘定奉行の翌月更新がかからなかった マウスはきく、NUM LOCKは反応するが他のメニューが固まる。
他のサーバーに移行したらすんなり更新できた
テーブルがでかすぎるのか? 46万件
月で一括DELETE 一括追加しているがたまに数字フィールドに文字が入ることがあり
そのせいでインデックスが壊れるのか?
普通は文字型が違うエラーで止まるはずだが。。。