SQL Server 2005 自習書シリーズ 管理編 No.8
この文章に含まれる情報は、公表の日付の時点での Microsoft Corporation の考え方を表しています。市場の変化に応える必要があるた め、Microsoft は記載されている内容を約束しているわけではありません。この文書の内容は印刷後も正しいとは保障できません。この文章 は情報の提供のみを目的としています。
Microsoft、ActiveX、Windows NT、Windows 2000、Windows Server 2003 は Microsoft Corporation の米国およびその他の国におけ る登録商標です。
その他、記載されている会社名および製品名は、各社の商標または登録商標です。
はじめに
この自習書では、以前のバージョンの SQL Server や 他のデータベースからの SQL Server 2005 へのアップデー ト・移行について学習します。 この自習書を終えると、 SQL Server 2005 へのアップデート・移行の概念や、それら手法を習得することができます。 この自習書で実習を行うために必要な環境は次の通りです。OS
Windows Server 2003 もしくは Windows XP Professional Editionソフトウェア
SQL Server 2000 Enterprise Edition もしくは SQL Server 2000 Developer Edition および SQL Server 2005 Enterprise Edition もしくは SQL Server 2000 Developer Edition
この自習書での画面やテキストは、 Windows Server 2003 (32-bit) Windows Server 2003 (64-bit)
SQL Server 2000 Enterprise Edition (32-bit) SQL Server 2005 Enterprise Edition (64-bit) をもとに記述されています。
サンプルデータベース
この自習書では、SQL Server 2000 のサンプルデータベースである Northwind データベースをもとに、パッケージ を追加したデータベースを利用しています 。この自習書を始める前に、あらかじめ、SQL Server 2000 側に、 Northwind データベースをアタッチしてください。 データベースファイル Northwnd.mdf Northwnd.ldf目次
1. SQL Server 2005 への 移行方法 ... 5 1.1 SQL Server 2005 への移行方法 ... 6 1.2 移行パターンと注意点 ... 10 1.3 Oracle データベースからの移行 ... 14 1.4 Access からの移行方法について ... 16 1.5 Upgrade Advisor を利用したアップグレードへの準備 ... 19 2. SQL Server 2000 からの マイグレーションの実践 ... 27 2.1 データベース エンジンの移行 ... 28 2.2 Integration Services パッケージの移行 ... 39 2.3 Analysis Services の移行 ... 501. SQL Server 2005 への
移行方法
SQL Server 2005 への移行方法には、インスタンスを直接アップグレードする 方式、と別インスタンスにオブジェクトのコピーによって移行しなおす方式の 2 つがあります。この章では、2 つの手法の紹介と、移行した場合の 2 つについて 紹介いたします。 また、他社データベース製品などから SQL Server 2005 へ移行する場合の手 法も簡単に紹介します。そのほか、アップグレードに関するサポートツールであ る、SQL Server 2005 Upgrade Advisor ツールについても紹介します。 ・ SQL Server 2005 移行方式・ 移行パターン
・ Oracle データベースからの移行 ・ Access からの移行方法について ・ Upgrade Advisor を利用した移行準備
1.1 SQL Server 2005 への移行方法
SQL Server 2005 への移行方式として、古いバージョン、エディションのデータベース インスタンスを直接アップデー トする、アップグレード方式 (In-place Upgrade) と、古いバージョンのインスタンスはそのままに残し、新しいバージョ ンに対し新しいインスタンスを作成する、マイグレーション方式 (Side-by-Side Migration) があります。 1章では、SQL Server 2005 への移行方法の紹介と、マイグレーションを中心とした、移行パターンを紹介します。アップグレード方式
(In-place Upgrade) について
アップグレード方式 (In-place Upgrade)では既存のインストールされている SQL Server を直接ア ップグレードします。ツールによる自動的な移行処理が可能であることや、サーバー名、インスタンス 名等の変更もないことから既存の SQL Server を簡単に SQL Server 2005 へアップグレードするこ とが可能です。 以下にアップグレード方式の移行対象になるものを紹介します。 ■対象バージョン SQL Server 7.0 SQL Server 2000 SQL Server 2005 バージョンのアップグレードは SQL Server 2005 への上位アップグレードのみであり、 SQL Server 2005 から SQL Server 2000 へのダウングレードは行うことはできません。 また最新のサービスパックを適用しておく必要があります。 ■対象エディション Desktop Edition Workgroup Edition Personal Edition Standard Edition Developer Edition 既存の SQL Server SQL Server 2005 セットアップ ウィザードによるアップデート インスタンス: MSSQLSERVER インスタンス: MSSQLSERVER 同一インスタンス コンポーネント単位 単位べつ
Enterprise Editon
エディションのアップグレードに関しても、上位エディションへのアップグレードのみが対象となります。 Enterprise Edtion から WorkGroupEditon のようなダウングレードはできません。
また SQL Server 2005 間でのエディションのアップグレードも可能です。 ■対象プラットフォーム
IA32( x86 ) IA64( x64, IPF )
Windows Server 2003 X64 + SQL Server 2000 SP4 から SQL Server 2005 X64 のようなプラットフ ォーム間のアップグレードはできません。 ■対象コンポーネントについて アップグレード方式の対象となるコンポーネントについてはマイグレーション方式の項で後述します。
マイグレーション方式
(Side-by-Side Migration) について
マイグレーション方式は SQL Server 2005 をセットアップし、移行ツールやユーティリティを使用して 手動で SQL Server2005 へと移行する方式です。 マイグレーション方式では、古いデータベースを残しておく必要がある場合や、コンポーネント別にア ップグレードをする必要がある場合はマイグレーション方式を利用する必要があります。また、他社デ 既存の SQL Server SQL Server 2005 ユーザーによるツールもしくは手動による移行 インスタンス: SQLSERVER2000 インスタンス: SQLSERVER2005 新インスタンス データ単位 既存の SQL Server インスタンス: SQLSERVER2000 既存インスタンス 移行前 移行後例えば現在 SQL Server 2000 上で複数のアプリケーションを稼動させている場合などは、業務の都 合上段階的にアプリケーションを移行していく必要がある可能性があります。そのような場合はマイグ レーション方式を検討してください。 以下に表にアップグレード方式、マイグレーション方式による移行方法をまとめました。 ■対象コンポーネントと方式について 対象コンポーネント アップグレード方式 マイグレーション方式 全コンポーネント SQL Server 2005 セットアップ ウィザード 個別の方式で移行を行う データベース エンジン SQL Server 2005 セットアップ ウィザード ・デタッチ / アタッチ ・バックアップ / 復元 ・データベースコピー ウィザード
・SSIS( SQL Server Integration Services) によるオ ブジェクトのコピー
・SQL Server スクリプト生成ウィザードによるス クリプトの生成・実行
Analysis Services SQL Server 2005 セットアップ ウィザード
Analysis Services 移行ウィザード
Reporting Services SQL Server 2005 セットアップ ウィザード
Reporting Services Configuration Tool
データ変換サービス (DTS) SQL Server 2005 セットアップ ウィザード (別ツールとしてイ ンストールされるため、パッケー ジ自体はマイグレーション方式 により移行する)
・SQL Server Integration Services パッケージ移行 ウィザード ・Integration Services パッケージからの DTS パ ッケージの実行 ・SQL Server 2000 DTS パッケージランタイムの実 行による移行 アップグレード方式では、SQL Server 2005 のセットアップツールにより、各コンポーネントのデータ を意識することなく簡単にアップグレードすることができますが、SQL Server の Setup.exe を使用 して SQL Server 2005 セットアップウィザードを起動するだけで自動的にアップグレードが行われま す。マイグレーション方式では、上記表の手順を踏むことにより各コンポーネントの移行が行われま す。
Integration services コンポーネントのアップグレードに関しては、SQL Server 2000 の既存のサー ビスコンポーネントがそのままアップグレードされるのではなく、別ツールとして Integration Services
がインストールされます。また、Reporting Services に関しては、SQL Server 2000 Reporting Services を既定のままインストールしている場合は、セットアップツールにより一回でアップグレード することが可能となっていますが、独自の設定やリモートインスタンスを利用している場合は、新規に 別の Reporting Services コンポーネントをインストールし、レポートを移行させなければなりません。
1.2 移行パターンと注意点
マイグレーション方式によるアップグレード、移行パターン
1.1 では、マイグレーション方式によるデータベースのアップグレードや移行方法をコンポーネント別に紹介しましたが、 以下にどのようなニーズにおいてマイグレーション方式を利用すべきかをまとめました。 NO. 移行パターン 内容 1 アップグレード、グレードアップ (別インスタンス) SQL Server 2000、7.0 から SQL Server 2005 へのアップグレー ド、また エディションのグレードアップを別インスタンスとし て行う 2 32 ビットから 64 ビットへの移行 32 ビット環境から 64 ビット環境への移行 3 開発における本番環境への移行 データベースを含んだシステムの開発において、開発環境から 本番環境への移行 4 他データベースからの移行 他社データベース、また Access などの他データベースから SQL Server 2005 への移行移行の注意点
マイグレーション方式によるデータベースのアップグレードや移行において、コンポーネント別に注 意すべき点がいくつかあります。次にコンポーネント別に注意点をまとめました。 ■データベース エンジン 移行における注意点 ・ SQL Server 2005 と SQL Server 2000 の間で整合性が取れない機能について事前に確認す る必要があります。大まかに、SQL Server 2005 で廃止された機能、非推奨となった機能、変更 された機能、別機能として変更された機能があり、これらについて確認する必要があります。重 要な変更については、アプリケーション変更の可能性も出てくるため、注意が必要となります。 変更の詳細については以下の URL を確認してください。 http://msdn2.microsoft.com/ja-JP/library/ms143532.aspx ・ データベースのアタッチ、デタッチによる移行を行う場合、既に同一名のデータベースが存在す る場合、アタッチは失敗します。 ・ データベース コピー ウィザードによる、「model」、「msdb」、「master」のシステムデータベース は移行することができません。・ データベース コピー ウィザードによる移行では、パフォーマンスの最適化のため、コピー先サ ーバー上のデータベースに対して、sp_updatestats (統計の更新) を実行する必要がありま す。
■SQL Server Analysis Services データベースの移行における注意点
・ SQL Server 2005 Analysis Services と旧バージョンで整合性が取れない機能を事前確認する 必要があります。機能の詳細については次の URL を確認してください。
http://msdn2.microsoft.com/ja-JP/library/ms143229.aspx (中止された機能) http://msdn2.microsoft.com/ja-JP/library/ms143346.aspx (非推奨機能)
・ SQL Server 2005 Analysis Services のアップグレードにおいて既に発見されている問題につ いて事前に確認する必要があります。詳細については次の URL を確認してください。 http://msdn2.microsoft.com/ja-JP/library/ms143346.aspx
・ SQL Server 2005 Analysis Services オブジェクトと旧バージョンのオブジェクトについて事前に 確認する必要があります。詳細の対応表については以下を参照してください。 SQL Server 2000 Analysis Services オブジェクト SQL Server 2005 Analysis Services オブジェクト 追加情報
集計 集計 hybrid OLAP (HOLAP) パーティションおよび多次元 OLAP
(MOLAP) パーティションの集計のみが移行されます。 Analysis Services デ ータベース Analysis Services デ ータベース なし。 コマンド MDX スクリプト 多次元式 (MDX) スクリプトは、コマンド コレクションを含むオブ ジェクトに対して記述されます。 キューブ キューブ 同じデータ ソースを共有するすべてのディメンション、仮想ディメ ンション、およびキューブに対しても、1 つのデータ ソース ビュー が作成されます。次に、各マイニング モデルとデータ マイニング ディメンションに対してデータ ソース ビューが作成されます。 キューブとデータベース のロールのコマンド 移行されない なし。 キューブ ロール キューブ権限 ディメンション権限とセル権限は移行されません。 データ マイニング ディメ ンション データ マイニング ディメ ンション 各データ マイニング ディメンションに対してデータ ソース ビュー も作成されます。 データ ソース データ ソース なし。 データベース ロール データベース ロールとデ ータベース権限 なし。 ディメンション 単一階層のディメンション なし。
を共有するディメンション (複数の階層を表す) ンション 階層のレベル ディメンションの属性およ び多層のレベル なし。 リンク キューブ このリリースでは移行さ れない なし。 レベルのメンバ プロパテ ィ レベルのメンバ プロパテ ィ なし。 マイニング モデル マイニング モデル データベース内の各マイニング モデルに対して、データ ソース ビューが作成されます。 マイニング モデル ロー ル 2 つの権限 (マイニング 構造用とマイニング モデ ル用) として移行 なし。 ディメンション内の複数の 親子階層 単一の親子階層 (親属 性の設定によって定義さ れる) 元の階層を参照する MDX 式は機能しません。SQL Server 2005 Analysis Services ディメンションでは、単一の親子階層 のみを使用できます。 リモート パーティション 移行されない リモート パーティションは、そのパーティションが所在するサーバ ーがアップグレードされるか、リモート パーティションを含むデータ ベースが移行されるまでは、使用できません。リモート パーティシ ョンを含むデータベースは、個別に移行できます。リモート パーテ ィションの定義を更新して、新しいサーバー インスタンスの名前を 識別する必要があります。 リポジトリ XML 形式のオブジェクト 定義言語 (ODL) ファイ ル なし。 仮想キューブ リンク メジャー グループ なし。 仮想ディメンション ソース ディメンションの 階層 仮想親子ディメンションは別々のディメンションとして移行されま す。親子ディメンションが複数の階層を持つことができないためで す。 ■データ変換サービス (DTS) の移行における注意点 ・ SQL Server 2000 データ変換サービス (DTS) に替わる機能として、SQL Server 2005 では Integration Services がインストールされます。
・ SQL Server 2005 Integration Services では、Meta Data Services (リポジトリ) がインストール されないため、リポジトリを利用したパッケージは推奨されません。移行する際は、再配布可能な リポジトリ ファイルがローカル コンピュータにインストールされている場合のみ、パッケージ移行 ウィザードにより移行させることが可能となっています。また、SQL Server 2000 データ変換サー ビス (DTS) デザイナ、または dtsrun.exe ユーティリティを利用することで DTS パッケージを
引き続き利用することも可能となっています。
・ その他、パッケージの移行に関する既知の問題を事前に確認しておく必要があります。詳細は 以下 URL を確認してください。
http://msdn2.microsoft.com/ja-JP/library/ms143462(SQL.90).aspx
■SQL Server Reporting Services の移行における注意点
・ SQL Server 2005 Reporting Services と旧バージョンの機能で整合が取れない機能を事前に 確認する必要があります。機能の詳細については以下、URL を確認してください。
http://msdn2.microsoft.com/ja-JP/library/ms143251(SQL.90).aspx
・ SQL Server 2005 Reporting Services の移行については、移行サポートツールがありません。 移行するためには、旧バージョンで利用していた Reporting Services の構成データベースな どを利用するため、あらかじめバックアップを取る必要があります。
・ Reporting Services の移行において、レポートやデータセットの移行のみであれば、レポート 定義ファイルをアップロードすることで設定することが可能です。
■SQL Server Notification Services の移行における注意点
・ Notification Services 2.0 インスタンスを移行する前に、SQL Server 2005 Notification Services への移行に関する問題をあらかじめ確認する必要があります。詳細については、以下 URL を確認してください。
http://msdn2.microsoft.com/ja-JP/library/ms143679.aspx
・ Notification Services 2.0 と SQL Server 2005 Notification Services は並列でのインストール をサポートしていますが、インスタンス内で、データベース エンジンのバージョンと Notification Services のバージョンを一致させる必要があります。
以上これらの注意点、特にアップグレードについては SQL Server 2005 Upgrade Advisor ツール を利用することで、作成されたオブジェクトやデータに関する注意事項を確認したり、レポートを出力 させることができます。
1.3 Oracle データベースからの移行
他社データベースからの移行では、データの移行・同期とデータベース アプリケーション、またはデータ型、データベ ース オブジェクトの移行に関しても考慮する必要があります。リアルタイムなデータの同期は Oracle をパブリシャー として、トランザクション レプリケーションを行うことができます。この機能は Oracle 8 以降のすべてのオペレーティン グ システムに対応しており、Oracle へのコンポーネントのインストールなども不要です。定期的なデータ転送に関し ては、Integration Services による、データのインポート/エクスポート機能を利用してデータ転送を行うことにより可 能となります。また、Oracle データベースから SQL Server 2005 への移行ツールとして、SQL Server Migration Assistant for Oracle といった移行サポートツールが用意されています。このツールを利用することで、データベースの移行やファ ンクションの置き換え、また移行テストを行うことが可能となっています。
※ SQL Server Migration Assistant for Oracle の詳しい機能については自習書シリーズの SQL Server Migration Assistant for Oracle を参照してください。ツールのダウンロード、また自習書については下記 URL からダウンロード可能です。 http://www.microsoft.com/japan/sql/solutions/ssm/default.mspx Oracle データベースの データ型、データベースオブジェクトの以降に関しては以下のような考慮を行う必要がありま す。 Oracle データベース パブリッシャ SQL Server 2005 ディストリビュータ SQL Server 2005 サブスクライバ トランザクション単位 SQL Server 2005 Oracle データベース SQL Server Migration Assistant for Oracle
もしくは SQL Server 2005 Integration Services 定期的なデータ 転 送 、オ ブ ジ ェ クト変換
ファンクション、データ型の移行
既存の資産と Transact-SQL を比較し該当機能がない場合や、単純な置き換えが不可能である場合、 SQL CLR での実装により代替案を考える必要があります。SQL ステートメントの変換
PL / SQL で記述された SQL ステートメントを Transact-SQL に置き換えたり、ストアド プロシージ ャなどのデータベース オブジェクトの SQL ステートメントを変換するにあたり、膨大な量を置き換え る必要がある場合、マイクロソフトが提供している SSMA (SQL Server Migration Assistant for Oracle) を利用することにより、マイグレーション処理を簡単に行えます。OS ファンクション コールの置き換え
PL / SQL にはファイル I/O や、外部プロセスの呼び出し、管理者へのメール通知など豊富な OS ファンクションコールが提供されています。これらを Transact-SQL へ単純に移行することは困難です。 Integration Services の各種タスクに置き換えることにより、各種機能を置き換えることが可能です。
1.4 Access からの移行方法について
SQL Server 2005 では、Access 、Excel からの移行を簡単に行うことができます。Access では Access に付属する アップサイジング ウィザードを利用することによって、シンプルなデータ移行が可能となります。 以下にアップサイジングウィザードを用いた、Access から SQL Server 2005 へのデータ移行の方法について紹介しま す。 ■データ容量の確認 SQL Server 2005 がインストールされたマシンのディスク空き容量を確認します。既存の Access のデータを元にサ イジングを行ってください。 ■移行前の Access 設定方法の確認 移行前のデータをバックアップすると共に、移行前の設定情報(テーブル、クエリに関するプロパティ情報やリレーショ ンシップの設定)を確認してください。これらの作業は移行後にデータが正しく移行されたかを確認するために必要で す。
アップサイジングウィザードを使用してデータを移行する
それでは Access に付属するアップサイジングウィザードを使用して、データの移行を実行します。1.
[ツール]メニューの[データベースユーティリティ]よりアップサイジングウィザードを起動しま す。2.
新しいデータベースにデータを移行したい場合は「新しいデータベースを使用する」にチェッ クをしてください。逆にすでにある既存のデータベースへデータを移行したい場合は「既存の データベースを使用する」にチェックをしてください。3.
アップサイジングウィザードに接続のために必要な事項を記入します。また SQL Server 2005 に接続するアカウントに CREATE DATABASE 権限があることを事前に確認してください。4.
データ移行の対象となるテーブルを選択します5.
テーブルの属性をエクスポートするために必要なデータを選択します。Access 上で付加され たインデックスや外部キーの情報などのテーブル情報も合わせてアップサイズすることができ ます。6.
ここで Access と SQL Server 2005 をリンクするかどうかを選択できます。またクライアント / サーバー型のアプリケーションを新規にアプリケーションを作成することも可能です。7.
データが Access から転送されると以下のようなレポートが表示されます。各フィールドがどのように変換されたなど詳細なアップサイジングのレポートが表示されますので確認してくだ さい。
1.5 Upgrade Advisor を利用したアップグレードへの準備
移行作業を円滑に進めるためには、実施までに念密な移行計画が必要です。ここでは、SQL Server 2005 Upgrade Advisor (以降 Upgrade Advisor ) を利用したアップグレードへの準備として 必要となる作業を学習します。
移行実施前の作業について
移行実施前に事前に準備作業をすることは非常に重要です。移行作業中の予期せぬ障害や移行 作業後のトラブルを未然に防ぐまたはトラブル発生後の復旧作業を円滑に行うためにも以下の作業 を行ってください。 ■バックアップについて 移行後に予期せぬ障害が起きた場合、最悪のケースとしてデータの消失等の可能性があります。予 期せぬ障害からの復旧を円滑に行うためにかならずバックアップを取ってください。 ■システム要件と機能の確認 移行を想定しているバージョン、エディションがアップデートの要件を満たしているかを確認してくだ さい。また移行したいコンポーネントや現状のシステムの稼働状況を確認していただき、移行方式を 選定してください。Upgrade Advisor を利用したアップグレードの準備
それでは Upgrade Advisor をインストールし、実行結果を確認するまでの作業を行います。 Upgrade Advisor は SQL Server 7.0 / 2000 の既存インスタンスを解析し、SQL Server 2005 へ のアップグレードまたは移行において問題点となる部分がないかどうかをチェックします。解析した結 果は Upgrade Advisor Report Viewer を使用してレポート形式で出力することができます。アッ プグレード方式、マイグレーション方式どちらの方法で 別の環境に移行する際にも、Upgrade Advisor を実行して問題の解決を行ってください。ここでは、「MSKK-SQL」というデータベース サーバーを利用して、移行前の確認を行います。
1.
Upgrade Advisor ツールは既定でインストールされないため、SQL Server 2005 のセットアップ メニューから [Install SQL Server Upgrade Advisor] を選択して、インストールする必 要があります。インストールはウィザードに従って進んでいけば正常にインストールされます。 ※インストール要件として、.NET Framework 2.0 をあらかじめインストールしておく必要が あります。詳細はインストール要件を確認してください。
2.
インストール後、[スタート] メニューから [すべてのプログラム] – [Microsoft SQL Server 2005] – [SQL Server 2005 アップグレード アドバイザ] をクリックして、 ツールを起動しま3.
[サーバー名] に解析したいデータベースのサーバー名を入力します。[検出] ボタンをクリッ クし、[コンポーネント] のチェックボックスがアクティブになっていれば検出されています。解 析したいコンポーネントにチェックを入れます。ここでは、[SQL Server]、[Analysis Services]、[Reporting Services]、[データ変換サービ ス] にチェックを入れて [次へ] をクリックします。
4.
次に、解析するデータベースのインスタンス名を入力します。ここでは、既定のインスタンス名 が設定されているインスタンスを対象とするため、「MSSQLSERVER」と入力します。 さらに、[認証]、[ユーザー名]、[パスワード] を入力して、アドバイザ機能を実行するユーザ ーアカウント情報を設定します。ここでは、SQL Server 認証の 「sa」アカウントにより実行しま す。()※「(local)」や「localhost」 では接続に失敗するので注意してください。
5.
[SQL Server のパラメータ] 画面では、分析対象のデータベースを選択します。また、トレー スファイルを分析したり、SQL バッチ ファイルを分析することができるため、各オプションに チェックをいれ、ファイルのパスを指定することができます。ここでは、すべてのデータベース を対象とするため、そのままにして、[次へ] をクリックします。6.
[DTS パラメータ] 画面では、[データ変換サービス] のオプションに [サーバーの DTS パ ッケージを分析する] を選択し、[次へ] をクリックします。 [DTS パッケージ ファイルを分析する] を選択した場合は、SQL Server に保存されていな い、外部のパッケージファイルを分析します。7.
分析の設定内容を確認して、[実行] をクリックします。8.
分析が完了すると、分析結果が表示されます。ここでは、すべてのコンポーネントに警告のマークが表示されているため、分析結果を確認します。[レポートの開始] ボタンをクリックするこ とで、分析結果をレポート表示させることが可能です。[レポートの開始] をクリックします。
9.
Database Server の分析結果を見ると、重要度が高い警告が出ています。2 番目のメッセー ジを開きます。10.
分析結果の詳細が表示されます。また、警告の対象となるファイルを抽出してくれるため、ど のデータが移行する上で問題となるかを把握することができます。また問題の解決方法につ いても情報が提供されているため、解決案に早くたどりつくことができます。 ここでは、[この問題と解決方法についての詳細を参照します] をクリックして、解決方法を表 示させてみましょう。11.
クリックすると、問題の詳細と修正措置が提供されています。ここでは、「sp_fulltext_service ‘load_os_resources’, 1」を実行することで問題に対処できるようになっています。12.
また、レポートには [フィルタ] 機能により、アップグレードなのか移行についての問題なの かによってエラーの内容表示をフィルタリングさせることができます。ここで、[移行に関するす べての問題] を選択してみましょう。13.
レポートの表示に重要度が高い修正内容は表示されませんでした。14.
また、インスタンス別にもエラー表示を切り替えることができます。[インスタンスまたはコンポーネント] を [Reporting Services] に切り替えることで Reporting Services の移行に関す るあらゆる警告、エラーメッセージなどを確認することができます。
2. SQL Server 2000 からの
マイグレーションの実践
この章では、SQL Server 2000 Enterprise Edition から、SQL Server 2005 64-bit (X64) への移行を実際に行っていきます。ここでは、データベース エン ジン、Integration Services パッケージ、Analysis Services データベースの 3 つのコンポーネントについて移行を行います。
・データベース エンジン (SQL Server) の移行 ・Integration Services パッケージの移行 ・Analysis Services データベースの移行
2.1 データベース エンジンの移行
まず、SQL Server の核となるデータベースエンジンの移行を行います。移行方法
データベース エンジン部分のオブジェクトの移行では、5 パターンほど移行する方法があります。 ・データベースのデタッチ / アタッチ ・データベースのバックアップ / 復元 ・データベース コピー ウィザード・SSIS (SQL Server Inetgration Services) によるオブジェクトのコピー ・SQL Server スクリプト生成ウィザードによるスクリプトの生成・実行 ここでは、データベースのデタッチ / アタッチによる移行を行います。
移行前のデータベース
オブジェクトの確認
ここでは、移行する前に、データベースにどのようなテーブル、ストアどプロシージャが存在するかを 確認します。また、実際の移行前には、データベース構造を詳細に記述した資料を用意しておくとさ らに、移行作業が容易となります。1.
[スタート] – [すべてのプログラム] – [Microsoft SQL Server] – [Enterprise Manager] をクリ ックし、Enterprise Manager を起動し、[Northwind] データベースを開きます。[テーブル] 一覧から、どのテーブルが存在するかを確認します。2.
次に、[ストアドプロシージャ] をクリックして、Northwind データベースに作成されている、ス トアどプロシージャを確認します。ユーザー ストアドプロシージャが 7 つ存在することが確 認できます。3.
さらに、ストアドプロシージャを実行し、データを確認してみましょう。ここでは、[Sales by Year] ストアドプロシージャを実行します。[スタート] メニューから [すべてのプログラム] – [Microsoft SQL Server] – [クエリ アナライザ] を 起動します。4.
次のクエリを実行します。 Use Northwind GoExecute [Sales by Year] ‘1998/1/1’,’1998/2/1’
5.
実行すると、データが表示され、[メッセージ] タブをクリックすると、57 件表示されていることデータベース
のデタッチ / アタッチによる移行
データベースのデタッチ / アタッチによる、データベースの移行を行います。ここでは、SQL Server 2000 のサンプルデータベースである、Northwind を SQL Server 2005 Enterprise Edition X64 に移行させます。
1.
[スタート] – [すべてのプログラム] – [Microsoft SQL Server] – [Enterprise Manager] をク リックし、Enterprise Manager を起動します。左ペインにある、[コンソール ルート] から、移 行元データベースを展開し、[Northwind] データベースを右クリックし、[すべてのタスク] – [データベースのデタッチ] をクリックします。2.
[データベースのデタッチ] ウィンドウが表示されます。[このデータベースが使用している接 続] が 0 であることを確認します。もし、0 以上である場合は、接続が残っている状態とな り、デタッチが失敗するため、[消去] をクリックします。[OK] をクリックしてデタッチを実行し ます。3.
デタッチが成功すると、下図のメッセージが表示されます。4.
デタッチの完了後、データベース ファイルを、移行先のデータベースにコピーする必要があります。エクスプローラから、「C:¥Program Files¥Microsoft SQL Server¥MSSQL¥Data」の 直下にある、「northwnd.ldf」と「northwnd.mdf」ファイルをコピーします。
5.
次に、移行先の 64 bit マシンにデータベースファイルをコピーします。コピー先は、 「C:¥Program Files¥Microsoft SQL Server¥MSSQL.1¥MSSQL¥Data」とします。6.
[スタート ] – [すべてのプロ グラム ] – [Microsoft SQL Server 2005] – [SQL Server Management Studio] を起動します。以降先のデータベースにログインし、[オブジェクト エ クスプローラ] から [データベース] を右クリックし、[アタッチ] をクリックします。7.
[データベースのアタッチ] ウィンドウが起動します。[アタッチするデータベース] にある、[追 加] をクリックします。8.
[ファイルの選択] では、あらかじめコピーしておいたデータベースファイル「northwnd.mdf」9.
アタッチするデータベースが「Northwind」と表示されていることを確認してから、[OK] をクリ ックし、アタッチを開始します。10.
アタッチが成功すると、[データベース] 一覧に、[Northwind] が登録されていることが確アタッチ後のデータベースの確認
データベースのアタッチ後、移行元のデータベースに登録されていた、データベース テーブルや、 ストアド プロシージャが正常に登録されているか、またストアド プロシージャが正常に実行される稼 働かを確認します。1.
アタッチしたデータベース「Northwind」を展開し、登録されているユーザー テーブルを確 認します。ここでは 13 テーブル確認できるため、移行前の状態と変わらないことが確認でき ます。2.
次に、[プログラミング] – [ストアドプロシージャ] をクリックして、登録されているストアド プロシ ージャを確認します。ここでは、7 つ確認できることから、移行前と変わらないことが確認でき ます。3.
さらに、事前に確認したストアドプロシージャと同様の「Sales by Year」を実行し、データを確 認してみましょう。[Sales by Year] を右クリックし、[ストアド プロシージャの実行] をクリックし ます。4.
パラメータ「@Beginning_Date」の [値] に、「1998/1/1」と入力します。さらに、パラメータ 「@Ending_Date」も同様に、「1998/2/1」と入力し、[OK] をクリックします。5.
ストアドプロシージャを実行すると、データが表示されます。[メッセージ] タブをクリックする と、57 件表示されていることが確認できます。これにより、移行前の状態と変わらない状態 で、アタッチされていることがわかります。2.2 Integration Services パッケージの移行
データ変換サービス (DTS) パッケージの移行には、パッケージの移行ウィザードで行うことができるほか、SQL Server 2005 Integration Services では、DTS ランタイムを搭載しているため、SQL Server 2000 DTS パッケージと して引き続き利用することも可能となっています。
Integration Services でのパッケージの移行方法
DTS パッケージを Integration Services パッケージ形式に移行させるためには次の方法がありま す。 ・ パッケージの移行ウィザードによる移行 ・ スタンドアロンの SQL Server 2000 DTS パッケージに移行・ Integration Services による SQL Server 2000 DTS タスクとしての移行
ここでは、パッケージの移行ウィザードによる移行を行いますが、パッケージの移行ウィザードを利用 し た だ け で は 、 完 全 に 変 換 で き な い パ ッ ケ ー ジ も あ り ま す 。 そ の 場 合 は 、 ウ ィ ザ ー ド 以 外 に Integration Services のタスクから、「DTS 2000 パッケージ実行タスク」を利用することができるため、 Integration Services のパッケージとしてラップさせることで、既存の DTS パッケージを移行させる ことができます。
パッケージの事前確認
パッケージを移行させる前に、DTS パッケージがどのような動作をするか確認します。1.
サンプルの DTS パッケージは、Northwind データベースから、商品データを抽出し、 CSV ファイルに出力する簡単なものです。Enterprise Manager の [コンソール ルート] か ら 、 [ デ ー タ 変 換 サ ー ビ ス ] を 展 開 し て 、 [ ロ ー カ ル パ ッ ケ ー ジ ] を ク リ ッ ク す る と 、ケージの実行] をクリックします。
2.
パッケージが正常に終了すると、[パッケージの実行が正常に完了しました。] というメッセー ジダイアログが表示されます。[OK] をクリックし、さらに [終了] をクリックして、画面を閉じま す。3.
出力 CSV ファイルは、C ドライブの直下に作成されるようになっています。確認すると、下 図のように、「product_list.csv」ファイルが生成されていることが確認できます。4.
内容を確認すると、商品名と単価の一覧が確認できます。パッケージ
移行ウィザードによる移行
確認後、実際にパッケージ 移行 ウィザードにより、SQL Server 2005 Integration Services (64-bit) へ移行させます。
1.
移行先の サーバーから、SQL Server Management Studio を起動させます。移行先のサ ーバーに接続して、[オブジェクト エクスプローラ] から、[管理] – [レガシ] – [データベース 変換サービス] を右クリックし、[移行ウィザード] をクリックします。2.
[パッケージ移行ウィザード] が開始されます。[次へ] をクリックします。3.
パッケージが登録されている移行元サーバーを指定します。ここでは、移行元のパッケージが 「PSWIN2003R2」といサーバー名であるため、[PSWIN2003R2] というデータベース名を 入力します。また、[Windows 認証] を選択して、[次へ] をクリックします。
※Active Directory 環境化にない場合は、[SQL Server 認証を使用する] を選択し、ユー ザー名とパスワードを入力して、[次へ] をクリックします。
4.
次に保存先のサーバー情報を設定します。[移行先] では、DTS パッケージをどこに保存す るかを選択します。ここでは、SQL Server 内に保存させるため、[Microsoft SQL Server] を 選択します。また、[サーバー名] に 「(local)」と入力し、[Windows 認証を使用する] を選 択して、[次へ] をクリックします。 ※保存先としては、SQL Server 以外に外部ファイルとして構造化ファイルを選択することが できます。5.
[パッケージ一覧] 画面で、移行させたいパッケージにチェックを入れます。ここでは、 [makeProductList] にチェックを入れて、[次へ] をクリックします。6.
さらにパッケージの移行時に記録されるログファイルの場所を [参照] をクリックして、設定し ます。8.
パッケージの移行が実行され、正常に移行が完了すると、下図のように表示されます。[閉じ る] をクリックして、ウィザードを終了します。これで、DTS パッケージの移行が完了しました。移行後のパッケージの確認
パッケージの確認後、正常に移行されたか SQL Server Management Studio からパッケージを実 行し、内容を確認します。
1.
SQL Server Management Studio を起動して、[オブジェクト エクスプローラ] から、[接続] を選択して、[Integration Services] をクリックします。2.
移行先のサーバー名 (ここでは localhost) を入力して、[接続] をクリックします。3.
Integration Services サービスに接続して、[格納されたパッケージ] – [MSDB] を展開しま す。4.
展開すると、移行したパッケージ「makeProductList」が登録されていることが確認できます。 [makeProductList] を右クリックして、[パッケージの実行] をクリックします。5.
[パッケージの実行ユーティリティ] 画面が起動します。特にプロパティの設定は必要はないので、[実行] をクリックします。実行が完了すると、[パッケージ実行の進行状況] ダイアログ が表示され、実行が完了されていることが確認できます。
6.
完了すると、C ドライブの直下にパッケージが作成されていることが確認できます。7.
[product_list.csv] ファイルを開くと、移行前に確認したときと同様の内容が表示されていることが確認できます。
これで、移行ウィザードによるパッケージの移行が正常に行われていることが確認できまし た。
2.3 Analysis Services の移行
SQL Server 200 Analysis Services の SQL Server 2005 への移行は Analysis Services 移行ウィザードを使って、 行うことができます。
Analysis Services 移行ウィザードによる移行
Analysis Services 移行ウィザードは SQL Server 2000 Analysis Services で作成した構造をその まま活用して、SQL Server 2005 Analysis Services へと移行します。
ここでは SQL Server 2000 Analysis Services のサンプルデータである 「FoodMart」 データベー スを SQL Server 2005 Analysis Services に移行させます。
※ここでは、詳細手順は説明しませんが、Analysis Services データベースを移行させる場合は、 事前に Analysis Services データベースのデータソースを事前に移行させておく必要があります。 「FoodMart」を例にすると、FoodMart の元データとなっている ODBC データソース「FoodMart」 を移行先のデータベースに設定させておくことです。
1.
SQL Server Management Studio を起動し、[オブジェクト エクスプローラ] から、[接続] – [Analysis Services] をクリックして、サーバーにログインします。ログイン後、下図のように、 [オブジェクト エクスプローラ] のサーバー名を右クリックし、[データベースの移行] をクリック します。2.
[Analysis Services 移行ウィザード] が起動します。ようこそ画面で、[次へ] をクリックしま す。3.
移行させるデータベースのサーバー名と、移行先のサーバー名を入力します。移行先のサ ーバーでは、[サーバー] を選択して、サーバー名をテキストボックスに入力します。[次へ] をクリックします。4.
[移行するデータベースの選択] 画面で、移行させるデータベースにチェックを入れます。こ こでは、一つしかないため、すでにチェックが入っています。このままにして、[次へ] をクリッ クします。5.
データベース移行について検証されます。検証の結果、エラーが発生した場合は、下のテキ ストボックスにメッセージが表示されます。また、オブジェクトの作成ログについて、詳細を確 認する場合は、[ログの保存] をクリックすることで、ログファイルを保存することができます。6.
表示されたメッセージの詳細を確認すると、移行後の Analysis Services データベースで は、ドリルスルーやリンク オブジェクト、リモート パーティションなどが移行されない警告など が表示されています。 移行元のデータベースのオブジェクトの状態により、移行後の対処などを検討する必要があ ります。7.
データベースの移行処理が完了すると、下図のように、完了メッセージが表示されます。確認 したら、[次へ] をクリックします。スプローラ] から、[データベース] を確認すると、移行された「FoodMart 2000」を確認するこ とができます。