web-dev-qa-db-ja.com

SQL Server 2005から2016へのデータの移行

SQL Serverの管理は初めてですが、SQL言語とSSISパッケージの作成に慣れています。

SQL Server 2005から2016にデータを移行したい。

私の質問は、システムデータベースや、インデックス、ストアドプロシージャ、ビュー、セキュリティ、権限などの他のオブジェクトについて心配する必要があるかどうかです。ログインするか、単にデータを移行できますか。

この場合、どちらをお勧めしますか。

9
Robert

マックスはまともな答えを出しました。この別のビューを入力し終えたら、賛成票を投じます。

私はアップグレード移行を行うときにシステムデータベースを復元するのが好きではありません。別の質問でこの長い answer で説明したように、インプレースアップグレードよりも移行を実行することを好みます。

基本的に、移行を行うときは「新規」を開始するのが好きです。復元によるシステムデータベースの移行とアップグレードを操作すると、復元に不満が生じることがあり、潜在的な罪を引き継ぐ可能性があることがわかりました。

インデックス、ストアドプロシージャ、ビューについても質問しました。データベースレベルのこれらのアイテムはすべて、ユーザーデータベース内に存在する必要があります。したがって、データベースXを新しいサーバーに復元すると、すべてのデータベースオブジェクト(テーブル、ユーザー、ビュー、プロシージャ、関数など)もそこに存在します。

システムデータベースに存在するのは、ジョブ、ログイン、アラート、リンクサーバー、暗号化キーなどです。インスタンスレベルのアイテム。

私はそれらを確認し、さまざまなスクリプトを使用して必要なものに移行するのが好きです-最近では DBATools.Io powershellスクリプトです。スクリプトを使用して SQLログインをコピー するのが特に好きです。これは、SQL認証されたユーザーを処理してパスワードとセキュリティ識別子を同じに保ち、それらのログインからのデータベースユーザーが機能するようにするためです。また、完全な SQL Server移行コマンド があり、サブコマンドを実行して、通常コピーするアイテムをコピーします。

私はマックスがその答えを間違っているとは信じていません。バージョン間でシステムデータベースを介して復元するのではなく、より多くの成功と幸運があり、新しいものへの移行がより快適になったと感じています。システムデータベースを復元する代わりに、バージョンアップグレードの移行を最後に行ったときのことを正直に思い出すことができなかったと私は思います。

7
Mike Walsh

これらのデータベースに格納されているメタデータにアクセスする必要がある場合は、システムデータベース(master、msdb、およびおそらくモデル)の移行を検討してください。

マスターは、ログイン、セキュリティ証明書などのアイテムを保存します。

msdbには、バックアップに関する詳細が含まれ、SQL Serverエージェントジョブの構成などの詳細が格納されます。

新しく作成した空のデータベースに、すべてのデータベースで使用する定義済みオブジェクトのセットを含めることができるように、モデルはユーザーまたはチームによってカスタマイズされている場合があります。

システムデータベースの移行はかなり簡単に実行できます。詳細な手順については、MSDNの システムデータベースのバックアップと復元(SQL Server) を参照してください。

要件に応じて、BACKUP DATABASE 2005インスタンスのユーザーデータベースに対する操作、次にRESTORE DATABASE 2016インスタンスで、すべてのデータ、インデックス、その他のオブジェクトを含むデータベース全体を取得します。

これには、少なくとも最初は、2005インスタンスのデータベースが消費するのと同じ量のスペースが必要です。ただし、データベースを復元したら、データ圧縮を利用して必要なフットプリントを大幅に削減できます。

バックアップの実行の詳細については SQL Serverバックアップの使用について を、リストアの詳細については リストアシナリオについて を参照してください。

4
Max Vernon

2012年ですか、2016年ですか。 IIRC 2012はテスト済みの移行パスですが、2016はそうではありません。そのため、既知の問題が文書化されているか、2012年のアップグレードアドバイザーによって検出されます。テストされていないパスは問題なく機能する可能性がありますが、不明です。とは言っても、2016年に行くことを強くお勧めします。努力はほぼ同じだと思います。

2005のアップグレードオプションと非常に詳細なアップグレードプロセスへのリンクについては、ドキュメントの SQL Server 2005からアップグレードしていますか? を参照してください。アップグレードプロセスは2014年に書かれていますが、2016年にも適用されます。

2
SQLmojoe