Views: 590
担当システムのoracle 11gから 12cへのバージョンアップを実施しました。
バージョンアップしてみての感想はいいところよりも悪いところが
目立ちます。
バージョンアップに伴い発生した障害を参考に
注意すべきポイントを挙げてみます
1. 特定の条件を満たすSQLの検索結果が返ってこない(バグ)
2.メモリを消費しがち
(これはOS変更の影響かも)
3.性能劣化はもちろん発生する
最もやばかったのは返ってくるはずの検索結果が
返ってこないというものです。
性能対策を入れてみたら、検索結果が返ってこなくなるバグが仕込まれてしまった
ようです。
それにしてもSQLが期待するとおりに動作しないという致命的なバグが埋め込まれた
状態で出荷するのはいかがなものか。。。
たまたま発生した箇所が便利機能のSQL1本のみだったので、幸いかすり傷で
済みましたが、金の計算のようなミスが許されない機能で発生していたら、
とか考えるとガクブルもんです。
対応策はオラクルのパッチをあてるか隠しパラメータで封印するかの2択。
パッチをあてることの影響がまた怖かったので、パラメータを設定して
対応しました。
オラクルバージョンアップとOSの変更を同時に行ったので
OS変更の影響かもしれませんが
11g・Unixと12c・Windowsでは、後者の方がメモリ消費が激しくなるのは
間違い無いので、メモリは数倍程度に増強することをお勧めします。
具体的に発生した障害としては
ORA-4031をオンライン時間中に発生させてしまい、
システム全体を止めてしまうことがありました。
メモリの設定はデータベース全体にかかわるだけに、
障害発生時にインパクトも大きいです。
最終的にはオラクルのメモリ領域を5倍に拡張し、
それ以降はオラクルのメモリに関しては安定稼働しています。
これはいうまでもなくよく発生します。
オラクルバージョンアップに伴う性能劣化は発生させないように
準備してきたはずなのですが、バージョンアップ以降しばらく
使っていると、性能劣化がそこかしこで発生する。
SQL解析時にオラクル11gのオプティマイザを使用する
オプションがあるのでとりあえずそれでしのぐ対応が流行しています。
この性能劣化ばかりは発生するまでわからないのでモグラたたき
状態です。
良い対処法をご存知の方がいれば教えて欲しいです。