新たな連載スタート!

みなさん、こんにちは🤗
新たな連載がスタートします。
DMUはご存知でしょうか?4回に分けてわかりやすく紹介していきますので、宜しくお願い致します。

今回の著者は
●ORACLE MASTER Silver Oracle Database 12cを取得しました!
●ORACLE MASTER Bronze Oracle Database 12cを取得しました!
●Oracle Cloud Infrastructure Classic 2018 Associate Architectを取得しました!
に登場した社員です🍀

なんと昨年の新入社員で、とても頼りになる存在です❗

ごあいさつ🌸

初めまして。
資格取得以外では初投稿です。
私は2019年に新卒で入社し、Oracle DBの構築や移行のお仕事を担当しています👀

今回、Database Migration Assistant for Unicode(DMU)の検証をする機会がありましたので、DMUについて記事を執筆していきたいと思います。
よろしくお願いいたします🤗

※今回使用した検証環境は以下の通りです。

DMU 2.1.1
DB 12.1 single
OS RHEL 7.3

Database Migration Assistant for Unicode(DMU)とは?

初回は「DMUとは何か?」という点をお伝えできればと思います。

DMUとは?

DMUのダウンロードサイトには以下のように記載されています。

Oracle Database Migration Assistant for Unicode(Oracle DMU)は、データベースをレガシー・エンコーディングからUnicodeに変更するためのエンド・ツー・エンドのソリューションを提供する、オラクル独自の次世代移行ツールです。

つまりDMUは
Oracle DBのデータベース キャラクタセット をUnicodeへ変更する際の全面的なサポートをしてくれるGUIツールです。

画像引用元:DMUダウンロードサイト

 キャラクタセット 変更時の問題点

キャラクタセット の変更は、大きく分けると
1. 問題点の検知
2. 問題点の解消
3.  キャラクタセット の変更
という流れで実行されます。

では、問題点とはいったいどのようなものがあるのでしょうか?
一例として、データベース キャラクタセットJA16SJISTILDE から AL32UTF8 へ変更する場合を考えてみましょう。

JA16SJISTILDE では、ほとんどの日本語が1文字2バイトで格納されます。
一方、AL32UTF8 では日本語1文字は3バイトで格納されます。

つまり、同じ ”ひとりでできるもん” というデータが、JA16SJISTILDE では18バイト、AL32UTF8 では27バイトで格納されるため、 キャラクタセット の変更後にデータがあふれてしまう可能性があります。

例 最大バイト数が20のカラムに ”ひとりでできるもん” が格納されている場合

JA16SJISTILDE AL32UTF8
カラムの最大バイト数 20 20
実際の格納バイト数 18 27

上記の場合、キャラクタセットの変更後にデータがあふれてしまうという問題が生じます。

DMUで出来ること

キャラクタセットの変更は、大きく分けると、
1. 問題点の検知
2. 問題点の解消
3. キャラクタセットの変更
という流れで実行されることをお伝えしました。

それでは、DMUを使用すると何ができるのでしょうか…
実はDMUを使用すると、上記工程の全てを実行することができます

例えば、以下の作業全てをDMUから実行することが可能です。
1. データが溢れてしまうカラムを特定する
2. データが溢れてしまうカラムを拡張する
3. 問題が解消されたことを確認して、キャラクタセットを変更する

移行プロセスが簡素化されて、とっても便利ですね🌸

DMUのサポート環境

DMUは11.2.0.4以降のOracleデータベースをサポートし、Java SE Development Kit(JDK)8を使用します。

DMUがサポートされているクライアントプラットフォームは以下の通りです。
● Microsoft Windows Vista(SP2)
● Microsoft Windows 7(SP1)
● Microsoft Windows 8.x
● Microsoft Windows 10
● Microsoft Windows Server 2008 R2(SP1)
● Microsoft Windows Server 2012
● Microsoft Windows Server 2012 R2
● Microsoft Windows Server 2016
● Red Hat Enterprise Linux 7.x
● Red Hat Enterprise Linux 6.x
● Red Hat Enterprise Linux 5.5+
● Oracle Enterprise Linux 7.x
● Oracle Enterprise Linux 6.x
● Oracle Enterprise Linux 5.x
● Oracle Enterprise Linux 4.x
● SUSE Linux Enterprise Server(SLES)10 SP2 +
● SUSE Linux Enterprise Server(SLES)11.x
● SUSE Linux Enterprise Server(SLES)12.x
● Oracle Solaris SPARC 10 Update 9+
● Oracle Solaris SPARC 11.x
● Oracle Solaris Intel 10 Update 9+
● Oracle Solaris Intel 11.x
● Hewlett-Packard HP-UX PA-RISC
● Hewlett-Packard HP-UX Itanium

さいごに

今回、簡単にではありますが「DMUとは何か?」ということを紹介しました👀
次回は、 キャラクタセット 変更時における問題点の検知を検証していきたいと思います。
よろしくお願いいたします。

お楽しみに😆

 

投稿者プロフィール

技術チーム
技術チーム
DBひとりでできるもんを盛り上げるべく、技術チームが立ち上がり早6年。ひとりでできるもんと言いつつ、技術者が読んでプッとなるような、極めてピンポイントでマニアックな技術ネタを執筆しています!