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


9

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

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

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

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


本番インスタンスをアップグレードしようとしていますか?つまり、同じログイン、インデックス、ストアドプロシージャなどが必要ですか。現状では、あなたの質問は本当にかなり広いです。ツアーに参加して、良い質問をする方法についてヘルプセンターを読んでください。ありがとう!
Max Vernon

回答:


7

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

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

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

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

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

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

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


ご回答有難うございます。2005年から2016年にアップグレードしたくありません。SQLServer 2005で使用されなくなったインスタンスから2016年に既存のインスタンスにデータベースを移行したいと考えています。この移行はまだ承認されていませんが、します。SSISパッケージのクエリと作成に関してSQLの経験を持っているのは私だけなので、基本的にこのプロジェクトを手に入れました。互換性の問題も気になりました。もう一度感謝します。
Robert

もちろんですが、2005年から2016年に移行するときは、アップグレードを行っています。アップグレードと移行を行っています。あるバージョンのSQLから別のバージョンのSQLにデータベースを移行しているからです。これは、確かにアップグレードを意味しています。データベースでアップグレードアドバイザーを実行する必要があります。
Mike Walsh

SQL Server 2005がWindows Server 2003 R2 x86によってホストされ、SQL Server 2016が新しいOS上にある場合はどうなりますか?
Robert

@MikeWalsh私はあなたがあなたの応答で述べたことのほとんどすべてに同意します。SQLのアップグレード/移行を実行するとき、私もほぼすべてをフォローしています
nam

4

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

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

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

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

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

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

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

参照してください。SQL Serverのバックアップの操作についてバックアップの実行の詳細については、及びについてシナリオを復元するリストアの詳細については。


2

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

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


1
それは2016年です。それについて申し訳ありません
ロバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.