web-dev-qa-db-ja.com

dbatools、DbcCheck LastBackup

先週、テストシステムでdbccheckのテストを開始しました。奇妙なことが1つ見つかりました。何が問題なのかわかりません。最後のフルバックアップは数時間前ですが、dbccheckはエラーを出力します。

次の手順をご覧ください。

インストールdbaチェック

  • chrissy lemaireのブログに基づいています(chrissy、素晴らしい仕事をありがとう)

構成の変更

Set-DbcConfig -Name policy.backup.fullmaxdays   3
Set-DbcConfig -Name policy.backup.logmaxminutes 720

最初のチェック

$server = "ALET21"
Invoke-DbcCheck -SqlInstance $server -Check LastBackup

ここで結果:

結果DbcCheck

Dbccheckはエラーを出力します

PSコマンドを使用して同じテストを行いました。結果を確認できます。

結果PSコマンド

問題は何ですか?

AdminDB DBは新しいものではなく、作成日は2016年11月23日でした。また、policy.backup.newdbgraceperiodを1に更新しましたが、以下に示すように、同じ問題が発生します。

same problem

Dbacheckモジュールは最新のようです。

Version

1
KW_1970

このデータベース(AdminDB)が新しく作成され、新しくバックアップされたと仮定しますか?

新しいデータベースがこれらのテストに失敗したため、このために作成された問題がありました。 https://github.com/sqlcollaborative/dbachecks/issues/207

作成された新しいデータベースを除外する新しい構成が作成されました "policy.backup.newdbgraceperiod"(デフォルトは0時間の値0)。
たとえば、デフォルトは0であるため、すべての新しいデータベースが含まれます。 (Get-Date).AddHours( - (policy.backup.newdbgraceperiod) )

New database is called QuickBackup

ご覧のとおり、新しいデータベースQuickBackupは失敗します。

新しいデータベースに1時間の猶予期間を許可すると、次のようになります。

Set-DbcConfig -Name policy.backup.newdbgraceperiod -Value 1

Value set to 0

新しいデータベースは現在除外されています:

QuickBackup is no longer there

2
Shaneis

古いバージョンのdbachecksを使用していると思います。

最新バージョンを比較して確認してください

(Find-Module dbachecks).Version

(Get-Module dbachecks).Version.ToString()

私はあなたがこの問題にぶつかっていると思います

https://github.com/sqlcollaborative/dbachecks/issues/41

バックアップ日に戻ってくる値がnullであるため。これは先週修正されました

これの最新バージョン(およびPowerShellギャラリーから任意のモジュールを使用して入手できます)

Update-Module dbachecks
2