- PR -

ASP.net 1.1 C#でMSDE DBのバックアップ

投稿者投稿内容
masatok2
ベテラン
会議室デビュー日: 2003/10/05
投稿数: 81
投稿日時: 2007-05-23 15:41
教えて下さい。

WEBサーバー内にMSDEがあり、ASPを利用する環境です。

C#内にて、 osql BACKUP DATABASE TO DISK='*********'

の様な、コマンドを実行して、バックアップ&復元を行いたいのです。

C#内で記述する事は可能なのでしょうか?

行いたい事は、MSDEファイルのバックアップ&復元なので、

別の方法でも、より簡単な方法が御座いましたら、ご教授下さい。

宜しくお願いします。
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-05-23 16:05
ASP.NET でバッチ起動してはいかがでしょうか?

  ASP.NETからバッチコマンドの実行
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-05-23 16:27
というか、batch file で十分なのでは?

C# でできたものは Web application なのか、console application なのか知りませんが、そうしなければならない理由はなんででしょう?
_________________
masatok2
ベテラン
会議室デビュー日: 2003/10/05
投稿数: 81
投稿日時: 2007-05-23 19:19
バッチファイルと言う認識がはじめて知りました。
少し調べたのですが、うまく出来そうです。

ありがとうございました!
masatok2
ベテラン
会議室デビュー日: 2003/10/05
投稿数: 81
投稿日時: 2007-05-24 18:02
バッチファイルを作成し行って見ました。

すると、驚くような問題が発生して仕舞いました。

BAT内容
=====================================
CD \
NET STOP MSSQLSERVER
CD Program Files\Microsoft SQL Server\MSSQL\Data

copy "\DBDB.mdf" "F:\"
copy "\DBDB_log.LDF" "F:\"
NET START MSSQLSERVER
=====================================

上記を実行すると、Fドライブ内に2ファイルは作成されるのですが、


バックアップ直前に、有るDBレコードの情報(例えば氏名)に更新を

かけて、上記BATにて、バックアップを実行し、その後、Fドライブから

Program Files\Microsoft SQL Server\MSSQL\Dataに上書きを行っても、

上記更新情報が反映されて居ない、多分古いDBにデータが書き換えられて

居るのです、先祖がえりの様なデータです。

データのサイズ等は正しくコピーされて居るのですが・・・・

因みに「 xcopy 」でも同様でした・・・。

ご存知の方お手数ですが、ご教授願います。
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2007-05-24 22:18
masatok2さん、こんばんは。

「驚くような問題」については検証してませんが、取り敢えずここ↓だけ反応。
引用:

BAT内容


bat ファイルの中身は、
osql -E -S dbname -i backupscriptifile.sql
とかいう感じで良いんじゃないでしょうか。
masatok2
ベテラン
会議室デビュー日: 2003/10/05
投稿数: 81
投稿日時: 2007-05-25 00:10
ありがとうございます、勉強の為にも
試させていただきたいと思います。

先ほど書き込ませて頂きましたBATを書いた理由なのですが、
有事に復元を行う時に、エンドユーザーが容易に

1:MSDEを止める
2:ファイルをコピーする
3:復元完了

と言う「レストア」が出来ないユーザーに使いやすい
ファイルの形状で、バックアップをしたかったから
なのでした。

己の知識の浅さとファイル周りの奥の深さを
思い知って居ます。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-05-25 06:26
CD Program Files\Microsoft SQL Server\MSSQL\Data

CD "\Program Files\Microsoft SQL Server\MSSQL\Data"

かなあ…とも思いましたが、その前にカレントディレクトリを
変更するのもいかがなものか、と思ったわけで。

copy "C:\Program Files\Microsoft SQL Server\MSSQL\Data\DBDB.mdf" "F:\"
copy "C:\Program Files\Microsoft SQL Server\MSSQL\Data\DBDB_log.LDF" "F:\"

でしょうか。
そもそもの copy "\DBDB.mdf" "F:\" も、ルートディレクトリからの
コピーになるので、実際にはコピーされていないような気がします。
コマンドを一つずつ入力して、正しい結果をバッチファイルに記述
してみるというのはどうでしょうかね。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。

スキルアップ/キャリアアップ(JOB@IT)