技術ブログ
技術ブログ
目次
渡部です。 db tech showcase Tokyo 2019で、「SE-RACが廃止されても、まだまだ使える!3rd Party製品やカスタマイズで実現するOracle Standard Edition 2の強化と活用」というタイトルで、 Oracle Database Standard Edition 2を強化する3rd Party製品やカスタマイズの方法についてお話させていただきました。
会場に足を運んでいただいた皆様、ありがとうございました。
とはいえ、遠隔地にお住まいの方など、現地での参加が難しい方もいらっしゃると思いますので、 セッションで使用したスライドから、いくつかを抜粋しながら簡単に内容をご紹介させていただきます。
Oracle Database Standard Editionとは、一言でいうと、 「機能および性能が制限されているが、大幅に価格が安いOracle Database」です。
従来は Oracle Database Standard Edition、 Oracle Database Standard Edition Oneが存在しましたが、 現在は Oracle Database Standard Edition 2のみが販売されています。
具体的なOracle Database Standard Edition 2の制限は以下の通りです。 Oracle Database Enterprise Editionと比べると、性能面(CPU)および機能面で制限が課せられています。
Oracle Database Standard Edition 2は Oracle Database Enterprise Editionに比べると圧倒的に低コストです。
上記スライドは、Oracle Database Standard Edition 2と Oracle Database Enterprise Editionをコスト面で比較したもので、約1/11 という数字がでています。 参考のため、EDB Postgres Enterpriseとも比較していますが、Oracle Database Standard Edition 2の方が低コストです。
コスト比較における条件は以下の通りです。
すでにご存知な方もいらっしゃるでしょうが、近年 Oracle Database Standard Editionの位置づけを変えるような製品ラインアップの変更や、 機能の廃止・非推奨扱いなどが発表されています。
これらについて以下のスライドを用いて説明しました。
繰り返しになりますが、 Oracle Database Standard Editionとは、 「機能および性能が制限されているが、大幅に価格が安いOracle Database」です。
逆に言えば、 機能面の不足をうまく補完することができれば、低コストでOracle Databaseを活用できる ことになります。 もちろん、Oracle Database Enterprise Editionが持つすべての機能を完全に代替できるわけではありませんが、 状況によってはコアとなる中心機能が代替できれば十分なケースも多いはずです。
弊社では、以下の代替ソリューションを提案しています。
これらの代替ソリューションを使用することで、Oracle Database Enterprise EditionおよびEE専用の有償オプションおよびパックを使用した場合と比べて、 大幅にコストを削減することができます。
弊社の試算ですが、コストを約1/19に削減できます。
コスト比較における条件は以下の通りです。
すでにご説明した通り、Oracle Database 19c以降はSE-RAC(Standared Edition RAC)が廃止されます。
SE-RAC(Standared Edition RAC)は、EEの有償オプションであるOracle Real Application Clusters (Oracle RAC) をStandard Editionで、かつ、別途有償オプションを購入する必要なく利用できたため、高可用性を求めるOracle Database Standared Editionユーザーにとても人気がありました。(詳細は → https://cosol.jp/techdb/2019/04/oracle-database-19c-se2-rac-will-no-longer-be-supported.html)
Oracle RACは非常に高度で優れたソリューションであり、これを完全に代替するソリューションを用意することは現実的にほぼ不可能ですが、高可用性に限定すれば、いわゆるActive-Standby型HAクラスタを代替とできます。
ノードの計画停止、計画外停止が発生した場合、Standby側のノードでデータベースのサービス継続を行うことで、高可用性を実現します。
クラスタを実装するにはクラスタソフトウェアが必要ですが、 Oracle Grid Infrastructure(Oracle GI)を使用できます。 Oracle Grid Infrastructureは無償使用可能で、 オラクル製品をクラスタ環境内で使用していればサポートを受けることもできます。
また、待機系サーバでOracle Databaseを使用する場合、いわゆる「10日ルール」が適用され、 待機サーバーでのOracle製品稼働日数が年間10日以内であれば、 待機サーバーに対してはライセンスが不要です。
19c新機能 SEHA / GIベース シングルHA構成 – SE2-RAC廃止対応
拠点障害対策のため、遠隔地に待機系データベースを作成するために、 Oracle Database Enterprise EditionではOracle Data Guardを使用します。 Oracle Data Guardは、Oracle Database Standard Editionでは使用できませんが、 Dbvisit Standbyを代替とできます。
Dbvisit Standbyは、いわゆる「基本スタンバイ」を自動化するソリューションで、一部の制限がありますが、Oracle Data Guardに相当する機能を実現できます。
Oracle Data GuardとDbvisit Standbyを比較したのが以下の表です。
Dbvisit Standbyを用いた場合、障害発生時における更新処理のロストが発生することに注意してください。 とはいえ、アーカイブログファイルの出力間隔/リモートコピー間隔を短くすることでロスト量を軽減することが可能です。
一部のデータの複製や、データベース移行の停止時間の極小化には、論理レプリケーション(ロジカル レプリケーション)製品を使用するのが一般的です。 オラクル製品として、Oracle GoldenGateがありますが一般に高価なため、弊社では以下の代替製品をおススメするケースが多いです。
論理レプリケーションは柔軟性があって便利なソフトウェアですが、その動作の仕組みからくる多くの落とし穴があります。 製品に習熟した会社に相談しながら、製品選定および導入を進めることを強くお勧めします。
意外とご存知ない方が多いのですが、Oracle DatabaseではDiagnostic Packを購入しないと、 メール通知ができません。
表領域の使用量がしきい値を超えた、セッション数がしきい値を越えたなどのケースで、 運用担当者に自動的にメールを送信したい状況はよくありますが、 Diagnostic Packを購入しないとこれができないのです。 これは、クリティカルなサーバの運用を考えると、かなり致命的な制限です。
この用途のためだけに、Diagnostic Packを購入するのはなかなか大変ですから、 何らかの3rd Party監視ツール/OSS監視ツールを導入するのが一般的です。 弊社のリモート監視サービスではOracle監視用Zabbixツールキットを独自に開発し導入しています。
Oracle Enteprise Manager Cloud Controlを使用すると、 管理Webコンソールのグラフィカルな画面でOracle Databaseのパフォーマンス分析を行えます。
オラクル純正の管理ソフトウェアということもあり、非常に多くのパフォーマンス分析機能が実装されています。 しかし、一刻一秒を争うトラブルの現場を考えると、機能の多さよりも重要な機能がより使いやすい形で整理されていることの方が何倍も役に立ちます。このため、実は弊社では、Diagnostic Pack、Tuning Packを持つ顧客に対しても3rd Partyのパフォーマンス分析製品を推奨しています。それぐらい、使い勝手に差があるということです。
よくおススメしている製品は以下の2つです。
以下にMaxGaugeの画面を示します。個人的な感想ですが、画面設計がこなれていて、とても使いやすいです。
各種レポートをExcel形式で出力することも可能です。
最近はハードウェアの高性能化、Oracle Databaseの自動化などの影響で、SQLチューニングが必要となる状況は減っています。 しかし、SQLチューニングをせざるをえない状況は少なからず発生します。
しかし、手動でSQLチューニングをするには、高いスキルが必要です。そもそも、仕事を依頼可能な高いスキルを持ったOracle Databaseエンジニアを見つけることができるか?という問題もあります。( ここでご説明した通り、エンジニア不足は深刻な問題です・・・)
これらを踏まえるとツールでSQLチューニングをすることが有用という判断に至りますが、コストが問題となってきます。 また、オラクル純正のOracle Tuning Packは、そもそもEnterprise Editionでしか使用できません。
最近弊社でオススメしている製品は、クエストソフトウェア社のToad for Oracleです。 SQL Optimizer for Oracleと呼ばれる機能があり、自動的にSQLチューニングを実行できます。
規定などの関係でデータの暗号化が求められるケースが増えてきています。 しかし、オラクル純正の有償オプションOracle Advanced SecurityはOracle Database Enterprise Editionでしか使用できません。
Oracle Database Standard Editionで透過型データ暗号化を実現したい場合にオススメしている製品は D'amo - ペンタセキュリティシステムズ株式会社 です。
D'amoは、ビューと独自のストアドスクリプトを使用した 若干独特なアーキテクチャで透過型暗号化を実現します。動作イメージは以下のスライドをご覧ください。
Oracle Advanced Security Optionには、データ伏字化の機能もあります。
Oracle Database Standard Editionでデータ伏字化を実現したい場合にオススメしている製品は Aegis Wall - NHN JAPAN株式会社 です。
特権ユーザー管理は、大きな権限を持つ管理者ユーザーによる不正行為を防止する仕組みです。 内部犯行を防ぐためには、特権ユーザー管理が重要です。
犯人は外部の業者から派遣されて同社のデータベースシステム管理を担当し、顧客情報にアクセスする権限があった。
Oracle EEではDatabase Vaultを導入することで上記問題の多くを解決可能ですが、 Oracle SE2ではDatabase Vaultを使用できません。
Oracle SE2で特権ユーザー管理を行いたい場合にオススメしている製品は、さきほどもご紹介した Aegis Wall - NHN JAPAN株式会社 です。
発表資料は以下のURLからダウンロードできます。実際の発表時とほとんど同じですが、若干修正を加えています。
[補足] コーソルの取扱いソフトウェア製品およびサービスについて