【環境】
OS:Windows2003Server Standard SP2
DB:SQLserver2000 8.0

ASPと連動したWEBシステムを構築していますが、保守計画のトランザクションバックアップで取ったTRNファイルが肥大化してしまいます。
よって
トランザクションログバックアップジョブに時間が多大に掛かってしまい、その間トランザクション使用領域の切り捨てがされないので、領域が圧迫されてしまいます。
※自動拡張は5%で設定してますが、自動拡張タイムアウトが頻発します

トランザクションバックアップジョブは2分に1回ほどの割合で実行しています。毎時起きるわけではないのですが、1日に数回そのような現象が発生してしまい、その間トランザクションバックアップジョブは稼動し続け、かつ自動拡張タイムアウトでシステム負荷が異常に高くなります。

大変困っております。。
なにか対策がある方は是非教えていただきたいと思います。
また、同様の事例がある方がいらっしゃいましたら教えてください。

些細な情報、対策でも良いのでどうぞ宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

正直回答に自信はありませんが、わかる範囲でお答えします。



復旧モデルはなんでしょうか?話を聞いている限り、フルですか?

また、トランザクションログの切り捨てと圧縮をした方がよさそうです。また、切り捨てがされないとのことですが、恐らくアクティブなログファイルがあると切り捨て対象にならないので、それかもしれませんね。

http://msdn.microsoft.com/ja-jp/library/ms178037 …
をご覧の上、アクティブログがあるか確認してみてください。
(アクティブログがあると、いくら圧縮かけても無駄なので)

また、切り捨てと圧縮の方法については、
http://techbank.jp/sqlserver/#a2
http://techbank.jp/Community/forums/p/1119/6132. …
あたりを参考にして頂ければと思います。

>2分に1回ほどの割合

これについては、復旧モデルをフル(完全復旧)以外のものにすれば変わるかもしれませんが確証はありません。
http://msdn.microsoft.com/ja-jp/library/aa173678(SQL.80).aspx

1時間に1回、バックアップを自動的に戻すようなことをしなければ、
復旧モデルは、完全復旧でなくても良いような気がするので、
ご検討ください。
    • good
    • 0
この回答へのお礼

大変参考になりました!ありがとうございます。
上記URLを参考にして試してみます!

お礼日時:2009/05/19 19:20

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QSQLServer2012の復元ができない

いつも楽しく勉強させていただいております。

環境はSQLServer2012のExpressでOSはWindowsServer2008です。

Test1というデータベースのバックアップを取ってTest2という名前で復元しようとしましたが、なぜか失敗してしまいます。
どなたか原因を教えていただけませんか。

次の手順でバックアップを取り、復元をしています。


○バックアップのフェーズ

1.データベースのバックアップのダイアログボックスを開く。
2.ソースにTest1、バックアップの種類に完全を指定する。
3.バックアップ先は以下のファイルに

 C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\Backup\Test1.bak

4.OKをクリックし、「データベース'Test1'のバックアップが正常に完了しました」を確認。

○復元のフェーズ

5.データベースの復元のダイアログボックスを開く。
6.ソースはデバイスにする。
7.ファイル名に上記3.のファイル名を指定
8.転送先データベースはTest2とする。
9.OKをクリック(ここでエラーとなる)。

エラーメッセージは以下の通りです。

------------------------------------------
データベース'Test2'の復元に失敗しました。(Microsoft.SqlServer.Mangement.RelationalEngineTasks)
追加情報:

System.Data.SqlClient.SQLError:ファイル'C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA\Test1.mdf'に上書きできません。
データベースTest1が使用中です。(Microsoft.SqlServer.SmoExtended)
------------------------------------------

メッセージの内容で引っかかるのはTest1.mdfに上書きできませんというところです。
上書きでなくTest2という新規データベースに書き込みたいのですが。

ためしにTest2というデータベースを作成しておいて「既存のデータベースに上書きする」をチェックしてやってみましたが、やはり失敗。
メッセージは上と同じです。
SQLServerを再起動して試してもやはり結果は同じです。

何が悪いのでしょう。

いつも楽しく勉強させていただいております。

環境はSQLServer2012のExpressでOSはWindowsServer2008です。

Test1というデータベースのバックアップを取ってTest2という名前で復元しようとしましたが、なぜか失敗してしまいます。
どなたか原因を教えていただけませんか。

次の手順でバックアップを取り、復元をしています。


○バックアップのフェーズ

1.データベースのバックアップのダイアログボックスを開く。
2.ソースにTest1、バックアップの種類に完全を指定する。
3.バックアップ先は以下のファイルに...続きを読む

Aベストアンサー

復元時にデータファイルとログファイルの格納先を指定して変更する必要があります。

Qディスク上のサイズとサイズはどうして違うんですか?

ファイルのプロパティ「全般」タブに表示されている「サイズ」と「ディスク上のサイズ」は、どっちが本当のサイズなのでしょうか?
どうしてサイズが違うのですか?
メールでファイルを送るときは、どっちのサイズを見ればいいのでしょうか?
これについて詳しく解説しているページがあったら、それもぜひ教えて下さい。
よろしくお願いします。

Aベストアンサー

「サイズ」はファイルの本当の大きさ、
「ディスク上のサイズ」はファイルが記録されているクラスタを合計した大きさです、
OSはファイルを幾つかのクラスタ(OSが管理するハードディスク上のブロック
の最小単位)を使ってHDDなどのメディアに保存します、

基本的に今のWindowsでは4KBのクラスタサイズで管理しているので例え1バイトのファイルでも「ディスク上のサイズ」4KBのサイズになってしまいます、
つまり常に「ディスク上のサイズ」の方が大きくなっているはずです、

メールに添付する場合は「サイズ」を確認するだけでOKです。

QEXCEL VBAマクロ作成で、他のEXCELからデータを取り込みたい

メインプログラム(EXCEL VBA)より、
他のフォルダーにあるEXCELの項目の内容を取り込みたいです。
たとえば他のフォルダーのEXCELのRange("A2:A3").ValueをメインプログラムのRange("C2:C3").Valueにセットしたい時です。

・コマンドボタン押したら、どこのEXCELから取り込むかのポップアップ(?)は、表示はできてます。
・作業者が選んだパスとブックもMsgBoxで表示できてるので、もらう相手の場所も取得できてます。

・となると次はOPEN,INPUTですか?
テキストデータの取り込みですと、Inputでそのバッファを定義してるのですが、なんか違うような。。。

よろしくお願いします!

Aベストアンサー

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Cells(2, 2).Value ' 相手シートの B2 の値を自分自身の A1 に書き込む

readBook.Close False ' 相手ブックを閉じる
Set readSheet = Nothing
Set readBook = Nothing

私がやる方法です。

Dim writeSheet As Worksheet ' 自分自身の書き出し先シート
Set writeSheet = ThisWorkbook.Worksheets(1) ' Sheet1 を参照

Dim readBook As Workbook ' 相手ブック
Set readBook = Workbooks.Open(filename) ' 相手ブックを開いて参照
Dim readSheet As WorkSheet ' 相手シート
Set readSheet = readBook.Worksheets("sheetName") ' 相手シートを参照
' または Set readSheet = readBook.Worksheets(sheetIndex)

' 例えば
writeSheet.Cells(1, 1).Value = readSheet.Ce...続きを読む

Q期限切れのバックアップの削除

有効期限を設定して日数が経過してもバックアップファイルは自動では消えないのでしょうか?

不要なバックアップを自動的に削除する為には、毎回ファイルを作成するのではなく、
一つのファイルに追加していくと、ファイル内から期限切れのバックアップが消えていくのでしょうか?

試せばいいのでしょうが、期間を一日にしても結果が判るのが月曜日になってしまい、
週末を悶々としてすごさないといけないので質問しました、よろしくお願いします。

Aベストアンサー

#1です。
「メンテナンスクリーンアップタスク」というのを追加すれば可能です。
メンテナンスプランで作成されるバックアップは1バックアップ1ファイルになりますので、指定日数後に削除するように登録しておけば期限が過ぎたバックアップファイル自体が削除されていきます。


人気Q&Aランキング

おすすめ情報