web-dev-qa-db-ja.com

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

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

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

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

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

11
Lunatik

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

大量のデータがないため、次のようなさまざまなことを行ってデータを移動できます(データベース全体ではありません)。

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

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

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

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

または、以前のバージョンのダウンロード用に提供されている評価版を使用して回避することもできます(例 2008が見つかりました )。ただし、電話を使用しているため確認できませんでした。そのバージョンのダウンロードは引き続き機能します。

21
Aaron Bertrand

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

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

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

6
Nicholas Hill

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

できることは、2005の一時インスタンスをインストールすることですOR 2008 oR 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回目の移行を行います。

3
KASQLDBA

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つを次の link で見つけました。復元プロセスを開始する前にすべてがスムーズに機能することを確認するには、アプリケーションを実行する必要があります。次に、「アップグレードアドバイザー分析ウィザードを起動」し、ウィザードの手順に従います。

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

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

0
Ahmad Abuhasna

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

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

0
Mitch Stein

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

0
dkh63493