• ベストアンサー

MSDEでバックアップのスケジュールを組むには?

参考HPを見たのですが、どうもイマイチよくわからず、ここで質問しました。 ストアドプロシージャ、ジョブなど聴きなれない言葉がありまして、困っています。 どうぞ、ご教授よろしくお願いします。 参考HP http://www.horikawa.ne.jp/msde/support/msde2000-backup-job/msde2000-backup-job.html

質問者が選んだベストアンサー

  • ベストアンサー
  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.3

#1です。 補足の通りです。 【バックアップのストアドサンプル】 SQL Server 2005 Expres 参考URL http://msdn2.microsoft.com/ja-jp/library/ms165702.aspx http://msdn2.microsoft.com/ja-jp/library/ms170207.aspx ================================================================ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO CREATE Procedure [dbo].[DBのバックアップ] @Path nvarchar(50) = N'C:\DBバックアップ\', -- バックアップ先のフォルダ @Fname nvarchar(50) = N'ほにゃららDB.Bak' -- バックアップの出力先ファイル名 as declare @BKF as nvarchar(100) set @BKF = @Path + @Fname BACKUP DATABASE ほにゃららDB TO DISK = @BKF WITH FORMAT, NAME = 'Full Backup of ほにゃららDB' return ================================================================ 上記ストアドをDBに登録します。 登録するには上記内容を、メモ帳形式で保存し、拡張子を.SQL とします。 仮に "C:\BACK.SQL" とします。 SQLCMD で即時実行するコマンドを入力します。 コマンドプロンプトで ============================================================ sqlcmd -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -i "C:\BACK.SQL" ============================================================ で登録されます。 もし、エラーがあれば中断されます。 今回はこれをOS側で制御する簡単な方法を書きます。 まずメモ帳で"C:\backUP.BAT" というファイル名で新規作成します。 ================================================================ sqlcmd -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -Q "EXEC DBのバックアップ @PATH = 'C:\バックアップ先フォルダ',@Fname = 'ホニャララ_2006_06_3'" ================================================================ という内容を記入します。 このバッチファイル("C:\backUP.BAT")をうまくゆくかテストします。 コマンドプロンプトで実行してみます。 うまく行くことを確認したら  Windows XP の スタートップ・アクセサリ・シシテムツールの タスクマネージャを開きます。 これに先のバッチ"C:\backUP.BAT" を定時に実行するよう登録すれば 指定時刻に実行されます。 結果はDBのLOGとイベントビューワに記録されます。 DBのLOGについてはMSのホームページをご覧ください。 なお定期タスクはあえて登録しなくても上記方法で十分活用できます。変更も簡単なのでこちらをおすすめします。 ストアドの変数「@Pathと@Fname」に渡す内容を変更すればバックアップしたいDBや出力先も変更できます。 以上、参考まで

KOHEI_JAPAN
質問者

お礼

色々ためしてみて、何とかできました! 大変参考になりました。 ご丁寧な回答ありがとうございましたm(_ _)m

その他の回答 (2)

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.2

#1です。 補足の通りです。 【バックアップのストアドサンプル】 SQL Server 2005 Expres 参考URL http://msdn2.microsoft.com/ja-jp/library/ms165702.aspx http://msdn2.microsoft.com/ja-jp/library/ms170207.aspx ================================================================ set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO CREATE Procedure [dbo].[DBのバックアップ] @Path nvarchar(50) = N'C:\DBバックアップ\', -- バックアップ先のフォルダ @Fname nvarchar(50) = N'ほにゃららDB.Bak' -- バックアップの出力先ファイル名 as declare @BKF as nvarchar(100) set @BKF = @Path + @Fname BACKUP DATABASE ほにゃららDB TO DISK = @BKF WITH FORMAT, NAME = 'Full Backup of ほにゃららDB' return ================================================================ 上記ストアドをDBに登録します。 登録するには上記内容を、メモ帳形式で保存し、拡張子を.SQL とします。 仮に "C:\BACK.SQL" とします。 SQLCMD で即時実行するコマンドを入力します。 コマンドプロンプトで ============================================================ sql -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -i "C:\BACK.SQL" ============================================================ で登録されます。 もし、エラーがあれば中断されます。 今回はこれをOS側で制御する簡単な方法を書きます。 まずメモ帳で"C:\backUP.BAT" というファイル名で新規作成します。 ================================================================ sql -E -P -S ほにゃららDB -d ほにゃららDB -s , -w 1024 -Q "EXEC DBのバックアップ @PATH = 'C:\バックアップ先フォルダ',@Fname = 'ホニャララ_2006_06_3'" ================================================================ という内容を記入します。 このバッチファイル("C:\backUP.BAT")をうまくゆくかテストします。 コマンドプロンプトで実行してみます。 うまく行くことを確認したら  Windows XP の スタートップ・アクセサリ・シシテムツールの タスクマネージャを開きます。 これに先のバッチ"C:\backUP.BAT" を定時に実行するよう登録すれば 指定時刻に実行されます。 結果はDBのLOGとイベントビューワに記録されます。 DBのLOGについてはMSのホームページをご覧ください。 なお定期タスクはあえて登録しなくても上記方法で十分活用できます。変更も簡単なのでこちらをおすすめします。 ストアドの変数「@Pathと@Fname」に渡す内容を変更すればバックアップしたいDBや出力先も変更できます。 以上、参考まで

  • NOBNNN
  • ベストアンサー率50% (93/186)
回答No.1

まず、あなたがどの程度、知識を持っているかわからないので 何を説明したらよいのかわかりません。 もう少し、具体的なところまでわかるまで勉強することが必要です。 >>ストアドプロシージャ、ジョブなど聴きなれない言葉がありまして、困っています。 MSDE は何のためどのような目的で使っているのかOSのバージョンや EXCELからなのかACCESS 2003 からなのか・・・ まずは ACEESS 2003 の入門本やサイトを見ることをお勧めします。 MSDE はコマンドツール OSQL を操作することとなりますが 当然、SQLやストアドのほかビューといった知識が必要です。 SQLの命令事態は簡単なメモ帳(Notepad)などで書くことができます。 即時、実行する場合はOSQLのコマンドで実行できますが定期的に まとまった処理を実行させたい場合はバッチ処理として SQLの命令をプログラミングする必要があります。 これがストアドプロシージャです。 書き方も当然知っておく必要があります。 OSQLのコマンドの命令も書き方があります。 OSQLにバッチ処理として実行する場合はメモ帳などで作成した 別ファイルのSQL文(これにバックアップのSQLを記載) をWINDOWS-XP のタスクスケジューラで定時刻に実行する方法と MSDE内部の定期タスクを使ってストアドを実行する方法と二つの方法が考えられます。 MSDEはバージョンがあり、現在は  SQL server 2005 Express EDition になっています。 私自身あまり詳しくはないので省略します。

KOHEI_JAPAN
質問者

補足

ご丁寧なご回答ありがとうございます。 OSQLやSQL文は大丈夫なのですが、 スケジュールするやり方がわかりません。 上のご説明ですと、 ストアドプロシージャ(処理させたいSQL文)を作成 ↓ MSDE内部の定期タスクを設定し、ストアドを実行させる の流れでよろしいのでしょうか?

関連するQ&A