SQL Server 2014 SP1(12.0.4422.0)からSQL Server 2016 CTP 3.2(13.0.900.73)へのアップグレードをテストしているときに、推奨される更新プロセスに従い、フェールオーバー後にデータベースが古いプライマリで起動しないという問題に遭遇しました更新されたセカンダリに。私たちの設定はプライマリレプリカと単一のセカンダリレプリカであり、私が完了した手順は次のとおりです。
- 同期コミットセカンダリレプリカの自動フェイルオーバーを削除する
- セカンダリサーバーインスタンスを新しいバージョンにアップグレードする
- セカンダリレプリカに手動でフェイルオーバーする
- 新しいプライマリレプリカでデータベースがオンラインであることを確認する
- 以前のプライマリレプリカを新しいバージョンにアップグレードする
セカンダリのアップグレードとそれをプライマリにするフェイルオーバーは、期待どおりに機能しました。しかし、以前のプライマリレプリカをアップグレードした後、その上のデータベースがSSMSで「同期していない/回復中」としてリストされていることに気付きました。また、それらにアクセスしようとすると、エラーメッセージが生成されます。
データベース...にアクセスできません。(ObjectExplorer)
私が見たSQL Serverログを介してチェック
データベース '...'バージョン782を開けません。データベースを最新バージョンにアップグレードしてください。
master..sysdatabasesテーブルをクエリすると、テーブルが確かに古いバージョンであり、アップグレード中に更新されていないことがわかりました。
残念ながら、ログには更新されなかった理由が示されておらず、可用性グループダッシュボードには、一部の可用性データベースのデータ同期状態が正常ではなく、理由がないことを示す一般的な警告しかありませんでした。
TSQLを使用してデータベースをデタッチするか、オフラインに設定して更新を「キック」しましたが、それらはSQL AGの一部であるため、これらのコマンドは機能しません。
SQL AGの一部であるデータベースを最新バージョンにアップグレードするにはどうすればよいですか?