SQLServerネタ
バッチを流して帰宅し翌日結果をみると、
エラーが発生していた。バッチ結果から全て計算処理が
済んでいるにも関わらずエラーになっていた。
原因を追究するべく調査を行ったところ、
イベントビューアで以下のエラーが発生していた。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
日付 :2004/03/18
時刻 :02:38
ソース :MSSQLSERVER
種類 :エラー
イベントID:17052
エラー : 1101、レベル : 17、状態 : 10
データベース 'TEMPDB' の新しいページを
割り当てられません。
ファイル グループ DEFAULT で使用できるページは
ありません。
オブジェクトの削除、別のファイルの追加、
またはファイル拡張の許可のいずれかを
実行して領域を作成してください。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
日付 :2004/03/18
時刻 :02:38
ソース :MSSQLSERVER
種類 :エラー
イベントID:17055
17053 :
C:\Program Files\Microsoft SQL Server\MSSQL\
data\tempdb.mdf:
オペレーティング システム エラー 112
(ディスクに十分な空き領域がありません。)
が発生しました。
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
だが、[tempdb.mdf]は8.1Mである。Cドライブの
空き容量も800MBほどある。
さらに調査を進めるとどうやらバッチ中の
CREATE DATABASEでFILENAMEを指定していないため、
C:\Program Files\Microsoft SQL Server\MSSQL\Data
に作成され、そのままバッチを進めたため、
おそらくCOMMITした時点で落ちたと思われる。
回避策として以下の3つを調査した。
1.CREATE DATABASEでの作成デフォルトパスを変更
2.バッチでCREATE DATABASE時のFILENAMEを指定
3.Cドライブをめっちゃ増やす
2はパッケージな為、あまり手を入れたくない。
3で4GBまで空きを増やした。
(というかマメに手入れしとけよっ)
できれば1も調査して変更したい...
M$サポを見たけどそれっぽいのもない。
レジストリも検索したがそれっぽいのもない。
ふと、SQLServerEnterpriseManagerで
指定できるのを��(・∀・) ハケーン !!
1.[SQLServerMachineName]のプロパティ
2.[データベースの設定]タグ
3.新規データベースの既定の場所
・既定のデータディレクトリ
・既定のログディレクトリ
で別ドライブのデバイスファイル専用フォルダを
設定して無事に解決!?っぽぃ。