アップグレード後、SQL Server AlwaysOnデータベースが同期しないモードまたはリカバリモードでスタックする。エラー:データベース '…'バージョン782を開けません


10

SQL Server 2014 SP1(12.0.4422.0)からSQL Server 2016 CTP 3.2(13.0.900.73)へのアップグレードをテストしているときに、推奨される更新プロセスに従い、フェールオーバー後にデータベースが古いプライマリで起動しないという問題に遭遇しました更新されたセカンダリに。私たちの設定はプライマリレプリカと単一のセカンダリレプリカであり、私が完了した手順は次のとおりです。

  1. 同期コミットセカンダリレプリカの自動フェイルオーバーを削除する
  2. セカンダリサーバーインスタンスを新しいバージョンにアップグレードする
  3. セカンダリレプリカに手動でフェイルオーバーする
  4. 新しいプライマリレプリカでデータベースがオンラインであることを確認する
  5. 以前のプライマリレプリカを新しいバージョンにアップグレードする

セカンダリのアップグレードとそれをプライマリにするフェイルオーバーは、期待どおりに機能しました。しかし、以前のプライマリレプリカをアップグレードした後、その上のデータベースがSSMSで「同期していない/回復中」としてリストされていることに気付きました。また、それらにアクセスしようとすると、エラーメッセージが生成されます。

データベース...にアクセスできません。(ObjectExplorer)

私が見たSQL Serverログを介してチェック

データベース '...'バージョン782を開けません。データベースを最新バージョンにアップグレードしてください。

master..sysdatabasesテーブルをクエリすると、テーブルが確かに古いバージョンであり、アップグレード中に更新されていないことがわかりました。

SSMS sysdatabasesバージョン

残念ながら、ログには更新されなかった理由が示されておらず、可用性グループダッシュボードには、一部の可用性データベースのデータ同期状態が正常ではなく、理由がないことを示す一般的な警告しかありませんでした

TSQLを使用してデータベースをデタッチするか、オフラインに設定して更新を「キック」しましたが、それらはSQL AGの一部であるため、これらのコマンドは機能しません。

SQL AGの一部であるデータベースを最新バージョンにアップグレードするにはどうすればよいですか?

回答:


10

しばらくSSMSを試してみたところ、セカンダリレプリカの可用性データベースの横に一時停止アイコンがあることに気付きました。プライマリーは両方とも「緑」であると示していましたが、セカンダリーにはデータ移動の再開のオプションがありました。最初のデータベースを再開しましたが、すぐに[ 回復中]ステータスメッセージが削除されました。1分後、同期しないから同期済みに変更され、すべてが期待どおりに機能しました。

以下は、「パッチ」を修正した後、テストデータベースを修正する前のAGデータベースのスクリーンショットです。

SQL AGでのデータ移動の再開

セカンダリでTSQLを使用して、同時に複数のデータベースでレプリケーションを再開することもできます。

ALTER DATABASE [Patch] SET HADR RESUME;
ALTER DATABASE [test] SET HADR RESUME;
GO

1
レプリケーションが一時停止した原因を知っていますか?レプリケーションが一時停止されてから確認できますか?
JohnG
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.