SQL Serverの管理は初めてですが、SQL言語とSSISパッケージの作成に慣れています。
SQL Server 2005から2016にデータを移行したい。
私の質問は、システムデータベースや、インデックス、ストアドプロシージャ、ビュー、セキュリティ、権限などの他のオブジェクトについて心配する必要があるかどうかです。ログインまたは単にデータを移行できますか。
この場合、どちらをお勧めしますか。
SQL Serverの管理は初めてですが、SQL言語とSSISパッケージの作成に慣れています。
SQL Server 2005から2016にデータを移行したい。
私の質問は、システムデータベースや、インデックス、ストアドプロシージャ、ビュー、セキュリティ、権限などの他のオブジェクトについて心配する必要があるかどうかです。ログインまたは単にデータを移行できますか。
この場合、どちらをお勧めしますか。
回答:
マックスはまともな答えを出しました。この別のビューを入力し終えたら、私は賛成票を投じます。
私はアップグレード移行を行うときにシステムデータベースを復元するのが好きではありません。別の質問に対するこの長い回答で説明したように、インプレースアップグレードよりも移行を実行することを好みます。
基本的に、移行を行うときは「新規」を開始するのが好きです。復元によるシステムデータベースの移行とアップグレードを試してみると、復元に不満が生じることがあり、潜在的な罪が引き継がれることがあります。
インデックス、ストアドプロシージャ、ビューについても質問しました。データベースレベルのこれらのアイテムはすべて、ユーザーデータベース内に存在する必要があります。したがって、データベースXを新しいサーバーに復元すると、すべてのデータベースオブジェクト(テーブル、ユーザー、ビュー、プロシージャ、関数など)もそこに存在します。
システムデータベースに存在するのは、ジョブ、ログイン、アラート、リンクサーバー、暗号化キーなどです。インスタンスレベルのアイテム。
私はそれらを確認し、さまざまなスクリプトを使用して必要なものに移行するのが好きです-最近ではDBATools.Io powershellスクリプトです。スクリプトを使用してSQLログインをコピーするのが特に好きです。SQL認証されたユーザーを処理し、パスワードとセキュリティ識別子を同じに維持して、それらのログインのデータベースユーザーが機能するようにするためです。また、SQL Server移行コマンド全体があり、サブコマンドを実行して、通常コピーするアイテムをコピーします。
私はマックスがその答えを間違っているとは信じていません。バージョン間でシステムデータベースを介して復元するのではなく、より多くの成功とより多くの幸運があり、新しいものへの移行がより快適になったと感じています。システムデータベースを復元する代わりに、バージョンアップグレードの移行を最後に行ったときに、正直に思い出せなかったと思います。
これらのデータベースに格納されているメタデータにアクセスする必要がある場合は、システムデータベース(master、msdb、およびおそらくモデル)の移行を検討してください。
マスターは、ログイン、セキュリティ証明書などのアイテムを保存します。
msdbには、バックアップに関する詳細が含まれ、SQL Serverエージェントジョブ構成などの詳細が保存されます。
新しく作成した空のデータベースに、すべてのデータベースで使用する定義済みオブジェクトのセットを含めることができるように、モデルはユーザーまたはチームによってカスタマイズされている場合があります。
システムデータベースの移行はかなり簡単に実行できます。詳細な手順については、MSDNの「システムデータベースのバックアップと復元(SQL Server)」を参照してください。
要件に応じてBACKUP DATABASE
、2005インスタンスのユーザーデータベースに対して操作を実行し、次にRESTORE DATABASE
2016インスタンスですべてのデータ、インデックス、その他のオブジェクトを含むデータベース全体を取得することができます。
これには、少なくとも最初は、2005インスタンスのデータベースが消費するのと同じ量のスペースが必要です。ただし、データベースを復元したら、データ圧縮を利用して必要なフットプリントを大幅に削減できます。
参照してください。SQL Serverのバックアップの操作についてバックアップの実行の詳細については、及びについてシナリオを復元するリストアの詳細については。
2012年ですか、2016年ですか。IIRC 2012はテスト済みの移行パスですが、2016はそうではありません。そのため、既知の問題は文書化されているか、2012年のアップグレードアドバイザーによって検出されます。テストされていないパスは問題なく機能する可能性がありますが、不明です。とは言っても、2016年に行くことを強くお勧めします。努力はほぼ同じだと思います。
SQL Server 2005からアップグレードしますか?を参照してください。2005年のアップグレードオプションに関するドキュメントと、非常に詳細なアップグレードプロセスへのリンク。アップグレードプロセスは2014年に書かれたものですが、2016年にも適用されます。