SQL Server Migration Assistant よく寄せられる質問

最終更新日: 2006年11月17日

ここでは、SQL Server Migration Assistant (SSMA) および関連テクノロジの使用に関するよく寄せられる質問とその回答をご紹介いたします。
回答を表示するには、一覧から質問を選択します。また、次のチェック ボックスをオンにすることで、すべての質問に対する回答を表示できます。

なお、SSMA の詳しい使用方法については、SQL Server Migration Assistant for Oracle 自習書または、「SSMA ヘルプ」をご参考ください。「SSMA ヘルプ」は、SSMA 画面で F1 キーを押すことでご覧頂くことができます。ヘルプの「付録 A」には、エミュレートされた関数の完全な一覧を確認することができます。


Q.SSMA とは何ですか。
A.

SQL Server Migration Assistant (SSMA) は、データベース移行プロセスの主要な手順すべてを定義し、自動化します。SSMA では、包括的な評価レポートを作成したり、すべてのスキーマとデータ、およびほぼすべてのデータベース常駐ビジネス ロジックをクリック 1 回で変換したり、変換したコードのテストを自動化したりできます。これらのすべての機能は、単一の移行 IDE から使用できます。

Q.評価レポートとは何ですか。
A.

評価レポートは、定量的および定性的評価を提供します。プラットフォームによって提供される一連のレポートを使用して、ユーザー、プロジェクト管理者、または意思決定者はプロジェクトの複雑さ、サイズ、およびコストを評価できます。評価レポートによって提供される統計情報には、データベース オブジェクトの合計数、コード行、推定される変換の複雑さ、および推定される手動作業の量が含まれています。これらの統計情報は、SQL Server Migration Assistant で表示するか、または Microsoft Excel 互換の形式でファイルに保存できます。また、HTML レポートを表示して、変換が困難な部分を確認することもできます。評価レポートの実行方法の詳細については、SQL Server Migration Assistant の製品ドキュメントを参照してください。

Q.SSMA ではどのオブジェクトを変換できますか。
A.

SSMA では、ストアド プロシージャ、関数、トリガ、ビュー、パッケージ プロシージャ、パッケージ関数、およびシーケンスを含むすべてのデータベース オブジェクトを、1 回のクリックで変換できます。また、SSMA では状況依存の警告および出力メッセージも提供されます。変換エンジンには、PL/SQL から Transact-SQL への最も完全な変換機能の 1 つである、Microsoft が特許出願中のテクノロジが含まれています。

Q.変換されたコードをテストするにはどうすれはよいですか。
A.

SSMA Tester を使用すると、変換されたすべてのデータベース オブジェクトを、元の Oracle ベースのコードに対して自動でテストできます。SSMA Tester では、自動的に生成されたデータ セットを使用して、変換されたコードの動作が元のコードと同じであることが確認され、一致しないコード オブジェクトにはフラグが設定されます。Tester の UI には、特定のプロシージャまたは関数をテストするために必要なすべての手順を案内する、わかりやすいウィザードが用意されています。SSMA Tester の詳細については、SQL Server Migration Assistant の製品ドキュメントを参照してください。

Q.SSMA 拡張パックとは何ですか。
A.

SSMA 拡張パックは、Oracle システム パッケージに付属の Oracle システム関数をエミュレートするランタイム ライブラリです。 substrroundlpad などの関数は、Oracle 関数のエミュレーションの 3 つの例です。注意 : 拡張パックのインストーラは、ローカル SQL Server コンピュータで実行する必要があります。

Q.SSMA のシステム要件は何ですか。
A.

SQL Server Migration Assistant では、Microsoft Windows XP、Windows 2000 Server、または Windows Server 2003、Microsoft SQL Server 2000 または 2005、および Java Runtime Environment (JRE) 1.4.2 以降が必要です。JRE 1.4.2 は http://java.sun.com/j2se/1.4.2/download.html からダウンロードできます。SSMA は Oracle 8、8i、9i、および 10g で十分にテストされています。

Q.SSMA では、どのバージョンの SQL Server に移行されますか。
A.

SQL Server 2000 または SQL Server 2005 です。

Q.ライセンス キーを取得するにはどうすればよいですか。
A.

ライセンス キーを取得するには、次の手順を実行してください。

1.

SQL Server Migration Assistant をインストールし、起動します。

2.

ライセンス キーの入力を求めるポップアップ ウィンドウが表示されます。ダイアログ ボックスの指示に従います。

[Create License Request] をクリックします。

Passport ログイン ページへのリンクをクリックします。

Passport の資格情報および連絡先情報を入力します。

ライセンス キーをダウンロードできるページに移動します。

license.key ファイルをダウンロードし、ライセンス ディレクトリに配置します。ダイアログ ボックスの [Refresh License] ボタンをクリックします。

3.

[Licensing] ダイアログ ボックスが閉じます。

Q.移行プロジェクトをスコープするにはどうすればよいですか。
A.

評価レポートを実行し、結果を SSMAinfo@microsoft.com に送信してください。

Q.評価レポートを実行するにはどうすればよいですか。
A.

評価レポートを実行するには、次の手順に従ってください。

1.

[オプション] に移動し、[Report Preferences]、[Queries] の順に選択して、[すべて選択] ボタンをクリックします。[OK] をクリックします。

2.

[オプション] に移動し、[Report Preferences] を選択して、[HTML Report Generator] パネルを選択します。
     [Generate expanded HTML database report] オプションを選択します。
     レポートを格納するディレクトリを選択します。[OK] をクリックします。

3.

移行元となる Oracle データベースに接続します。

4.

移行先となる SQL Server データベースに接続します。これは必須の手順ではありませんが、役に立ちます。

5.

左側のオブジェクト参照ツリーで、評価レポートを実行するスキーマを選択します。

6.

[ツール] に移動し、[Reports]、[Create Assessment Report] メニューの順に選択するか、または単に [Assessment] ボタンをクリックして、評価レポートを実行します。レポートではスキーマ全体の変換が実行されるため、完了までに時間がかかる場合があることに注意してください。

完了すると、複数の統計情報を含むビジュアル レポートが表示されます。レポートはコンマ区切り形式で保存するか、または [View expanded HTML report] オプションをクリックして詳細な HTML レポートを確認できます。

7.

レポートが完了したら、すべての HTML ファイルを手順 2 で構成したディレクトリからアーカイブします。

Q.SSMA で作業を開始するにはどうすればよいですか。
A.

評価レポートを実行することから始めます。評価レポートでは、各 Oracle オブジェクト (テーブル、トリガ、ストアド プロシージャ、関数、パッケージなど) の自動的な変換の試行に基づいてレポートが作成されます。これらのレポートに基づいて、手動で変換する必要のあるオブジェクトや、手動による介入が必要なステートメントを確認できます。また、手動変換の複雑さを推定することもできます。移行の潜在的な問題を評価し終えたら、オブジェクトの変換を開始できます。

Q.SQL Server Migration Assistant の主な機能は何ですか。
A.

SSMA のいくつかの主要な機能は次のとおりです。

SQL Server Migration Assistant は、すべてのオブジェクトを一度に変換するか、または 1 つずつ変換する機能を提供します。さらに、データをテーブルごとに移動するか、またはすべてのテーブルを一度に移動できます。

ほとんどの場合、ファイルからオブジェクトを読み取るだけでは、データ型を認識できないため不十分です (たとえば、%TYPE または %ROWTYPE の場合)。そのため、変換は完了されず、手動による多くの作業が必要となります。

変換されたオブジェクトは、SQL Server データベースに直接には移動されず、ローカル ワークスペースに格納されるため、データベースに接続されることなく変換プロジェクトの作業を続行できます。

コンソール ウィンドウでは、変換する SQL ステートメントまたはステートメントのグループを、それらがデータベース内に格納されていない場合でも入力できます。

Q.SSMA の使用中にサポートを受けるにはどうすればよいですか。
A.

すべての技術的な質問については、ssmahelp@microsoft.com に電子メールでお問い合わせください。なお、お問い合わせいただく際には、電子メールの本文に、以下の情報を含めていただきますようお願いいたします。お問い合わせは英語でお願いいたします。

1. 環境情報

Oracle のバージョン、SQL Server のバージョン (動作させている OS のバージョンや、32bit or 64 bit などのプラットフォームの情報)SSMA を動作させていている環境

2. お問い合わせの詳細

お問い合わせいただく内容を出来るだけ詳細に記載してください。エラーが発生している場合は、そのエラーの内容を明記いただき、エラーログまたは画面のキャプチャを添付ください。

* お客様の電子メール アドレスの情報は、SSMA に関するサポート業務にのみ使用し、それ以外の目的で使用することはありません。マイクロソフトのプライバシーに関する声明は、こちらをご覧ください。

Q.SSMA V2.0 の新機能は何ですか。
A.

SSMA V2 には次の新機能があります。

Oracle から SQL Server 2005 または 2000 への移行。SSMA V1.0 では SQL Server 2000 への移行のみがサポートされています。PL/SQL から Transact-SQL への変換エンジンが大幅に改良されています。

グローバリゼーションのサポート。SSMA V2では、ローカライズされたデータまたはビジネス ロジックのある Oracle データベースの移行が自動化されます。SSMA の UI では、現在、英語のみがサポートされています。

Tester コンポーネントのユーザー インターフェイスを大幅に簡略化する新しい Tester ウィザード。変換されたコードを非常に簡単にテストできるようになりました。ウィザードの詳細については、『SQL Server Migration Assistant ユーザー マニュアル』の「Tester」セクションを参照してください。

Q.データの移行時にエラーになるテーブルと正常に移行できるテーブルが存在します。
A.

SSMA v2.0 には、テーブル列名が TYPE、NAME、VALUE などの予約語である場合、カラムを移行できないという既知の問題点が確認されています。
移行方法としては、現在 2 つの方法があります。

1.

ALTER TABLE コマンドでソース データベース の NAME カラムの名前を変更してデータを移行し、SQL Server で sp_rename プロシージャを使用して名前を復元する (NAME カラムが外部キーの関連付けには含まれていないことを前提としています) 。

2.

SQL Server インポート ウィザードを使用してテーブルを転送する。

また、過去に事例に、Oracle 10g OLE DB プロバイダで、エラーが不規則に発生する状態になったケースがあります。
「Error converting Data Type DBTYPE_DBTIMESTAMP (データ型 DBTYPE_DBTIMESTAMP の変換エラーです。)」および 「Invalid data for type “numeric” (“numeric” 型に対する無効なデータです。)」というエラーが発生しました。
これらは Oracle の不具合であるため、このようなエラーが発生した場合は、マイクロソフトの OLE DB に切り替えた方が良いと考えられます。
テーブルや列などの名前に日本語を使うことは、SSMA 2.0 では問題発生の原因にはなりません。

Q.データ移行する際、日付データ型を含むテーブルが移行に失敗しますが、日付データ型を含みながら成功しているテーブルもあります。
A.

Oracle 内の DATE 列について、最小値および最大値をご確認ください。
Oracle における Date の範囲は SQL Server における datetime とは異なっております。このため「Jan 1 1753」以前の日付や、日付ゼロが表示される可能性があります。

1.

SQL Server における datetime の範囲は「January 1, 1753」〜「December 31, 9999」で、精度は 1/300 秒です (3.33 ミリ秒または 0.00333 秒)

2.

Oracle における DATE の範囲は「January 1, 4712 BC」〜「December 31, 9999 AD」です。

過去の例では、このような問題は、たとえば年度が「2006」ではなく「0206」になっているといった、日付フィールドのエラーが原因となっているケースが確認されています。

Q.評価レポートにおいて、TIMESTAMP 型の変換を検証したところ、各オブジェクトの [全体] (SSMA によって変換されるステートメント) 数) は 100% になりました。[全体 (変換 %)] が 100% の場合は、「問題なく変換できる」つまり、「手動で変換する必要は無い」と解釈していいのでしょうか。
A.

SSMA v2.0 には、ソース テーブルに timestamp 列が含まれる場合に、評価レポートが自動変換 100%を示してしまうという既知の不具合があります。
実際には、timestamp データ型は SSMA によって変換されません。出力されるデータ型も 'UNKNOWN' 型に置き換わっただけのものです。
また、SSMA v2.0 ではネストされたテーブルや VARRAY 型などの collection 型も変換されませんが、これらは検出され、手作業時間に算入されます。
また、多くの場合外部キーの問題に関連するのですが、レポートが [全体 (変換100%)] を示しても、修正する必要のあるエラーが残ってしまうケースがあります。テーブルを変換してターゲットを (列モードではなく) SQL モードで表示すると、詳細なメッセージを確認することができます。
[スクリプトとして保存] または [データベースとの同期] 操作を実行すると、これらの問題が発生する場合がありますので、ご注意ください。

Q.SSMAでは、ターゲットとなる SQL Server 2005 に接続する際、ターゲットは SQL Server認証である必要はありますか。
A.

SSMA の使用では、SQL Server 2005 の認証モードを「混合モード (Windows 認証と SQL Server 認証) 」 (SQL Server and Windows) に設定することを前提としております。
SQL Server で混合認証の使用を有効にしてください。
Management Studio でサーバーを右クリックして、[セキュリティ (Security)] パネルを選択し、サーバー認証を [SQL Server および Window 認証モード (SQL Server and Window Authentication mode)] に設定します。

Q.Oracle/SQL Server 間で互換性がない組み込み関数はどのように変換されますか。(NVL, DECODE, TO_CHAR, TO_NUMBER, TO_DATE など)
A.

SSMA を実行し、F1 キーを押して、ヘルプの「付録 A」を表示すると、エミュレートされた関数の完全な一覧を確認できます。NVL() は SQL Server では isnull() と同等であり、DECODE() は CASE 式に変換されることに注意してください。他の多くの関数は、sysdb データベースでは T_SQL によってエミュレートされます。

Q.Oracleで一時テーブルを使用している場合、SQL Serverではどのように変換されますか。
A.

一時テーブルは、共有 SQL Server テーブルに変換されます。両プラットフォーム間では、一時テーブルの概念に相違点があります。多くの場合、テーブル名に '#' (ローカル一時テーブル) または '##' (グローバル一時テーブル) を追加することによって、変換先のテーブルを一時テーブルにすることができます。

Q.SSMA Extension Pack インストール時に "SQLServerConverterExtensions.dll" の書込みに失敗します。エラーを無視し、インストールを終了させた後、SSMA を起動させ、ターゲットデータベースを接続するさいに "SYSDBがインストールされていません" のダイアログが表示されます。また、データベースの同期も対象のテーブルが SYSDB に存在しない旨のエラーとなり同期できません。
A.

SSMA Extension は、SQL Server の binn ディレクトリの書き込み権限を持つ Windows ユーザーによってインストールする必要があります。
また、セットアップではデータベースの新規作成と、その中に入るスキーマとオブジェクトの作成を行うため、Extension Pack をインストールする SQL Server ユーザーはシステム管理者である必要があります。

Q.「SSMA は Oracle 8、8i、9i、および 10g で十分にテストされています」とありますが、Oracle 7 は対応していますか。
A.

マイクロソフトで行った下記のソースサーバー構成による SSMA 2.0 の検証作業は、問題なく成功しています。
OS: Windows Server 2003 Enterprise Edition (Service Pack 1 適用済み)
DBMS: Oracle 7.3.3 (March 1997、英語版インスタンスのみ)
Oracle 7.3 については、この環境以外でのテストを行っておりません。

Q.ホスト名「SSMA-TEST」で接続テストを行ったところ、ORACLEの接続がうまくいきません。
A.

ホスト名にハイフン ("-") が含まれている場合に、SSMA によって接続が拒否されたことが今までに何回かありました。
サーバーの IP アドレスを指定して、再試行をおためしください。

Q.
A.
ページのトップへページのトップへ