2005または2008のインスタンスなしでSQL Server 2000から2012に移行する


11

SQL Server 2000にある3つの古いデータベースに遭遇しました。これらは2012年に移動する必要があります。標準的なアプローチは、2005または2008インスタンスに復元し、更新、再エクスポートして、最後に2012年に復元することです。

申し訳ありませんが、2005年または2008年のインスタンスはありません。

試してみる価値のある回避策やその他の方法はありますか?

ちなみに、データベースには15〜20のテーブルといくつかのビューしか含まれておらず、非常にシンプルに見え、バックアップのサイズは100〜200 MBしかありません。



1
完全に合法であり、アップグレードの「ブリッジ」として中間インスタンスをインストールすることは、SQLのライセンスでカバーされています。ユーザーはそれに接続しないでください。...
Rostol 2017年

回答:


21

いいえ、データベースを2000から2012に直接アップグレードする回避策はありません。

大量のデータがないので、次のようなあらゆる種類のデータを移動できます(データベース全体ではありません)。

  • インポート/エクスポートウィザード
  • SSIS
  • BCP
  • 2012年のリンクサーバーまたはアプリケーションを使用した手動クエリ

ただし、これらは必ずしもユーザー、権限、ロールなどの他のものをもたらすとは限りません。すべてが正しい依存関係の順序でオブジェクトを作成するわけではありません。そのため、作業が多く、エラーが発生しやすくなります。私の経験では、中間インスタンスを一時的に配置してから、2つのバックアップ+復元操作を実行することは価値があります。

データベースが10GB未満の場合は、数分でExpress(無料)のコピーをインストールして使用できます。ここから 2008 R2 Expressをダウンロードできます。2000年には、データベース構造など、そのアップグレードをブロックするエンタープライズ機能はないと思います(より新しいバージョンでは大きな懸念)。

データベースがExpressに対して大きすぎる場合は、Developer Editionを49ドル程度で見つけることができます(またはさらに安い- 私はeBayで2005年に37ドルで見つけました)。または、MSDNサブスクリプションをお持ちの場合は、そこからSKU。

または、驚くほど古いバージョンのダウンロードがまだ提供されている評価版を使用しても問題はありません(たとえば、ここで2008を見つけました)。ただし、電話を使用しているため、そのバージョンのダウンロードを確認できませんでした。 。


ありがとう。ここのインターネット速度は遅いので、ダウンロードを避けようとしていましたが、2005年のインストールバイナリを見つけたので、これが最も速い方法だと思います。
Lunatik、2015年

いいえ、本当に便利なのは2008年だけです。それ以外の場合は、2005年から2010年も必要になります
Rostol 2017

@Rostolでよろしいですか? sqlskills.com/blogs/paul/...
アダムNofsinger

@AdamNofsinger私は100%確実に言うつもりでしたが、これは何十億回も実行され(古いシステムで使用されている古いSQL 2000があります)、最初にデータを復元し、次にSQL 2016にバックアップおよび復元する目的で2008 vmを構築しました...しかし、Paul Randalが別の言い方をした場合...しかし、直接法は2005年以降機能することを覚えておいてください。2000年と2003年は対象外です。
Rostol

6

回避策がないと言うのは少し時期尚早のようです。

あなたはあなたのデータベースが少数のテーブルとビューしか含んでいないと言います。テーブルとビューのスキーマをSQL作成ステートメントとしてエクスポートして、ターゲットデータベースで実行しませんか?次に、実際のデータをCSV形式などにエクスポートしてターゲットデータベースにインポートするか、C#/ C ++ / etcに何かを書き込んで実際のデータをエクスポート/インポートすることもできます。

最終的に必要としないSQL Serverの新しいインスタンスに1ペニーを費やす必要はありません。


3
もちろん、他のすべてのオブジェクト、ストアドプロシージャ、トリガー、関数などを含めます。同様に、データベースとの間でデータをコピーするためのBCPユーティリティがあります。
RLF、2015年

1
ありがとう。それはおそらく私が望んでいた種類のことですが、DBのラングリングは私の日常の仕事ではありません。テーブルなどをエクスポートしたばかり
Lunatik

4
十分に公正な私の答えを更新しました。それでも、回避策は、インスタンスを一時的に立ち上げるだけでなく、エラーが発生しにくい2つの信頼できるバックアップ+復元操作を実行するよりもはるかに多くの作業であると考えています。(また、OPにはすでに2005バイナリがあり、SQL Expressを使用して小規模なデータベースを移行できるため、これはお金の問題ではないようです。)
Aaron Bertrand

3

いいえ、2000年から2012年に直接移行することはできません。

実行できることは、2005または2008または2008R2の一時インスタンスをインストールし、2000データベースをここに復元することです。完了したら、そのインスタンスからデータベースのバックアップを取り、SQLサーバー2012に復元することにより、インストールされたインスタンスからアップグレードできます。

次の2つの手順で移行を行う必要があります。

  • ステップ1:たとえば、SQL 2000からSQL 2008への最初の移行を行います。SQL 2000 SP4である必要があり、次の手順に従ってください:SQL Server 2000からSQL Server 2008への移行

  • 手順2:SQL Server 2008から2012に2回目の移行を行います。


0

「SQL Server 2000にある3つの古いデータベースに出くわした」とあなたは言うので、データだけが必要だと私は思います。彼らが目的のために実行されていたなら、あなたは知っていると思います。この場合、ユーザー、セキュリティなどの質問はすべて無視してください。

インポート/エクスポートウィザードのすべてのテーブルストアドプロシージャとビューのスクリプトを作成するメンテナンスプランとエージェントジョブをチェックして、後で調べたいプロセスを文書化します。


0

SQL Server 2000からSQL Server 2012に直接移行することはできません。移行しようとすると、互換性の問題に関連する次のエラー番号3169が表示されます。

SQL Server 2012への移行は、次のバージョン(最小バージョン)SQL Server 2005 SP4またはSQL Server 2008 SP2またはSQL Server 2008 R2 SP1のいずれかから実行できます。

そのため、SQL Server 2000からこれらのバージョンのいずれかに移行する最初のステップとして、SQL Server 2008のアップグレードアドバイザーの1つを次のリンクで見つけました。復元プロセスを開始する前にすべてがスムーズに機能することを確認するには、アプリケーションを実行する必要があります。次に、「アップグレードアドバイザー分析ウィザードを起動」し、ウィザードの手順に従います。

レポートを取得したら、ターゲットのSQL Server 2005 SP4またはSQL Server 2008 SP2またはSQL Server 2008 R2 SP1でデータベースを復元し、互換性レベルを実行する必要があります(データベースオプションで確認できます)。SQL Serverログインの場合は、次のリンクの指示に従ってください。

それが完了したら、最初の移行を行ったサーバーから同じ手順を繰り返すことにより、SQL Server 2012に移行する必要があります。


0

まず、2000年から2012年に直接移行しないでください。そのプロセスは十分にカバーされていると思います。私は、誰かがデータベースを使用しているかどうか、およびデータベースを何のために使用しているかを確実に調べることを提案したいと思いました。使用されていない可能性があります。それが起こり、それが事実である場合、あなたは心配する必要はありません。既存の2012データベースに2つまたは3つのテーブルとデータ(2000の場合、個々のテーブルのデータを単純で信頼性の高いものにしたい場合はbcpを使用)を追加すると、ユーザーのニーズに役立つ場合があります。それを行う場合は、2012データベースに新しいテーブルを作成し、csvに必要なデータをbcpして、必要に応じてbcpで戻すことができます。1つまたは2つ以上のテーブルを移行する必要がある場合は、2ステップの移行を行うのが最も簡単で安全で最善の方法です。ドン'


2000年のスキーマスクリプトは100%正確ではなかったことを知っておく必要があります。私はいつもスクリプトを編集しなければならなかったことを覚えています。
dkh63493
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.