Date: Thu, 29 Jan 2004 00:50:31 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、今晩は
先ほどのメールで、一括ログ記録モードに危険があると触れました。
PASSJカンファレンスに来られない方のために簡単に要約すると、
select into/bulkcopy
などの命令は、SQLServer7.0時代では、ログに記録されない操作だと
呼ばれており、デフォルトでは禁止設定されておりました。
ところがこれが不評だったらしく、SQLServer2000では、この設定が
表面上から無くなり、CREATE TABLE 権限があれば、この命令が
実行できるようになります。
ところが内部的にはSQLServer7.0とあまり変わらず、この命令を
実行した時点でログの継続性は切れています。
しかし、ユーザには、そのことはわからないように振舞っています。
そして面白いことに、ログのバックアップを実行すると、ログの継続性が
途切れた部分に対応するデータファイルの該当部分のデータを吸い出して、
バックアップログの中に記録します。
ログのバックアップが成功すれば、ログの継続性が復活するという仕掛けです。
一番の問題は、データベースが壊れたときに、データファイルにアクセス
できるの?という点です。
普通に考えると、データファイルが壊れるから、データベースが使えなくなる
わけです。
ですから、この場合のログのバックアップは異常終了するはずです。
このことを知らずに、「一括ログ記録」にして、運用している事例が見受けられます。
ですから、「フル」モードにして下さい。
あるいは、SQLServer7.0時代と同じように、「一括ログ記録」モードの状態でも
select into/bulkcopy
を実行したら、完全バックアップを実施して、データベースの復元基点を
select into/bulkcopyの終了後に進めることが大事です。
完全バックアップに時間がかかるようなら、ログのバックアップでも良いでしょう。
いずれにせよ、悠長に、データベースをほったらかしにしてはいけません。
このような話の内容を、PASSJカンファレンスではデモする予定なのですが、
話すことが多いのでデモは割愛するかもしれません。
------------------------------------
(株)日本技術ソフト開発
堀川 明 (Akira Horikawa)
01月29日(木曜日) 00時49分記
mailto:who@example.ne.jp
http://www.horikawa.ne.jp/msde/
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|