本間 崇
SQL Server Support Escalation Engineer
今回は、SQL Server Migration Assistant (SSMA) についてのちょっとしたお話です。
SSMA については、既にこちらのポストで説明してある通り、Oracle や Sybase 等から、SQL Server への移行作業を支援するツールとなり、無償で利用できます。この SSMA を使用する際は、64bit 環境で 64bit 版を使用した方が良い、というお話です。
これは、32bit と 64 bitでは、使用できるメモリ量が異なるため、となります。以前、SQL Server のメモリ管理についてのポストで、仮想アドレス空間について説明が行われていますが、こちらのポストをお読みいただけましたでしょうか?
この仮想アドレス空間の制限を SSMA も受けるため、32bit 環境で SSMA を使用した場合、2GB までしかメモリを使用することが出来ません。そのため、大量のオブジェクトや大きなプロシージャを Convert する場合に、メモリ不足のエラー(System.OutOfMemoryException)によって処理が失敗する可能性があります。
お問い合わせ自体は少ないですが、弊社にも 32bit 環境でSSMAを使用した際にメモリ不足のエラーで Convert が失敗するお問い合わせがあり、海外のコミュニティ等でも同様の報告が上げられています。
このメモリ不足に対しての対応は64bit OS 上で 64bit 版の SSMA を使用する、というのが回答となります。
64bit であれば、仮想アドレス空間の制限は受けないため、後は物理メモリを潤沢に積むことで、少なくともメモリ不足での失敗を回避できる……ハズです。
やはり、対象のオブジェクトの作り等によってはそれでも回避できない可能性は残ります。こうしたオブジェクトについては、SSMAで移行できないオブジェクトや機能と同様、お客様にて移行を行って頂く必要があります。
SSMA が少しでも SQL Server への移行の手助けになれば幸いです :-)