Oracle Database XEがミッションクリティカルに強いのかMySQLと比較して検証してみました。
Oracle Database XEがミッションクリティカルに強いのかMySQLと比較して検証してみました。
色々なブログや記事で、oracleのデータベースはミッションクリティカルに強いというのを良く目にしますが、実際のところどうなのか、oracleユーザーで動作しているプロセスを殺してどのように動くのか検証してみました。
oracleのプロセスの検証
下記がoracleのプロセス群です。
- xe_pmon_XE
- xe_psp0_XE
- xe_mman_XE
- xe_dbw0_XE
- xe_lgwr_XE
- xe_ckpt_XE
- xe_smon_XE
- xe_reco_XE
- xe_cjq0_XE
- xe_mmon_XE
- xe_mmnl_XE
- xe_d000_XE
- xe_s000_XE
- xe_s001_XE
- xe_s002_XE
- xe_s003_XE
- xe_qmnc_XE
- xe_q001_XE
- xe_q000_XE
xe_pmon_XEプロセスの検証
ps ax | grep xe_pmon_XE kill -9 5626
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも数秒後終了しました。
PMONプロセスはユーザープロセスに障害が発生したときに、回復処理を行うプロセスのようです。
心強いプロセスです。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_psp0_XEプロセスの検証
ps ax | grep xe_psp0_XE kill -9 6042
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_mman_XEプロセスの検証
ps ax | grep xe_mman_XE kill -9 6046
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_dbw0_XEプロセスの検証
ps ax | grep xe_dbw0_XE kill -9 6210
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_lgwr_XEプロセスの検証
ps ax | grep xe_lgwr_XE kill -9 6220
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
REDOログバッファで変更された内容を、REDOログファイルへ書き込むプロセスです。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_ckpt_XEプロセスの検証
ps ax | grep xe_ckpt_XE kill -9 6461
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
特定のタイミングで、データベースライターと制御ファイルを更新し、データベースの整合性を維持するプロセスです。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_smon_XEプロセスの検証
ps ax | grep xe_smon_XE kill -9 6538
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
SMONプロセスはデータベースの異常終了を検知し、データベースが起動したときに、回復処理を行うプロセスです。これも又心強いプロセスです。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_reco_XEプロセスの検証
ps ax | grep xe_reco_XE kill -9 6626
killコマンドでプロセスが終了。
その他のoracle権限で動作していたプロセスも終了しました。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_cjq0_XEプロセスの検証
ps ax | grep xe_cjq0_XE kill -9 6703
killコマンドでプロセスが終了。
数秒後違うPIDで復活!
xe_mmon_XEプロセスの検証
ps ax | grep xe_mmon_XE kill -9 6784
killコマンドでプロセスが終了。
数秒後違うPIDで復活!
xe_mmnl_XEプロセスの検証
ps ax | grep xe_mmnl_XE kill -9 6876
killコマンドでプロセスが終了。
数秒後違うPIDで復活!
xe_qmnc_XEプロセスの検証
ps ax | grep xe_qmnc_XE kill -9 6876
killコマンドでプロセスが終了。
様子が変わらず。
/etc/init.d/oracle-xe restartで動作し直しました。
xe_d000_XEプロセスの検証
ps ax | grep xe_d000_XE ps ax | grep xe_s000_XE ps ax | grep xe_s001_XE ps ax | grep xe_s002_XE ps ax | grep xe_s003_XE ps ax | grep xe_q000_XE ps ax | grep xe_q001_XE kill -9 6966 kill -9 6968 kill -9 6970 kill -9 6972 kill -9 6974
killコマンドでプロセスが終了。
数秒後違うPIDで復活!おお!
プロセスが万が一強制終了しても、強制終了したプロセスを復活させる機能があるなんて!凄い!
MySQLのプロセスの検証
mysql - 5.0.45-7の場合下記2つのプロセスが起動している。
- /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-err…
- /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysql…
/usr/libexec/mysqldのプロセスを終了させると、先程のoracleのプロセスのようにすぐ復活した。
しかし、/bin/sh /usr/bin/mysqld_safeのプロセスを先に終了させてから、
/usr/libexec/mysqldのプロセスを終了させると、MySQLのプロセスは完全に終了してしまいました。
おそらく、/bin/sh /usr/bin/mysqld_safeのプロセスが/usr/libexec/mysqldのプロセスを監視しているのでしょう。
まとめ
上記のような結果になりましたが、oracleのプロセスは複数のプロセス同士が監視をし合うという安全な作りになっているが、MySQLは2つしかプロセスが存在しないのでoracleに比べると脆いような印象を受けました!
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/
Oracle Database XEとMySQLのプロセスのメモリ使用量を比較しました。
Oracle Database XEとMySQLのプロセスのメモリ使用量を比較しました。
Oracle Database XEのプロセスを表示。
ps aux | grep oracle USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND oracle 2934 0.0 0.1 21516 5820 ? Ss 18:59 0:00 /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr LISTENER -inherit oracle 2939 0.0 0.2 869928 10152 ? Ss 18:59 0:00 xe_pmon_XE oracle 2941 0.0 0.2 869320 8732 ? Ss 18:59 0:00 xe_psp0_XE oracle 2943 0.0 0.6 869320 24768 ? Ss 18:59 0:00 xe_mman_XE oracle 2945 0.0 0.5 871388 21024 ? Ss 18:59 0:00 xe_dbw0_XE oracle 2947 0.0 0.6 884868 28432 ? Ss 18:59 0:00 xe_lgwr_XE oracle 2949 0.0 0.3 869328 14500 ? Ss 18:59 0:00 xe_ckpt_XE oracle 2951 0.0 1.2 870876 49932 ? Ss 18:59 0:00 xe_smon_XE oracle 2953 0.0 0.3 869320 14240 ? Ss 18:59 0:00 xe_reco_XE oracle 2955 0.0 0.5 870924 21032 ? Ss 18:59 0:00 xe_cjq0_XE oracle 2957 0.0 1.0 872120 43708 ? Ss 18:59 0:00 xe_mmon_XE oracle 2959 0.0 0.3 869316 13684 ? Ss 18:59 0:00 xe_mmnl_XE oracle 2961 0.0 0.2 869980 10264 ? Ss 18:59 0:00 xe_d000_XE oracle 2963 0.0 1.6 874636 66564 ? Ss 18:59 0:01 xe_s000_XE oracle 2965 0.0 0.3 869928 13192 ? Ss 18:59 0:00 xe_s001_XE oracle 2967 0.0 0.3 869928 12940 ? Ss 18:59 0:00 xe_s002_XE oracle 2969 0.0 0.2 869928 9924 ? Ss 18:59 0:00 xe_s003_XE oracle 2973 0.0 0.2 869316 9892 ? Ss 18:59 0:00 xe_qmnc_XE oracle 2982 0.0 0.2 869316 10976 ? Ss 18:59 0:00 xe_q000_XE oracle 2986 0.0 0.2 869316 9232 ? Ss 19:00 0:00 xe_q001_XE
次にMySQLのプロセスを表示。
ps aux | grep mysql USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 4898 0.0 0.0 5420 1120 pts/1 S 22:18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid mysql 4958 0.0 0.4 126048 19076 pts/1 Sl 22:18 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
物理メモリの占有率(%MEM)、プロセスが使用する仮想メモリ量(VSZ)、プロセスが使用する物理メモリ量(RSS)を合計するとMySQLの方がメモリ使用量が少ない事がわかりました。
しかし、Oracle Database XEには出来て、MySQLには出来ない事等が色々あると思うので、これはこれで良いのかなと思います。
http://www.tripodworks.co.jp/jp/doc/ITseminar20080609.pdf
Oracle Databaseはミッションクリティカルにはかなり強いデータベースなんですね。
結局は”適材適所”ですね!
参考サイト
http://at-aka.blogspot.com/2006/07/linux.html
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/
SEOツールを開発しようと思ったけど、既出でした。。。
キーワード毎に時系列で順位を見る事が出来るSEOツールが無いと思ってたので、作ろうと思いました。
まず初めに
まず初めにER図を書いてみました。
ER図作成後、http://seopro.jp/grc/の機能を見て、構築を止めてしまいました(笑)
MySQLWorkbenchを初めて使ってみたのですが、マニュアルを読まずにここまで綺麗に作ることが出来てびっくりしました。
Excelで作ったのとは大違いです。
追記
投稿慣れしていないので、文章を組み立てるのが難しいです。。。
[PR]Spreeの情報を集めています。
ECを持ちたい方、仕事でECを使いたい方向けのコミュニティサイトです。
このサイトでは世界で最も使用されているECの1つであるSpreeについての情報を提供しています。
http://spreecommerce.jp/