2014年3月3日

【PowerShell】SQL Serverのデータベースバックアップ


システムでSQL Serverを使うことがあるのですが、コマンドで操作することがよくあります。

PowerShellでも当然SQL Serverを扱えるようになっています。

たとえばデータベースのバックアップは次のように行います。

まず、PowerShellを管理者権限で立ち上げ、
SQLPSと打ち込んでください。


このSQLPSユーティリティ(SQLPS.exe)を実行すると、コマンドレットやスクリプトでSQL Serverのインスタンスとそのオブジェクトを操作出来るようになるみたいです。

ただ、TechNetをいま見たらこの機能は将来削除される予定らしいです。
代わりにsqlps PowerShell モジュールを使ってくれとのことです。

まあちょっと時代遅れになってしまってるんですけど、今回はこのやり方で。


それで、データベースのバックアップですが、次のように行います。

Invoke-Sqlcmd "BACKUP DATABASE TESTDB TO DISK = 'C:\work\backup\TESTDB.bak' WITH FORMAT, NAME = 'TESTDB_20140303'" -ServerInstance "SVRNAME\SQLEXPRESS" -QueryTimeout 300

TESTDBというのはデータベース名です。
あと、NAMEというのは、バックアップセット名です。

<参考サイト>
BACKUP (Transact-SQL)
SQL Server PowerShell を使用した管理手法 第 2 回 実践編
Invoke-Sqlcmd コマンドレット



スポンサーリンク