web-dev-qa-db-ja.com

SQL Server 2005から2016へのアップグレード

古いサーバーを取り除く必要がありますが、そのうちの1つには、現在SQL Server 2005を使用しているデータベースサーバーが含まれています。

2016年に稼働する新しいサーバーがあるので、アップグレードする最良の方法を知りたいと思いました。私が発見したことから、理想的には暫定的なステップとして2008年が必要であることがわかりました。ただし、2008年ではないため、コストがかかるため、2005年のバックアップと2016年の復元の可能性を検討してきました。

私はこれを非常に単純なdbでテストしましたが、うまくいくようです。ただし、互換性レベルを100(90にする必要がある)から130に変更する必要があることを読みました。私の質問は、必要ですか?結局、これらの古いdbのいくつかは、ほとんど変更を必要としない古いレガシーデータベースです。それは本当に価値がありますか?

だから私はものをする空想の新しい方法を使うことができないでしょうが、これらは古いのでそれは問題ですか?結局のところ、それが必要とされているわけではないので、そうでなければ、これらのデータベースを作成しなかったでしょう。私はまだより複雑なdbでまだテストしていませんが、正しいパスにいることを確認したいと思いました。

4
user165269

新しいサーバーにmigratingしているので、SQL Server 2008をミックス。

SQL Serverのエキスパートが述べたように Paul Randalバージョン2005+から他のバージョンにアップグレードできます 。ポールは述べています:

データベースを2つ以上新しいバージョンにアップグレードすることはできないという常識があります。

それは真実ではない。

SQL Server 2005(またはそれ以降)から他の新しいバージョンにバックアップ+復元(最も安全な方法)またはデタッチ+アタッチ(安全な方法ではない)を行うことができます。 SQL Server 2005から最新バージョンへの一括アップグレードを実行できないだけです。

互換性レベルの変更については、数週間は変更せず、アップグレードからほこりを落ち着かせることをお勧めします。アップグレードからすべてが適切に機能していることを確認したら、互換性レベルを最大に上げてパフォーマンスを監視しませんか。あなたの可能性がありますパフォーマンスの改善も。ただし、120(SQL Server 2014)以上の互換性レベルでは、新しいカーディナリティエスティメータが機能し、パフォーマンスの問題が発生する可能性があります。必要に応じて、選択したクエリでOPTION (QUERYTRACEON 2312)を使用することにより、新しいカーディナリティエスティメータのテストをより選択的にすることができます。問題が発生した場合は、いつでもレベルを下げることができます。 sql server 2014 cardinality estimatorの問題でインターネット検索を実行して、起こりうる問題を理解します。

SQL Serverの新しいリリースにアップグレードする将来のある時点で、最終的に互換性レベルを上げる必要があります[〜#〜] [〜#〜]

最後に、SQL Serverをアップグレードする際に考慮すべき項目のチェックリストについて、 SQL Serverのアップグレード を確認してください。

参照 ALTER DATABASE(Transact-SQL)互換性レベル

アプリケーションの観点から見ると、目標は依然として、ある時点で最新の互換性レベルにアップグレードすることです。これにより、クエリオプティマイザースペースで行われたいくつかの新機能とパフォーマンスの向上を継承しますが、制御された方法。より低い互換性レベルをより安全な移行支援として使用して、関連する互換性レベル設定によって制御される動作で、バージョンの違いを回避します。データベース互換性レベルをアップグレードするための推奨ワークフローを含む詳細については、 データベース互換性レベルをアップグレードするためのベストプラクティス を参照してください。

1
Scott Hodgin

SQLサーバー2016では、サポートされる最小DB互換性レベルが100であるため、DB互換性レベルを少なくとも100に変更する必要があります。

参照: https://docs.Microsoft.com/en-us/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-2017

バックアップの復元は機能します。

移行前と移行後の手順を詳しく説明します。 https://dba.stackexchange.com/a/50315/878

重大な変更があるため、移行プロセスをテストします。

また、2014年には、90のDB互換性レベルがサポートされます。したがって、DBの互換性レベルを変更できない場合は、これを検討する必要があります。

PASSサミットから、SQLサーバーのバージョンではなく互換性レベルに基づいてアプリケーションを認定する必要があることがわかりました。

0
Kin Shah