2008でバッチファイルからバックアップするには?
お世話になっております。
SQL Server 2008 Expressで、DBのバックアップを定期的に取ろうとしているのですが、うまくいきません。
SQL Serverのタスク等ではなく、バッチファイルを作成し、
タイムスタンプを付けて保存したいと思っています。
例:「TESTDB_YYYYMMDD_HHMMSS.bak」
2005のときは、以下のファイルを用意し、
Backup.bat
Backup.sql
---- Backup.bat 内容 ------------------------
sqlcmd -SMYPC\SQLEXPRESS -Usa -iC:\DBBackup\DBBackup.sql -P"" >> C:\DBBackup\backup.log
(タイムスタンプを付ける処理)
---- Backup.sql 内容 ------------------------
BACKUP DATABASE [TESTDB] TO DISK = N'C:\DBBackup\TESTDB.bak' WITH NOFORMAT, NOINIT, NAME = N'TESTDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO
同様の処理を2008上で行うと、特にエラーメッセージも出ないのですが、
バックアップファイルが出力されません。
(Management Studio Express上でSQLを流すとバックアップファイルが出力されます。)
SQLCMDの仕様が変わった為かと思いますが、
解決策をご存知の方いらっしゃいましたら、宜しくお願い致します。
お礼
recover database文でできたのですね。 ありがとうございます。 alter database backup controlfile to traceでテキストのスクリプトが作成することは知っていたのですが、バイナリでバックアップした制御ファイルの使い方がわかりませんでした。