PowerShellを使ってSQL Serverをバックアップする

ITインフラ系

SQLServerをバックアップするのはSQL Server Managemant Studioでも可能ですが、Powershellスクリプトでタスクスケジューラを設定して実施しています。
今回はそれを紹介します。

Powershellスクリプト

Backup-SqlDatabaseコマンドレットを使います。SQL Serverモジュールに同梱されてるものなので、モジュールのインストールを行います

SQL Server PowerShell モジュールのダウンロード – SQL Server | Microsoft Learn

Install-Module -Name SqlServer

使用しているスクリプトを簡素化したものがこちらです。

$year = (Get-date).Year
$month = (Get-Date).Month
$backupPath = "C:\Database_backup\DB_fullbackup_${year}_${month}.bak"
#ServerInstanceはサーバー名です。ADがあればping DBserverで通りますね
Backup-SqlDatabase -ServerInstance DBServer -Database "hypervdi" -BackupFile $backupPath -CompressionOption On

以上でバックアップは完了します。DBサーバー側で1433ポートがあいていれば正常に動くと思います、、、たぶん

トラブルシュート

Backup-SqlDatabase : サーバー DBserver に接続できませんでした。エラーの対処

SQLでログインできるアカウントを使うことです。

Backup-SqlDatabase : サーバー DBserver に接続できませんでした。
発生場所 行:9 文字:1
+ Backup-SqlDatabase -ServerInstance DBserver -Database "hypervdi" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Backup-SqlDatabase], ConnectionFailureException
+ FullyQualifiedErrorId : Microsoft.SqlServer.Management.Common.ConnectionFailureException,Microsoft.SqlServer.Management.PowerShell.BackupSqlDatabaseCommand

SQLにログインできないアカウントを使うとこのエラーになります。

Management Studioのセキュリティ>ログインからSQLにログインできるアカウントを確認できます。

ここにあるログイン名をつかうことでエラーを解消できます。

タイトルとURLをコピーしました