こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQL Server 2005の定期的な自動バックアップ

SQL Server 2005のDBの定期的な自動バックアップの方法を探しています
バージョンは無償版のSQL Server Express Editionを使用しています。
現状は手動でバックアップを行っていますが、
調べていくうちに無償版では定期的なバックアップはできないのではないかと疑っています。
PCマシンは、windows XP sp3を使用しています。
もし方法があれば教えてください。

投稿日時 - 2009-03-15 10:51:32

QNo.4798230

すぐに回答ほしいです

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

確かにSQL Server 2005 ExpressにはSQL Server Agentサービスがついていません。
したがって、スケジュール実行をSQL Serer側だけで実行させることはできませんので、
Windowsのタスクスケジューラを利用することになります。

インスタンス名はSQLEXPRESS,データベース名はtestdb,パスはC:\TEMPとして書いていますので、必要に応じて変更してください。

1) スクリプトファイルを作成する(C:\TEMP\backup.sql)
以下の2行を書いて保存
BACKUP DATABASE testdb TO DISK='C:\TEMP\testdb.bak' WITH INIT
GO

2) バッチファイルを作成する(C:\TEMP\backup.bat)
以下の1行を書いて保存
sqlcmd -S\.SQLEXPRESS -E -iC:\TEMP\backup.sql > C:\TEMP\backup.log

ただし、Windows認証にしていないならば、
sqlcmd -S\.SQLEXPRESS -Usa -Pパスワード -iC:\TEMP\backup.sql > C:\TEMP\backup.log

3) 上記バッチファイルをWindowsのタスクとして登録
特にWindows認証の場合はタスクの実行ユーザに注意

sqlcmdの詳細はリンクを参照してください。

参考URL:http://msdn.microsoft.com/ja-jp/library/ms162773(SQL.90).aspx

投稿日時 - 2009-03-15 14:14:38

補足

回答ありがとうございます。
ただ、少しうまくいっていません
「HResult 0xFFFFFFFF、レベル 16、状態 1
SQL ネットワーク インターフェイス : 指定された Server/Instance の位置を特定しているときにエラーが発生しました [xFFFFFFFF]. 」
というエラーになってしまいました。
「backup.sql」
BACKUP DATABASE [Sample1] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\Sample1.bak' WITH NOFORMAT, NOINIT, NAME = N'Sample1-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
「backup.bat」
sqlcmd -S\.SQLEXPRESS -E -iC:\Sample1\backup.sql > C:\Sample1\backup.log

投稿日時 - 2009-03-15 21:42:52

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>-S\.SQLEXPRESS
失礼しました。書き間違えましたね。。
-S.\SQLEXPRESS

投稿日時 - 2009-03-15 22:56:47

お礼

解決しました!
回答ありがとうございました。

投稿日時 - 2009-03-31 22:38:37