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

» 2017年11月30日 05時00分 公開
[荻野邦裕SCSK株式会社]
前のページへ 1|2       

Oracle DBの機能に対応するMySQLの「バックアップ」機能

 ここからは、Oracle DBからMySQLへの移行に際して機能関連の質問で特に多い「バックアップ」機能に対してのみ、以下の分類でMySQLの機能を説明します。

  • オンラインで物理バックアップを取得する方法
  • オフラインで物理バックアップを取得する方法
  • オンラインで論理バックアップを取得する方法

オンラインで物理バックアップを取得する方法

 Oracle DBとMySQLについて、物理バックアップかつオンラインバックアップを実施する方法の比較を実施します(論理バックアップは、ここでは考慮しません)。

Oracle DB

 Oracle DBには、主に下記2つの方法があります。

  1. rmanを使用する方法(参考)
  2. 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つの方法があります。

  1. MySQL Enterprise Backupを使用する方法(MySQL Enterprise Editionのみ。参考
  2. Percona XtraBackupを使用する方法(別途パッケージのインストールが必要。参考

オフラインで物理バックアップを取得する方法について

 Oracle DBとMySQLについて、オフラインで物理バックアップを取得する方法を比較します(論理バックアップは、ここでは考慮しません)。

Oracle DB

 Oracle DBには、主に下記2つの方法があります。

  1. rmanを使用する方法(マウント状態でバックアップを取得する)
  2. 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つの方法があります。

  1. exp(オリジナルのエクスポート)を使用する方法
  2. expdpを使用する方法

 1.のexpは、Oracle DB 5.1で実装された標準ツールです。多くのシステムでの使用実績がありますが、OracleDB11.1からは原則としてサポートされなくなりました(参考)。

 2.のexpdpは、Oracle DB 10.1で実装された標準ツールです。expと比較して、パフォーマンスおよび管理性が向上しています(参考)。

MySQL

 MySQLは、主に下記2つの方法があります。

  1. mysqldumpを使用する方法
  2. 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などの構築にも携わる。趣味はスノーボード、スキューバダイビング、海外旅行など。


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。