• 締切済み

sqlserverを外付けHDDにバックアップ

USBで接続した外付けHDDを Eドライブ として認識させ共有に設定した場合、Sqlserverの BACKUP DATABASE で直接バックアップできますか? 【環境】 win7 sqlserver2008R2 ネットワーク越しのバックアップはNGと認識はあるのですが、USB接続の場合は可能かどうか教えてください。 BACKUP DATABASE [TESTDB] TO DISK = N'E:\testdb.bak' WITH NOFORMAT, NOINIT, NAME = N'バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10

みんなの回答

  • heburusu
  • ベストアンサー率85% (140/164)
回答No.1

外付けHDDへのバックアップは特に問題ないように思います。

参考URL:
https://msdn.microsoft.com/ja-jp/library/ms179313(v=sql.120).aspx

関連するQ&A

  • sqlserverのバックアップを定期的に取りたいと考えています。

    sqlserverのバックアップを定期的に取りたいと考えています。 バージョンは2005です。 やり方は下記のページを見つけました。 http://okwave.jp/qa/q4798230.html 上記のスクリプトファイルなのですが、固定の名前ではなく日付をつけくわえたbakファイルを作りたいと考えています。 例 testdb_2010xxxx.bak しかし、下記のようなスクリプトを書いてもうまく動きませんでした。 backup database testdb to disk = N'c:\Backup\testdb_'+DATEPART(yyyy, GETDATE())+DATEPART(m, GETDATE())+DATEPART(d, GETDATE())+'.bak' 文字列の連結のやり方がおかしいのだと思いますが、どこが間違っているのでしょうか。

  • 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の仕様が変わった為かと思いますが、 解決策をご存知の方いらっしゃいましたら、宜しくお願い致します。

  • バックアップの成功/失敗

    ASP上からデータベースのバックアップを行うページを作成しています。 データベースエンジンは、SQLサーバー7.0/2000です。 バックアップは、以下のような手順で行います。 Dim db Set db = Server.CreateObject("ADODB.Connection") db.Open DB_CONNECTION_STRING db.Execute("BACKUP DATABASE [TEST] TO DISK = N'E:\全体.BAK' WITH INIT , NOUNLOAD , NAME = N'TEST バックアップ', SKIP , STATS = 10, NOFORMAT") バックアップ自体はできるのですが、db.Execute() は、バックアップの終了を待たずして、戻ってきてしまいます。バックアップ開始後、バックアップの処理中・終了・成功・失敗などのステータスを確認したいのですが、どうすれば取得できるのでしょうか? よろしくお願いいたします。

  • ログファイルの圧縮がされずに容量が日々増加してしまっています。

    ログファイルの圧縮がされずに容量が日々増加してしまっています。 SQLServer2008のジョブで定期的に以下の3ステップを行っています。 SHRINKFILEで毎回、圧縮できないでいます。 何が原因でしょうか。どのように解決したら良いかわからず投稿させていただきました。 【ステップ1 コマンド】 BACKUP DATABASE [TEST_DB] TO DISK = N'F:\TEST_DBバックアップ\TEST_DBバックアップ.bak' WITH FORMAT, NAME = N'TEST_DB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 【ステップ1 ログ】 BACKUP DATABASE により 22350897 ページが 1706.690 秒間で正常に処理されました 【ステップ2 コマンド】 BACKUP LOG TEST_DB TO DISK = N'F:\TEST_DBバックアップ\TEST_DB_LOGバックアップ.bak' 【ステップ2 ログ】  BACKUP LOG により 473562 ページが 55.721 秒間で正常に処理されました 【ステップ3 コマンド】  DBCC SHRINKFILE(TEST_DB_Log,1024) 【ステップ3 ログ】 圧縮できません。ファイルの末尾にある論理ログ ファイルが使用中です。 稿させていただきました。

  • SQLServer2005 メンテナンスプランについて

    SQLServer2005の管理、メンテナンスプランについての質問です。 互換性レベル7.0で運用しているDBのバックアップタスクを作成したいと思っています。 ツールボックスから「データベースのバックアップタスク」を使用すると、対象のDBとしてリストに表示されないため、 「T-SQLの実行タスク」を作成し、ステートメントに以下のように記述しました。バックアップは正常終了するのですが。。。 -------------------クエリここから----------------- BACKUP DATABASE [DB_NAME] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\DB_NAME\DB_NAME_backup_200901151519.bak' WITH NOFORMAT, NOINIT, NAME = N'DB_NAME_backup_20090115151905', SKIP, REWIND, NOUNLOAD, STATS = 10 GO declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N'DB_NAME' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'DB_NAME' ) if @backupSetId is null begin raiserror(N'確認に失敗しました。データベース ''DB_NAME'' のバックアップ情報が見つかりません。', 16, 1) end RESTORE VERIFYONLY FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\DB_NAME\DB_NAME_backup_200901151519.bak' WITH FILE = @backupSetId, NOUNLOAD, NOREWIND -------------------クエリここまで----------------- ここで、問題なのは、バックアップファイル名の指定が「DB_NAME_backup_200901151519.bak」固定であることです。 実行日時を取得してファイル名を生成するため、以下のように引数の「DISK」と「NAME」を変数で指定するように変更しました。 しかし、クエリの実行をすると、メッセージに以下のエラーが出力され、実行できません。 引数の渡し方が誤っているのでしょうか? 宜しくご教授願います。 -------------------変更後クエリここから----------------- DECLARE @TODAY VARCHAR(30); DECLARE @YYYY VARCHAR(4); DECLARE @MM VARCHAR(2); DECLARE @DD VARCHAR(2); DECLARE @HH VARCHAR(2); DECLARE @M VARCHAR(2); DECLARE @S VARCHAR(2); DECLARE @DISK VARCHAR(200); DECLARE @NAME VARCHAR(100); set @TODAY = convert(varchar, GETDATE(), 121); set @YYYY = SUBSTRING(@TODAY, 1, 4); set @MM = SUBSTRING(@TODAY, 6, 2); set @DD = SUBSTRING(@TODAY, 9, 2); set @HH = SUBSTRING(@TODAY, 12, 2); set @M = SUBSTRING(@TODAY, 15, 2); set @S = SUBSTRING(@TODAY, 18, 2); set @DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\DB_NAME\DB_NAME_backup_'+@YYYY + @MM + @DD + @HH + @M +'.bak'; set @NAME = N'DB_NAME_backup_'+@YYYY + @MM + @DD + @HH + @M + @S; print 'DISK:'+@DISK print 'NAME:'+@NAME BACKUP DATABASE [DB_NAME] TO DISK = @DISK WITH NOFORMAT, NOINIT, NAME = @NAME, SKIP, REWIND, NOUNLOAD, STATS = 10 GO declare @backupSetId as int select @backupSetId = position from msdb..backupset where database_name=N'DB_NAME' and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=N'DB_NAME' ) if @backupSetId is null begin raiserror(N'確認に失敗しました。データベース ''DB_NAME'' のバックアップ情報が見つかりません。', 16, 1) end RESTORE VERIFYONLY FROM DISK = @DISK WITH FILE = @backupSetId, NOUNLOAD, NOREWIND -------------------変更後クエリここまで----------------- -------------------メッセージここから------------------- DISK:C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\DB_NAME\DB_NAME_backup_200901211339.bak NAME:DB_NAME_backup_20090121133912 メッセージ 137、レベル 15、状態 2、行 1 スカラ変数 "@DISK" を宣言してください。 メッセージ 137、レベル 15、状態 2、行 4 スカラ変数 "@DISK" を宣言してください。 -------------------メッセージここまで------------------- 以上、よろしくお願い致します。

  • ネットワーク指定のバックアップ方法について

    SQL Server2000おいてバックアップをジョブに登録し定期的に取ろうと思っています。 ジョブにBACKUP DATABASE [ABCD] TO DISK = N'\\LANDISK\SHARE\BACKUP\BackData' WITH NOINIT , NOUNLOAD , NAME = N'Data バックアップ', NOSKIP , STATS = 10, NOFORMAT として"LANDISK"というネットワーク上にバックアップしようとしています。 しかし、バックアップ デバイス '\\LANDISK\SHARE\BACKUP\BackData' を開けません。デバイス エラーまたはデバイスがオフラインです。詳細については、SQL Server のエラー ログを参照してください。 というエラーとなってしまいます。 ログを見ても BackupDiskFile::CreateMedia: バックアップ デバイス '\\LANDISK\SHARE\BACKUP\BackData' を create にできませんでした。オペレーティング システム エラー = 5(アクセスが拒否されました。)。 となっております。 どなたか良い方法を分かりやすく教えていただけないでしょうか?

  • SQLServer2000でのトランザクションログ削除

    SQLServer2000のEnterpriseManagerにて、 「データベース全体+トランザクションログ」バックアップの設定を行ったのですが、 バックアップ時にトランザクションログが削除されていないようで、 ログファイルがみるみる大きくなってしまいまい、 数日で、HDD容量を使い切ってしまいそうです。 設定されたジョブの内容を確認したところ、 BACKUP LOG [DB名] TO [デバイス名] WITH NOINIT, NOUNLOAD, NAME = N'バックアップ名', NOSKIP, STATS = 10, NOFORMAT, NO_TRUNCATE のようになっていたので、NO_TRUNCATEを外してみましたが、ダメでした。 この『教えて!goo』内でも検索したのですが、 http://oshiete1.goo.ne.jp/kotaeru.php3?q=176852 が同内容の質問だったのですが、こちらはSQLServer7.0で、 この方法は、2000では使用できませんでした。 勉強不足でまことに申し訳ございませんが、 何卒、宜しくお願いいたします。 ≪環境≫ OS: Windows2000Server + ServicePack2 SQL: SQLServer2000 + ServicePack2

  • SQLServer200 ストアドでデータベースのバックアップ

    SQLServer200のストアドでデータベースのバックアップを取りたいのですがやり方が分かりません。 BACKUP DATABASE [@Database_Name] TO [@Device_Name] のような感じでやるようなのですが(別の方法もあるようです)詳細がわかりません、教えていただけないでしょうか? 「msdb.dbo.sp_add_job」を使ってるのも見かけたのですが、これもわかりません。お願いいたしますm(__)m

  • SQLserverのDBバックアップについて

    DBのバックアップについて教えて下さい。 環境:Windows server 2003 R2 DB :SQLserver 2005 standardedition のDBサーバーにあるDBを毎日決まった時間に外付けLANディスクとDBサーバー本体にバックアップを行うようにジョブ設定しています。 DBサーバー本体のバックアップは問題なく行われいますが、外付けLANディスクへのバックアップについては、2週間ほど前に、以前使用していた外付けLANディスクが故障し今の外付けLANディスクに交換した後問題が発生しています。 始めの1週間はエラーログもなく問題なくバックアップが取れていたのですが、2週目から毎日外付けLANディスクへのバックアップについてエラーログが発生しているようです。ジョブの設定で再試行を3回に設定していているので、再試行のおかげでバックアップは取れている状態です。 以下のイベントログが上がっていました。 ------------------------------------ イベントの種類: エラー イベント ソース: ******* イベント カテゴリ: (2) イベント ID: 18210 日付: ******* 時刻: 4:01:26 ユーザー: NT AUTHORITY\SYSTEM コンピュータ: ******* 説明: BackupMedium::ReportIoError: バックアップ デバイス '(バックアップファイル名のフルパス)'で write エラーが発生しました。オペレーティング システム エラー 64(指定されたネットワーク名は利用できません。)。 ---------------------------------------------- イベントの種類: エラー イベント ソース: ******* イベント カテゴリ: (2) イベント ID: 18210 日付: ******* 時刻: 4:01:26 ユーザー: NT AUTHORITY\SYSTEM コンピュータ: ******* 説明: BackupMedium::ReportIoError: バックアップ デバイス '(バックアップファイル名のフルパス)'で エラーが発生しました。オペレーティング システム エラー 64(指定されたネットワーク名は利用できません。)。 ------------------------------------------------- LANディスクのIPなどは問題なく設定しており、PINGも通る状態です。 何日か様子を見ていましたが、バックアップ先に同じ名前のファイルがある場合のみ(既存のバックアップファイルに上書きする時)上記のイベントログが上がっているようです。今の対応としては、上書きされるデータを別のフォルダに移して回避しています。 ジョブに設定しているコマンドも記載します。 BACKUP DATABASE [*****(バックアップするDBの名前] TO DISK = N'******(バックアップ先のフルパス)' WITH NOFORMAT, INIT, NAME = N'*******', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO どこが原因かがつかめません。 エラーログが上がらずにバックアップをきちんと行うようにするにはどのようにしたらよろしいでしょうか。 どなたか教えてください。

  • SQLServerのバックアップ

    先日、バックアップが戻せないと質問させていただいたものです。 今回新たにデータベースを作って、試しにバックアップをやってみたのですが、何故か*.bakと*.trnのファイルが出来ません。その代り、拡張子無しのデータベース名ファイルが一つ出来ております。 手順は、オブジェクトエクスプローラーで当該データベースを右クリックして、「タスク」→「バックアップ」を選び、完全バックアップ、デフォルトのBackUpディレクトリの指定を削除して、デバイス→USBメモリのファイル名指定(新規)、有効期限0日、にて行いました。 何かを決定的に理解していないのだと思いますが、分かりません。 なぜ、うまくいかないのか、お教えいただけないでしょうか? ひょっとして、EXPRESSではダメという事があるのでしょうか?