*

【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】Management Studioでテーブルをデザインから変更するとエラーになる

変更の保存が許可されていません。行った変更には、次のテーブルを削除して再作成することが必要に

記事を読む

データベース

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

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

記事を読む

データベース

【SQL Server 2012】テーブル、カラム、主キー、NULL制約、データ型、長さ、INDEXの有無の一括表示

職場のシステムリプレースに伴い、データベースのテーブル(カラム)の一覧が必要になりました。 普

記事を読む

データベース

【SQLServer2012】バックアップ/リストア方法 リストア編

SQL Server 2012のデータベースをManagement Studioを使用して、リストア

記事を読む

データベース

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

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

記事を読む

データベース

【ODBC】Windows7でAccess2007とSQL Serverを接続する為のODBCの作成

前回、ODBC接続の為のサーバー側の設定を行いましたので、 今回はAccess2007側のWind

記事を読む

データベース

【Management Studio】Microsoft SQL Server 2012 ExpressにManagement Studio のインストール方法。

前回、Windows Server 2012にSQL Server 2012 Expressをインス

記事を読む

データベース

【SQL Server】varchar型、nvarchar型の文字数とバイト(byte)数を取得する

varchar型の文字数、バイト(byte)数を取得する方法 SELECT LEN(【文字

記事を読む

データベース

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

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

記事を読む

データベース

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

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

記事を読む

Adsense

Comment

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

Message

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

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 ↑