検索
連載

Oracle DatabaseとMySQLの機能の違いを比較表で理解する実践 OSSデータベース移行プロジェクト(終)(1/2 ページ)

本連載では、商用DBMSからOSSデータベースへの移行を検討する企業に向け、「MySQL」への移行プロジェクトで必要となる具体的なノウハウをお届けします。今回は、移行設計を実施するに当たり把握しておきたい、Oracle DatabaseとMySQLの機能の違いについて説明します。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

 商用DBMSからOSSデータベースへの移行を検討する企業に向け、「MySQL」への移行プロジェクトで必要となる具体的なノウハウをお届けする本連載「実践 OSSデータベース移行プロジェクト」。前回までは、株式会社豊洲部品(仮名)社内システムの移行事例を用いてさまざまな観点より移行コストの評価を実施しました。

 本稿では、個々の移行事例から離れて、移行設計を実施するに当たり把握しておきたい、Oracle Database(以下、DB)とMySQLの機能の違いについて説明します。

 なお移行元は、Oracle Database 10g/11g(ライセンスはSE1、SE)、移行先は、MySQL Server 5.7(InnoDBを主に利用)を想定しています。

Oracle DB機能に対応するMySQL機能概要

 下記にOracle DBの機能に対応するMySQLの機能について、前回までの記事で説明済みのオブジェクト関連(トリガなど)の機能、および開発プラットフォーム系(ODBCドライバなど)機能を除き概要をまとめました。

 表を活用して移行元Oracle DBで使用している機能についてヒアリングを実施してください。

 なお、使用している機能に対応するMySQLに類似機能がない場合は、「代替え策の検討などに時間が費やされるため、移行コストが高くなる」ことにご注意ください。

表1 移行元Oracle DBの機能分類が「データベースアーキテクチャ」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
行レベルロック 不整合を起こさない読み取り一貫性の保証
ページ単位や表単位にエスカレートしない完全な行レベルロック
行レベルロック対応あり
※トランザクション分離レベルをread-committedにした場合はネクストキーロックは発生しない
トランザクション分離レベル read-committedのみサポート read-committed対応可
defaultはrepeatable-read
コストベースオプティマイザの高度な最適化 コストベースに加えてヒストグラムを用いた最適化を行う機能 コストベースのオプディマイザで対応可能であるが、Oracle DBほど高度な最適化はできない
ラージオブジェクト(LOB)サポート 4000Bを超える文字列型、バイナリ型を格納する text型、BLOB型で対応可能だが、最大値に注意
テラバイトLOBサポート 4000Bを超える文字列型、バイナリ型を格納する text型、BLOB型で対応可能だが、最大値に注意
※MySQLとして最大に制約はないが、実現可能かについては検証が必要
LogMiner REDOログ情報をSQLで表示するツール バイナリログをテキスト化することで、更新履歴を確認できる
マルチブロックサイズのサポート 1つのDBで複数のブロックサイズをサポートする defaultは16KB
サイズを変えられるが、1つのDBで複数は持てない
ロール 権限を束ねて管理する プロキシユーザーを利用することで、同様の役割を持たせることが可能


表2 移行元Oracle DBの機能分類が「DB統合」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
基本レプリケーション。準同期も選択可能 マスターのデータをスレーブへデータをレプリケーション
SQLベースの完全同期型(非同期も可能)
SE2/SE1/SE:読み取り専用、更新可能なマテリアライズドビュー
同期のタイミングは、commitごと、時間ごとなど選択可能
MySQLの場合非同期
スレーブは基本参照
Database Gateways 他DBMS連携用 類似機能なし
Oracle Streams メッセージキューイング(AQ)、レプリケーション、イベント、データウェアハウスのロード、通知および公開/サブスクライブを統合する枠組み
SE1/SE:REDOログからのキャプチャーなし
MySQLの場合非同期
スレーブは基本参照
アドバンストキューイング JavaのJMS機能をDBで実現している機能 類似機能
一部の機能についてはなし
分散問い合わせ DBリンクの機能を用いて、他DBのデータを取得できる 一部の機能についてはFederated storage engineで可能
分散トランザクション DBリンクの機能を用いて、他DBのデータを取得した際に、2フェーズコミットおよびXAサポートしているかどうか 類似機能なし
Oracle Generic Connectivity 分散問い合わせ、分散トランザクションを実現するために実装された機能。データベースリンクに似てはいるが、設定が複雑なため、あまり利用されない 一部の機能についてはFederated storage engineで可能


表3 移行元Oracle DBの機能分類が「高可用性」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
基本スタンバイデータベース 基本的なスタンバイデータベース。ログ転送や適用は手動 MySQLレプリケーション、Oracle Clusterware、サードパーティーツールなどで可能
Oracle Fail Safe Oracle Fail Safeを使うと、Microsoftクラスタ上で稼働してMicrosoft Failover Cluster(MSFC)で構成されているOracle DBやその他のアプリケーションの停止時間を、最小限に抑えることが可能。Windowsのみ 類似機能なし(Oracle Fail Safeと同等のものはないが、MSFCを使った高可用性構成が取れる)


表4 移行元Oracle DBの機能分類が「バックアップ/リカバリー」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
Recovery Manager(RMAN) 物理バックアップ/リカバリー処理全体の設定管理 Percona XtraBackupで可能。EEは、MySQL Enterprise Backupでも可能
オリジナルEXP/IMPおよびData Pump Export/Import 論理バックアップ/リカバリー処理およびデータ移動処理全体の設定管理 mysqldumpおよびmysqlpumpで可能


表5 移行元Oracle DBの機能分類が「スケーラビリティ」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
MySQL Clusterで一部同等機能を提供 一貫性を保ちながら1つのDBを複数のコンピュータで並列に操作できるようになり、負荷分散を図ることができる。また、処理要求が増大したときにコンピュータを追加することで柔軟に性能を拡張できる他、1台に障害が発生した際に他のコンピュータに処理を引き継ぐ機能(フェイルオーバー)などもある 類似機能なし
自動ワークロード管理 下記コンポーネントを使用してワークロードの分散を管理し、ユーザーおよびアプリケーションに対してパフォーマンスを最適化する
・サービス
・コネクションロードバランシング
・高可用性フレームワーク
・高速アプリケーション通知(FAN)
・ロードバランシングアドバイザー
・自動ワークロードリポジトリ
類似機能なし


表6 移行元Oracle DBの機能分類が「セキュリティ」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
暗号化スクリプト(DBMS_CRYPTパッケージ) Oracle 9iまで使用:DBMS_OBFUSCATION_TOOLKITパッケージ、Oracle 10gからのDBMS_CRYPTOパッケージには従来のDES、3DESに加えAdvanced Encryption Standard(AES)、MD5、MD4、SHA-1と追加オプションが用意されている。入力データ型としてBLOB、CLOBもサポートされる MySQL EEでは、MySQL Enterprise Encryptionで暗号化関数を提供
ローカルDB監査ログの取得 AUDITコマンドで実現 MySQL EEでは、MySQL Enterprise Auditで監査ログ取得可能
External User Linux/UNIX OSユーザーによるアクセス MySQL EEでは、MySQL Enterprise Authenticationで可能
Kerberos、PKI、RADIUSなどのサポート ユーザー認証の厳密化 類似機能なし
EUS - Enterprise User LDAPユーザーを使った個人認証 MySQL EEでは、MySQL Enterprise Authenticationで可能
EUS - Enterprise Role LDAPグループを使ったDBロール割当て 類似機能なし


表7 移行元Oracle DBの機能分類が「ネットワーク」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
DBクライアント間のネットワーク暗号化 暗号化機能の方式として、Oracleが提供する対称(秘密キー)暗号化方式(標準)とPKI/SSLをベースとした非対称(公開キー)暗号化方式の2つがある。通常はEE版アドバンストセキュリティオプションを使用して実現しているが、SE版でも構成可能である MySQLでもクライアント〜サーバ間はSSL通信可能


表8 移行元Oracle DBの機能分類が「Oracle XML DB」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
Oracle XML DB XMLの構造をデータベースに格納 類似機能なし


表9 移行元Oracle DBの機能分類が「コンテンツ管理」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
Oracle Ultra Search Web検索エンジン 類似機能なし
Oracle Inter Media マルチメディアコンテンツを管理格納 類似機能なし
DICOMサポート 医療画像や通信の標準規格であるDICOMをサポート 類似機能なし
Oracle Text 全文検索機能 N-gramおよびMeCab使用で可能


表10 移行元Oracle DBの機能分類が「自己管理機能」の場合の比較表
移行元Oracle DB機能 説明 移行先MySQL機能
Automatic Storage Management(ASM) ストレージ領域を仮想化するストレージ管理機能であり、ボリューム管理に相当する機能とファイルシステムに相当する機能を提供 類似機能なし
STATS PACK Oracleの性能分析をするためのレポートを作成するOracleデータベース標準ツール
データベースの監視情報を自動的に収集
CactiとPercona MySQL Monitoring Template for Cactiで可能。EEではMySQL Enterprise Monitor
自動SGAメモリ管理 SGAのサイズ動的変更と自動管理 類似機能なし
PGAの自動チューニング PGAの自動チューニング 類似機能なし
自動Undo管理 UNDOセグメントの自動管理 innodb_undo_directoryおよびinnodb_undo_tablespacesで可能
Oracle Managed Files データベースオブジェクトレベルでデータベースがファイルを自動的に作成、命名および管理するファイルシステムディレクトリを指定しデータベースの管理を簡素化する 類似機能なし

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る