Date: Mon, 6 Oct 2003 15:00:07 +0900
From: who@example.co.jp
初めまして。西村と申します。
私も同様の現象が起こったことがあります。
現象が全く同じか否かわかりませんが、参考になればと思います。
原因
トランザクションLOGファイルが増大し、7GBにまで増えていた。
対策
バックアップ後、トランザクションLOGを切り捨ててファイルサイズを
小さくした。
参考までに、トランザクションLOGファイルサイズを小さくした時のスクリプト
を後述します。
osql -U sa -P -S 192.168.0.1 -d aaa -Q "dbcc shrinkfile (aaa_Log,1)"
osql -U sa -P -S 192.168.0.1 -d aaa -Q "backup log aaa to disk
='c:\test.bak'"
osql -U sa -P -S 192.168.0.1 -d aaa -Q "insert into aaa.test1 values ('a')"
osql -U sa -P -S 192.168.0.1 -d aaa -Q "delete from aaa.test1"
osql -U sa -P -S 192.168.0.1 -d aaa -Q "backup log aaa to disk
='c:\test2.bak'"
osql -U sa -P -S 192.168.0.1 -d aaa -Q "dbcc shrinkfile (aaa_Log,1)"
以上。参考になりませんでしたら、すみません。
> -----Original Message-----
> From: SystemFarms 田中淑子 [mailto:who@example.co.jp]
> Sent: Monday, October 06, 2003 2:37 PM
> To: who@example.ne.jp
> Subject: [ml-msde:01205] MSDE のバックアップ・リストアについて
>
>
> はじめまして。田中と申します。
> VB6.0 でパッケージソフトの開発を行っています。
>
> 現在、MSDE7.0、もしくはMSDE2000、もしくはSQLServerをデータベースとする
> ソフトを開発しているのですが、
> このデータベースのバックアップ・リストアを実行すると、
> 端末により、実行後のデータベースに接続できないという現象がおきています
> 。
>
> この現象が起きる端末にインストールされているMSDEのバージョンは7.0、
> 2000と様々で、
> MSDEのバージョンによるものでは無いようです。
>
> また、同SQLをコマンドラインから実行すると、正常に処理されます。
>
> 実行スクリプトは以下の通りです。
>
> データベース名 : dbName
> MSDEデータベース保存先:C:\Program Files\MSSQL7\Data\
> バックアップファイル名:C:\xxx\xxx\backupfile
> MSDEユーザ名:userid
> MSDEパスワード:pass
> (上記ユーザはsaと同権限があるものとします。)
>
> -- バックアップ
> --------------------------------------------------------------
> -----------------------------------
> Dim cn As ADODB.Connection
> Dim strSQL As String
>
>
> strSQL = "BACKUP DATABASE LookDataBase TO DISK =
> 'C:\xxx\xxx\backupfile' WITH INIT"
>
> Set cn = New ADODB.Connection
> cn.ConnectionTimeout = 0
> cn.CommandTimeout = 0
> cn.Open "Provider=SQLOLEDB.1;User ID = userid;Password =
> pass;Data Source = dbName;Initial Catalog = master"
> cn.Execute strSQL
> cn.Close
> Set cn = Nothing
>
>
>
> -- リストア
> --------------------------------------------------------------
> -----------------------------------
> Dim cn As ADODB.Connection
> Dim strSQL As String
>
>
> strSQL = "RESTORE DATABASE dbName " & vbCrLf & _
> "FROM DISK = 'C:\xxx\xxx\backupfile'" & vbCrLf & _
> "with RECOVERY, REPLACE" & vbCrLf & _
> " ,MOVE ' dbName_DAT' to 'C:\Program
> Files\MSSQL7\Data\dbName.mdf'" & vbCrLf & _
> " ,MOVE ' dbName_LOG' to 'C:\Program
> Files\MSSQL7\Data\dbName.ldf'"
>
> Set cn = New ADODB.Connection
> cn.ConnectionTimeout = 0
> cn.CommandTimeout = 0
> cn.Open "Provider=SQLOLEDB.1;User ID = userid;Password =
> pass;Data Source = dbName;Initial Catalog = master"
> cn.Execute strSQL
> cn.Close
> Set cn = Nothing
>
>
> ---------------------------------------
>
> いろいろ検証した結果、このバックアップ、リストアができない端末で実行す
> ると、
> cn.Execute strSQL
> を実行した後、バックアップ、リストアの処理が終了しない内に
> cn.Close
> を実行している為、バックアップ、リストアに失敗してしまうようです。
>
> cn.Execute strSQL実行後に、メッセージボックスを表示し、一旦中断させると
> 、正常にできました。
> しかし、単に次の処理に移るまで、実行を待たせるだけでは失敗してしまいま
> す。
> (10秒メッセージボックスを表示させると正常に動くのに、処理に1分間ウェ
> イトをかけても失敗します。)
>
> 正常にバックアップ・リストアができる端末と、できない端末とで性能の違い
> はさほどありません。
> 現象の起きるOSは現在のところWindows2000ですが、Windows2000に限った現象
> かどうかは不明です。
>
> 現在は、cn.Execute strSQL を実行した後に、バックアップファイルが作成で
> きているか、または
> リストア後のデータベースに接続可能か、という処理を挟んで、実行している
> のですが、
> なぜ端末によってこのような現象が起きるのか原因は不明なままです。
>
> なぜこのような現象が発生するのか、または、バックアップ、リストアが正常
> に終了したという情報をどこからか得ることはできないのか、
> 何か情報をお持ちの方いらっしゃいましたらご教授願います。
>
> 長々と申し訳ありません。
> よろしくお願い致します。
>
>
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|