Oracle DatabaseとMySQLの機能の違いを比較表で理解する:実践 OSSデータベース移行プロジェクト(終)(2/2 ページ)
本連載では、商用DBMSからOSSデータベースへの移行を検討する企業に向け、「MySQL」への移行プロジェクトで必要となる具体的なノウハウをお届けします。今回は、移行設計を実施するに当たり把握しておきたい、Oracle DatabaseとMySQLの機能の違いについて説明します。
Oracle DBの機能に対応するMySQLの「バックアップ」機能
ここからは、Oracle DBからMySQLへの移行に際して機能関連の質問で特に多い「バックアップ」機能に対してのみ、以下の分類でMySQLの機能を説明します。
- オンラインで物理バックアップを取得する方法
- オフラインで物理バックアップを取得する方法
- オンラインで論理バックアップを取得する方法
オンラインで物理バックアップを取得する方法
Oracle DBとMySQLについて、物理バックアップかつオンラインバックアップを実施する方法の比較を実施します(論理バックアップは、ここでは考慮しません)。
Oracle DB
Oracle DBには、主に下記2つの方法があります。
- rmanを使用する方法(参考)
- Begin Backup 、End Backupの間にデータファイルをOSコマンドなどでコピーする方法(参考)
2.ではまず、下記コマンドでアーカイブログモードか確認します。
SQL> archive log list ;
次に、下記コマンドを実行します。
SQL> ALTER DATABASE Begin Backup ;
続いて、OSコマンドなどでデータファイルをコピーします。ストレージ装置のコピー機能を使用すれば、使用ブロックのみの差分コピーが可能です。一時ファイルは、コピーしません。
この後、下記コマンドを実行します。
SQL> ALTER DATABASE End Backup ;
アーカイブREDOログファイルをバックアップします。
SQL> ALTER SYSTEM archive log current
制御ファイルのバックアップを行います(バイナリファイル)。
SQL> ALTER DATABASE backup controlfile to '<パス名>' ;
制御ファイルのバックアップを行います(トレースファイル)。
SQL> ALTER DATABASE backup controlfile to trace ;
最後に、OSコマンドで初期化パラメーターファイルなどをバックアップします。
MySQL
MySQLには、主に下記2つの方法があります。
オフラインで物理バックアップを取得する方法について
Oracle DBとMySQLについて、オフラインで物理バックアップを取得する方法を比較します(論理バックアップは、ここでは考慮しません)。
Oracle DB
Oracle DBには、主に下記2つの方法があります。
- rmanを使用する方法(マウント状態でバックアップを取得する)
- OSコマンドなどでコピーする方法(クローズ状態でバックアップを取得する)
1.ではまず、正常にデータベースを停止し、下記コマンドを使って、マウント状態で起動します。
SQL> STARTUP MOUNT;
次に、下記コマンドでRMANを起動します。
$rman target /
続いて、下記コマンドを実行します。
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '<バックアップ出力先/出力フォーマット(ex:%U)>';
下記コマンドでデータファイル、アーカイブREDOログファイル、制御ファイル、SPFILEをバックアップします。
RMAN>BACKUP DATABASE PLUS ARCHIVELOG DELETE ALL INPUT;
OSコマンドなどで初期化パラメータファイルなどをバックアップし、下記コマンドでOPEN状態に変更します。
SQL>ALTER DATABASE OPEN;
2.ではまず、正常にデータベースを停止し、OSコマンドでデータファイル、一時ファイル、REDOログファイル、アーカイブREDOログファイル、制御ファイル、初期化パラメータファイルなどをバックアップ先にコピーします。
その後、データベースを起動します(参考)。
MySQL
MySQLでは、OSコマンドなどでコピーする方法を使います。
まず、下記コマンドでMySQLサーバを停止します。
# mysqladmin --user=root --password=root --socket=/var/lib/mysql/mysql.sock shutdown
次に、OSコマンドでファイルをバックアップ先にコピーします。
# cp -rp /var/lib/mysql /backup/mysql-20170802
MySQLサーバを起動します。
# mysqld --user=root &
オンラインで論理バックアップを取得する方法について
Oracle DBとMySQLについて、論理バックアップかつオンラインバックアップを実施する方法を比較します。
Oracle DB
Oracle DBには、主に下記2つの方法があります。
- exp(オリジナルのエクスポート)を使用する方法
- expdpを使用する方法
1.のexpは、Oracle DB 5.1で実装された標準ツールです。多くのシステムでの使用実績がありますが、OracleDB11.1からは原則としてサポートされなくなりました(参考)。
2.のexpdpは、Oracle DB 10.1で実装された標準ツールです。expと比較して、パフォーマンスおよび管理性が向上しています(参考)。
MySQL
MySQLは、主に下記2つの方法があります。
- mysqldumpを使用する方法
- mysqlpumpを使用する方法
1.のmysqldumpは、MySQL 3.23で実装された標準ツールです。多くのシステムでの使用実績がありますが、バックアップ性能が物理バックアップと比較すると大きく劣ることに注意してください(参考)。
2.のmysqlpumpは、MySQL 5.7.8で実装された標準ツールです。バックアップが並列化され大幅に性能が、向上しています(参考)。
連載の終わりに
今回は、移行設計時に考慮しておきたい、Oracle DBとMySQLの機能比較概要およびバックアップ機能比較について解説しました。本記事を参考に移行設計時に十分ヒアリングを実施してください。
なお今回をもちまして、本連載は終了です。連載では、商用データベース管理システム(以下、DBMS)からOSSデータベースへの移行を検討する企業に向け、「Oracle DBから、MySQLへ移行する」際に必要となる、技術的な要素と具体的な方法をまとめて8回にわたって紹介して参りました。
整合性やトランザクションを確実に管理し、トランザクション単位でデータの整合性を担保できる旧来のDBMSが持つ重要性も再認識されている中、商用製品からOSSへの移行を検討し、それを実践する企業が一層増えていくと筆者は考えています。本連載が皆さまの移行設計の一助となれば幸いです。長い間、お付き合いいただき誠にありがとうございました。
今回お伝えした内容以外の最新情報については、「SCSK MySQLエンジニアブログ」でも掲載しています。併せて参照してみてください。
筆者紹介
廣濱顕司(ひろはま けんじ)
SCSK株式会社 ITマネジメント事業部門 基盤インテグレーション事業本部 通信基盤インテグレーション部所属。東京都出身 東京都在住。MySQLやMySQL Clusterのコンサルティング、設計構築、プリセールスなどを行っていたが、最近は営業やマーケティング活動もカバーするようになり、技術が分かる営業として日本国内を縦断中。
荻野邦裕(おぎの くにひろ)
SCSK株式会社所属。神奈川県横浜市在住。1983年よりIT業界へ。その間Oracleを中心とした、DB関連作業を多数経験。DBの移行を得意とする。趣味は自己チューニング(水泳、マラソン、筋トレ)及び愛犬アポロ(チワワ)と遊ぶこと。
潮雅人(うしお まさと)
SCSK株式会社 ITマネジメント事業部門 基盤インテグレーション事業本部 通信基盤インテグレーション部所属。神奈川県川崎市在住。入社当初よりデータベースの設計構築や技術サポート業務に従事。MySQLを中心にしつつもOracle Database、Oracle RACなどの構築にも携わる。趣味はスノーボード、スキューバダイビング、海外旅行など。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「Oracle Databaseをやめる」という選択肢
Oracle Databaseのライセンス体系が変更され、これまでSE1/SEを利用していたユーザーは「実質の値上げを受け入れる」か「Oracle Databaseをやめる」かの選択が迫られています。本連載では、商用DBMSからOSSデータベースへの移行を検討する企業に向け、「MySQL」への移行プロジェクトで必要となる具体的なノウハウをお届けします。初回は、本連載を展開する背景を説明します。 - MySQLの「気になるウワサ」はどこまで本当?
Webの世界で人気の高いオープンソースRDB「MySQL」は、振り返ると買収や分岐など、運命に翻弄されてきましたが、中には正しくない話も出回っているようです。あの話は、本当ですか? - OSSデータベースのMySQLとPostgreSQLは「次の段階」へ進む
オープンソースデータベースの両雄、MySQLとPostgreSQLはどちらも近々大きく変化を遂げそうです。まだ公式発表前ですが、現在入手できる情報から「来たるべき進化」を考えます。