web-dev-qa-db-ja.com

SQL Server 2016 SP2のインストール中の失敗

SQL Server 2016の新しいSP2をインストールしようとしていますが、インストール中にエンジンエラーが発生して失敗します。これは私がエラーログで読むことができるものです>

エラー:468、重大度:16、状態:9。
等価操作での「Latin1_General_CI_AS」と「SQL_Latin1_General_CP1_CI_AS」の照合の競合を解決できません。
t-sqlステートメントの失敗したバッチ:
CREATE PROCEDURE sp_sqlagent_get_perf_counters @all_counters BIT = 0 AS BEGIN ...

エラー:912、重大度:21、状態:2。

アップグレードステップ 'msdb110_upgrade.sql'でエラー200、状態7、重大度25が発生したため、データベース 'master'のスクリプトレベルのアップグレードに失敗しました。これは、通常の操作を妨害し、データベースがオフラインになる深刻なエラー状態です。 「マスター」データベースのアップグレード中にエラーが発生した場合、SQL Serverインスタンス全体が起動できなくなります。以前のエラーログエントリでエラーを確認し、適切な修正アクションを実行してデータベースを再起動し、スクリプトのアップグレード手順が完了するまで実行します。

エラー:3417、重大度:21、状態:3。

マスターデータベースを回復できません。 SQL Serverを実行できません。完全バックアップからマスターを復元、修復、または再構築します。 masterデータベースを再構築する方法の詳細については、SQL Server Books Onlineを参照してください。

SQL Serverのシャットダウンが開始されました

マスターデータベースは「Latin1_General_CI_AS」を実行しており、MSDB(およびその他のデータベース)は「SQL_Latin1_General_CP1_CI_AS」を実行していました。

Masterとmsdbを含むサーバー上のすべてのデータベースの新しいバックアップがあります。

https://docs.Microsoft.com/en-us/sql/relational-databases/backup-restore/restore-the-master-database-に示すように、マスターマスターを復元しようとしています。 transact-sql?view = sql-server-2017

しかし、私はそれが実際に機能することを確認しているだけでなく、状況を悪化させるだけではありません。

SQL Serverをバックアップして実行するにはどうすればよいですか?

編集:私はこのようにmssqlserverサービスを開始しました:

NET START MSSQLSERVER /T902

これによりサーバーが起動し、msdb110_upgrade.sqlを調べたところ、追加した "COLLATE DATABASE_DEFAULT"がかなり不足していることがわかりました。

しかし、それは私の変化をとっていません。

レガシービルドのSQL Serverの他のバージョンでこのエラーが発生しました。

私の場合、それはロールまたはスキーマの所有者がデフォルトではなかったことが原因でした:db_datareaderのようなものがユーザーアカウントによって承認されました(sysadminがなくなりました)

回復するには?

  • マスターデータベースのバージョンがバイナリバージョンより低いため、マスターを復元できませんでした
  • 正しいバージョンで新しいインストールを作成して実行し、マスターをそのバージョンに復元し、マスターmdfを元のインストールにコピーして戻しました。

残念ながら、正確な詳細は今思い出せません。
SQL Serverの20年の中で唯一の...

  • sQL Serverの実行を停止するサービスパックのインストールが失敗した
  • マスターの復元時にバージョンの不一致に対処する必要があった
4
gbn

これは私の問題に答えます:

SELECT MAX(Name) AS DBName, COUNT(*) AS DatabasesWithSameCollation 
FROM sys.databases 
WHERE name IN ('master', 'msdb') 
GROUP BY collation_name 
IF @@ROWCOUNT > 1 BEGIN
  SELECT 'You may have problems when you install SP2, because Master and MSDB do not have the same collation. Did you restore the correct MSDB?'
END 
ELSE SELECT 'Install can proceed'

誰かが、照合が異なる別のサーバーからMSDBを復元しました。

SQL Serverを完全に再インストールしました。
SQL Server全体がバージョン管理されていることがわかりました。 :-)