*

【SQL Server 2012】バッチ(コマンドプロンプト)でバックアップ

公開日: : 最終更新日:2015/01/12 データベース , , ,

バッチ(コマンドプロンプト)を使って、SQL Server 2012のバックアップを取得します。
前回は、Management Studioを使用してデータベースのバックアップを取得しましたが、
定期バックアップのたびにManagement Studioから手動でバックアップするのは大変面倒です。
なので今回は、同様のバックアップをコマンドプロンプトで取得します。
バッチファイルでバックアップを取得することにより、タスクスケジュールに組み込みば、
自動で定期的にバックアップを取得することが可能です。
以下の環境で取得しようと思います。
・OS:Windows Server 2012
・データベース:SQL Server 2012
・DBサーバーホスト名:DBSERVER
・SQLServerインスタンス:SQLEXPRESS
・データベース名:db_Sales
・接続ユーザー:Windows認証
・バックアップ保存先:C:\temp

sqlcmd -S .\SQLEXPRESS -Q “BACKUP DATABASE db_Sales TO DISK=’C:\temp\testdb.bak’ WITH INIT” > C:\temp\backup.log

※ダブルコーテーションとシングルコーテーションは半角へ変更
↑のコマンドをサーバー上のコマンドプロンプトで実行すれば、バックアップが取得できます。
■コマンド解説

sqlcmd -S DBSERVER\SQLEXPRESS -Q “BACKUP DATABASE db_Sales TO DISK=’C:\temp\testdb.bak’ WITH INIT” > C:\temp\backup.log

sqlcmd
SQL ServerをCUIで管理するツール
-S DBSERVER\SQLEXPRESS
接続サーバー。僕の場合は、ホスト名:DBSERVER、インスタンス名:SQLEXPRESSなので、
DBSERVER\SQLEXPRESS となります。ローカルの場合は、ホスト名を省略して「.\SQLEXPRESS」でもOK。
-Q “BACKUP DATABASE 【対象データベース】 TO DISK=’【バックアップ先ファイル名】’ WITH INIT”
実行するSQLコマンド。
この【-Q】を使用すれば、SELECT文などのSQLをバッチ(コマンドプロンプト)で実行することが出来ます。
> C:\temp\backup.log
ログファイルの出力先。無くても問題ありません。
後は、このコマンドをバッチファイルとして保存し、タスクスケジュールでスケジューリングすれば
定期バックアップの完成です。
SQLServer認証ユーザーでコマンドを実行する場合、以下のように認証ユーザーとパスワードを追加。

sqlcmd -S DBSERVER\SQLEXPRESS -U 【ログインユーザー名】 -P 【ログインパスワード】 -Q “BACKUP DATABASE db_Sales TO DISK=’C:\temp\testdb.bak’ WITH INIT” > C:\temp\backup.log

-U 【ログインユーザー名】
SQLServer認証ユーザー名。
-P 【ログインパスワード】
SQLServer認証ユーザーのパスワードを上記のように追加して、実行すれば可能です。

Adsense

関連記事

データベース

【レプリケーション】SQL Server 2012 Expressでレプリケーション

Windows Server 2012のSQL Server 2012 Expressを二台用意して

記事を読む

データベース

【SQL Server 2012】バッチ(コマンドプロンプト)でリストア

バッチ(コマンドプロンプト)を使って、SQL Server 2012のリストアしてみたいと思います。

記事を読む

データベース

【SQL Server】Excel VBAでSELECT文を実行してレコードセットへ取得

前回は、テーブルのレコードをVBAで直接更新(Insert/update/delete) 今回

記事を読む

データベース

【Management Studio】テーブル単位のメモリ使用量の確認

1.Management Studioを起動し、メモリ使用量が確認したい対象サーバーへ接続 2.確

記事を読む

データベース

【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法

力技の取得方法をご紹介。というかメモ。 題名には偉そうに書きましたが…なかなか良い方法が見つか

記事を読む

データベース

【SQL Server】バックアップ取得日を確認する方法

前回の記事で、SQL Serverのデータベースのリストアした日付を確認するSQLを作りましたが、今

記事を読む

データベース

【コマンドプロンプト】完成版!cmdでSQLの結果を変数に取得

以前、 【コマンドプロンプト】cmdでSQLの結果を変数に取得する方法 を書きましたが、

記事を読む

データベース

【SQL Server 2012】Management Studioで誰がデータベースに接続しているか調べる。

SQL Server 2012でリアルタイムで接続しているユーザーを確認するには Manageme

記事を読む

データベース

【SQL Server 2012】バックアップ/リストア方法 バックアップ編

Management StudioでSQL Server 2012のデータベースバックアップファイル

記事を読む

データベース

【SQL Server】データベース作成日時(リストアした日付)を確認する方法

トラブルの調査をするとき、開発用の環境を作成して、調査するのですが… この環境っていつ作成した

記事を読む

Adsense

Comment

  1. […] ← 【SQL Server 2012】バッチ(コマンドプロンプト)でバックアップ […]

【SQL Server 2012】バッチ(コマンドプロンプト)でリストア | IT Diary へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Adsense

Microsoft Office
【Access】削除クエリの「指定されたテーブルから削除できませんでした。」の対処法

削除クエリで「指定されたテーブルから削除できませんでした。」と ポッ

Microsoft Office
【PowerPoint】表や図形、画像オブジェクトの位置をピッタリ合わせる方法

パワーポイントで、図形や画像等のオブジェクトの細かい位置調整は、 完

データベース
【SQL Server】Excel VBAのレコードセットを使ってテーブルの一括更新

前々回は読み取り専用でレコードセットへ取得し、結果をエクセルへ書き出し

application
【Visual Studio】デバック、ブレークポイントで止まらない。

Visual Studio 2015でVB.netのプログラムをデバッ

データベース
【SQL Server】Excel VBAでSELECT文を実行してレコードセットへ取得

前回は、テーブルのレコードをVBAで直接更新(Insert/updat

→もっと見る

PAGE TOP ↑