Oracle Database Express Edition 11g Release 2 を5年間運用してきて想うこと

Oracle Database Express Edition 11g Release 2 を5年間運用してきて想うこと


メリークリスマス。
24日が担当だったのに、24日風邪を引いってしまってダウンして、
25日になってしまった。すみません。
2011年9月、ついに、Oracle11gR2XEが正式リリースされた。僕にとっては、とても嬉しいことだった。
10gR2XEでも良かったのだが、11gR2だと何かまた新しいことができるようになってるのでは?と思い、
ワクワクしていた。あと、ディスクが増えるのが嬉しい!
10gR2XEでは、4Gしかなかったディスクサイズが、なんと、11Gまで使えるようになる!
おう、まるで無限の宇宙が広がるようだ。

あれから5年間。いろいろな事があった、それぞ、ざっくりと共有したいと思う。

まず、パッチやサポートがないORACLE XEを本番として使えるのか?
ということを懸念するエンジニアがいるだろう。
その答えは、本番として使える。だ。その本番の定義もいろいろがるが、24/365は問題ない。
ただし、停止時間を0にするとか、二重化するというと、それは出来ない。

さて、僕は、学校の通知表システムを運営している。ShcoolForce Justr
それと、ボランティアでメール転送配信システムを運営している。 ミテルちゃん(http://miteru.ch)

学校のように、通知表システムであれば、
日中、または、遅くても21時ぐらいまでしか先生たちが使わないようなサービスであれば、
問題なく運用できる。
ただし、インターネットにDBむき出しでおくのは、危険なので、Firewallの中でのオンプレミスでの運用となる。

ミテルちゃんでは、ORACLE XEを使ってドコモアドレスからのメール配信をさせる必要があった。
それについては、
https://www.facebook.com/lean.system/posts/808616339213529
facebookの記事にてレポートしている。ドコモメールを文字化けせずに配信することは可能である。
Walletの作成方法としては、Oracle Wallet Manager 無しで実装できた。
この辺りは、基本資料は落ちていない。
落ちてないから、自分で調べる。自分で調べれば、大概のことはできる。

セキュリティ、ハッキング対策
ハッキング対策は、もう、それはORACLEの問題じゃなくて、OSの問題。
もし、OSをハッキングされたら、もう手も足も出ない。
というわけで、ずっとオンプレミスで使ってきた。学校の中にサーバーを置いたのだが、
OSやORACLEをハッキングできる先生は、今のところ発生しなかった。
もちろん、監査ジョブをつけることができたわけではないので、
もしかしたらハッキングされていたかもしれないが、まあ、それはない。

MSアクセスのようにファイルでごっそりコピーされるものではない分、先生たちにも安心してもらっている。

ミテルちゃんはメール送信の為、クラウドに置いている。
クラウドは、KDDIが一番だ。回線はしっかりしてるし、でも、時々落ちてた。この5年間で10回はKDDIのOSが落ちてた。
でも、自動起動がかかった後、ORACLEなので、すべて自動起動で問題なかった。すばらしいぞ、ORACLE.
なお、KDDIは、データ転送量、CPUぶん回し回数に関係なく、一定金額なので、ORACLE使う人(バックグラウンドプロセス回りっぱなし)には、
最適だとおもう。AMAZONだと、CPU回るだけでお金取られるし。

でも、DBむき出しは怖いので、基本的に、SSHでログインしてから、SSHで転送でのみORACLEに接続できる設定にしている。
無作為の中国からのアタックは、怖いからね。

学校のシステムは、オンプレミスで、雑に置かれていたため、結構、ハードが壊れた。
・ハードディスク
・電源
・ファン
壊れた、壊れた。その度に、バックアップから戻すのだけど、流石、ORCLE。 XEであっても、そのあたりは、ちゃんとしている。
リカバリーで失敗したことはない。

もちろん、かなり手こずったことはあったけど、
まあ、いつも、こんな感じでリカバリーできた。

-bash-4.1$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.2.0 Production on 火 3月 3 11:30:35 2015
Copyright (c) 1982, 2011, Oracle. All rights reserved.
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> shutdown abort
ORACLEインスタンスがシャットダウンされました。
SQL> startup mount
ORACLEインスタンスが起動しました。
Total System Global Area 784998400 bytes
Fixed Size 2230608 bytes
Variable Size 591398576 bytes
Database Buffers 188743680 bytes
Redo Buffers 2625536 bytes
データベースがマウントされました。
SQL> alter database open;
alter database open
*
行1でエラーが発生しました。:
ORA-00333: REDOログの読取りでエラーが発生しました(ブロック66842、件数8192)。
SQL> select l.status, member from v$logfile inner join v$log l using (group#);
STATUS
----------------
MEMBER
--------------------------------------------------------------------------------
INACTIVE
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_1_b926cjwz_.log
CURRENT
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_b926ckp9_.log
SQL> recover database using backup controlfile;
ORA-00279: 変更25726978(03/02/2015 10:23:38で生成)にはスレッド1が必要です ORA-00289:
検討すべきログ・ファイル:/u01/app/oracle/fast_recovery_area/XE/archivelog/2015_0
3_03/o1_mf_1_102_%u_.arc
ORA-00280: 変更25726978(スレッド1)は順序番号102に存在します。
ログの指定: {<RET>=suggested | filename | AUTO | CANCEL}
/u01/app/oracle/fast_recovery_area/XE/onlinelog/o1_mf_2_b926ckp9_.log
ログが適用されました。
メディア・リカバリが完了しました。
SQL> alter database open resetlogs;
データベースが変更されました。
SQL>

制御ファイルが飛んだ時も、問題なくリカバリーできた。
あでも、一度、SYSTEM表領域が飛んだ時は、とっても焦ったね。

SYSTEM表領域は、簡単には回復してくれないのです。
で、その時は、こんな風にしました。
もう1つ別にサーバーに、ORACLE XEをインストールして、
表領域のファイルを、無理やり上書きコピーして、
チェックポイント無視して回復させて、強引に復旧させました。
まあ、もちろん、データの喪失はありましたが、それでも、なんとかなりました。

あとは、
パフォーマンスの劣化、ないですね。

チューニングで出来ないこと、ないですね。

修正パッチ、ないですね。
オラクルのデータベースに深刻な脆弱性は、たくさん見つかってます。
でも、それは、OSをFirewallで回避できれば、大概OKです。

自己責任を負えない、自己責任がありえない職場では、利用できないでしょうね

自己責任って無責任かもしれないけど、僕にとっては、
Posgresqlや、MySQLを使うよりも、ちゃんとした人が使えるORACLEで実装しておいた方が、
最悪の最悪の場合、そのちゃんとした人にお金をだしてフォローしてもらえることは、責任あることだと思います。

トランザクションがない世界が恐ろしいと感じるぼくにとっては、Postgresqlは怖いです。

XEには、表領域に画像データも格納できますよ。児童の顔写真を入れています。
ただ、EXPが簡単にできないので、ちょっと困ってます。
入ったけど、容易に出せないってのは辛いですね。

まあ、セキュリティパッチが出ないということで、一般企業の運用には耐えれないでしょうね。

ただ、ガンガンに5年間つかってきて、ばりばりなSQLを書いてきて思うのことは、
「XEいけるじゃん」です。
SQLの解析ロジックは、ほぼEnterpriseEditionと同じなんじゃないかな?

パラレルとか、色々使えないものあるけど、Triggerのミス不正はないし、Procedure,Packageの問題は一切ないし、
自己責任の中では使えます。

今期待してることは、
Oracle Database Express Edition 12c Release 2 が早くリリースされないかなぁ、ってことです。

今年のクリスマスプレゼントに出るかな?とおもったけど、まだまだ先のようですね。
サンタさん、早く持ってきてください♬

ラリークリスマス

Comments