Oracleこんにちは、アイダです。間の移行作業を行ったSさんからの投稿です。当ブログではAWSなどクラウドの投稿が続いておりましたが、当社では自社にて物理サーバ環境(オンプレミス)および仮想サーバ環境(VMware)を保有し、データセンターとして長年お客様にご利用いただいております。以下当社HPの業務紹介リンクです。www.intage-technosphere.co.jp今回はオンプレミスから仮想サーバへDB移行を実施されたとのことですが、なぜこの移行を実施したのか、理由や移行に利用したツールの使い方について投稿いただきました。Sさんお願い致します。移行する作業を行っています。(SSMA)という移行ツールを採用しました。使い方や実作業で得た感想を共有させていただきます。HANAのデータベース上で稼働する社内システムの運用管理を担っています。データベースは、優れているデータベースシステムで、現在もデータベース管理、アプリケーション開発、安定稼働などに特に不満があるわけではありません。移行することになりました。ほかのデータベースと比較して、オラクルのライセンス料が高いので、社内の仮想環境のサーバーに容易に導入することができません。データベースを利用している社内システムが近年のシステムリプレースで大分少なくなりました。移行することで、移行作業の工数が発生するが、運用面とコスト面で下記の効果が期待できます。データベースのライセンス費用を大幅に削減できます。仮想サーバーに移行することで、ハードウェアのリソースを柔軟に増強できます。データベース運用人材の育成費用の削減ができます。一般的に異なるデータベース間の移行はデータベースオブジェクト定義、アプリケーションを書き替える必要があります。データを移行するプログラムを用意しなければなりません。このような移行作業はかなりの工数がかかります。新旧両方のデータベースのスキールを持つ技術者が必要で、そのような人材は容易に確保できません。移行ツールの活用を検討していました。(SSMA)という移行ツールを採用しました。無償で提供しているGUIベースのマイグレーションツールです。移行元としては、次のデータソースに対応しています。ASE※対応データソースごとにソフトを提供しています。Serverへの移行作業の効率化および自動化をサポートします。移行後の評価などの効率化と自動化が可能になります。9.0以降のデータベースをサポートします。下記のターゲットバージョンに移行できます。Assistantから最新のバージョンをダウンロードします。Oracleが最新です。クライアントのインストール」に従ってインストールします。Studio」をインストールする必要があります。Oracle」アイコンが作られます。Oracle」が起動されます。今回は実業務で取り出せるソースがあったので、それを使って移行ツールの使い方を紹介したいと思います。移行元のORACLEオブジェクトが下記のとおりです。Data)上記の流れは、Microsoft社のチュートリアルを参考しました。Oracle」アイコンをダブルクリックします。Oracle」画面が表示されます。Project」をクリックします。製品を選択し、「OK」ボタンを押します。データベースに接続する必要があります。Oracle」ボタンを押します。Oracle」画面で接続情報を入力し、「Connect」ボタンを押します。DBの移行対象のスキーマを選択することができます。今回は、スキーマMASTERとSDSを選択します。このときSYSとSYSTEMは除外することができません。「OK」ボタンを押します。Explorer」ペインに選択されたスキーマのオブジェクトが表示されます。移行対象オブジェクトの評価SSMAのオブジェクトの評価は、移行元のオブジェクトに対してソース分析を行い、互換性がない箇所や、代替方法や、推奨情報などを教えてくれます。Explorerから移行元のオブジェクトを選択します。MASTERからテーブルITG_TOKMSTを選択します。SDSからすべてのオブジェクトを移行先に持っていきたいので全部のオブジェクトを選択します。Report」をクリックします。プロジェクトフォルダーの下に評価の結果レポートが作成されます。ブラウザで閲覧できます。下記の評価結果のサンプルは、このツールで移行できるスキーマの全体の状況が表示されます。下記の画像は、プロシージャP_SDS_0010の評価結果です。ORACLE関数SUBSTRBが変換できないことを教えてくれます。これらの結果レポートを使えば、SSMAで自動変更できないソースの箇所を特定できるため、移行工数の見積を作成する時に参考になります。エラー情報から足りないオブジェクトを発見することができます。Serverに接続します。Explorer」ペインにすべてのオブジェクトを表示します。Server」ボタンをクリックします。Server」画面で移行先DBに接続するための情報を入力します。Explorer」ペインで移行先のデータベースにある既存のオブジェクトが表示されます。データベースオブジェクトに変換します。スキーマのマッピングを設定デフォルトでは移行先のスキーマが移行元と同じです。今回の例は移行元のスキーマMASTERとSDSを移行先のスキーマGMISMSTDB.dboに統合するので、手動で移行先のスキーマを指定します。Mapping」タブ、「Modify」ボタンを順にクリックします。Schema」に「GMISMSTDB.dbo」を入力してから、「OK」ボタンをクリックします。ソーススキーマ「MASTER」のターゲットスキーマが「GMISMSTDB.dbo」になったことを確認します。同様、ソーススキーマ「SDS」のターゲットスキーマを「GMISMSTDB.dbo」に変更します。データタイプのマッピングを設定ターゲットのテーブル列の属性を変更することができます。今回の例では、デフォルトの設定を使用します。スキーマ変換を実行スキーマのマッピング、データタイプのマッピングを設定した後、下記のようにスキーマ変換処理を実行します。Schema」ボタンをクリックします。例では、すべてのスキーマを変換するので、「Schemas」を選択します。Explorer」ペインに表示され、ローカルのプロジェクトの下に保存されます。この時点ではまだ、実際の移行先のデータベースに反映されていません。SSMAはスキーマ変換で解決できない箇所がエラービューに表示されます。Explorer」ペインにエラーのオブジェクトが赤マークが付けられます。Explorer」ペインでエラーのオブジェクトをクリックすると移行元のソースと変換後のソースが表示されます。ここで変換後のソースを修正することができます。Studio(SSMS)に慣れていたので、先に下記データベースの同期をしてから、評価レポートを参照しながらSSMSで修正するようにしました。