web-dev-qa-db-ja.com

セカンダリまたはプライマリで作成されていないBAKファイル

AGのほとんどのDBを備えたSQL Server 2014。セカンダリを優先するように設定されたバックアッププリファレンス。

  • 計画1すべてのユーザーDB(AGおよびAG以外)のバックアップ
  • 計画2すべてのユーザーDBトランスログのバックアップ

両方とも .bakおよび.trnファイルは問題なく作成されました。 AG設定によりジョブが終了しなかった方からエラーメールが届きました。だが .bakファイルは、いずれかのインスタンスによって作成されました。

これらの設定は2か月前まで問題なく機能していました。

なんらかの理由で.bakすべてのAGデータベースのファイルが作成されます。

BAK:nonAG DBSのbakファイルは、プライマリとセカンダリの両方で作成されます。 PriとSecのどちらも、AG Dbのbakファイルを作成しています。

TRN:すべてのAGおよび非AG DBのセカンダリでtrnが正常に作成されます。プライマリには、nonAGのtrnバックアップのみがあります。 SO TRNバックアップは正常に機能しています。

何が変わったのですか?

この間にVMアップグレードが行われ、最新のSQL SPもインストールしました。

セカンダリオプションを選択する全体のポイントは、バックアップがbakとtrnの両方のSecで行われることです。プラン設定で優先度無視オプションを選択することは[〜#〜]ではありません[〜#〜]解決策はバンドエイドです。

私がここで見つけた、起こっていることに近い唯一のもの https://blogs.msdn.Microsoft.com/alwaysonpro/2014/01/02/maintenance-plan-does-not-backup-database-or-log -of-database-defined-in-availability-group / しかし、それも言うように曖昧です

メンテナンスプランは、データベースまたはそのデータベースのログのバックアップを停止する場合があります

真剣に:may

セカンダリを優先とは、バックアップがプレーンでシンプルなセカンダリで実行される必要があることを意味しますが、これらはもう実行されていません。何か案は?

4
CrashWave

私たちの上級DBAは、このためにMicrosoftチケットを開くことになりました。これまでのところ、ignore priorityまたはcopy-onlyの選択を含まない唯一のソリューションは、可用性グループのバックアップ設定をプライマリにバックアップするように変更することですセカンダリ。私たちは多くのデータベースを持っており、それらの多くは非常に大規模であり、一日中アクセスされます。これによりサーバー負荷が発生する可能性があるため、最初はプライマリで実行したくありませんでした。同様の状況を経験している人のために、私が行ったテストと、この結論に至った理由を以下に示します。 Availability Group always-on設定のプライマリバックアップを再度選択するのは修正ではありませんセカンダリオプションが期待どおりに機能しない理由ですが、最新の完全データベースバックアップが必要な場合に最適なソリューションです。


  • AGバックアップにはセカンダリを優先
  • DBバックアップ(ベイク)用とトランスログ(trn)用の2つのプランを作成

注:最初にテストを開始したとき、DBバックアップ(bak)とトランザクションログバックアップ(trn)の両方を使用する計画が1つありましたが、bakがセカンダリで作成されておらず、trnが作成されておらず、それぞれをテストしたいと失敗して停止しました。分離されたbakとtrn

  • AGおよびnonAGの両方のDBをプランに追加

1。テスト1

オプションが選択されていません

Trans Logプランは正常に機能します。プライマリはAG以外のDBのtrnのみを持ち、SecはすべてのDBのtrnを持っていました。

BakファイルはPriとSecの両方で作成されましたが、AG以外のDBに対してのみ作成されました

プライマリからのエラーはなく、AGバックアップとして設定されていないため、プライマリ上にあることを期待していません。

エラーをトリガーしたのはSecだけです...

「このBACKUPまたはRESTOREコマンドは、データベースミラーまたはセカンダリレプリカではサポートされていません。BACKUPDATABASEは異常終了しています。」

2。テスト2

DBバックアップでのみレプリカを無視を選択しました。

BAKファイルはPRIMARYで作成されました

セカンダリにbakファイルはありません

二次トリガー上記の同じエラー

。テスト

優先度を無視してチェックを外し、コピーのみをチェック

二次的に作成されたAGおよびnonAGのbakファイル

プライマリにはnonAG bakファイルのみがありました

4。テスト4(オプションではないAT ALL)

無視とコピーのみのチェックの両方

PriとSecの両方でバックアップされたすべてのDB

1
CrashWave