OSSデータベース取り取り時報

第49回 MySQL Notifierのご紹介 ,PostgreSQL関連イベント報告と新バージョン続報

この記事を読むのに必要な時間:およそ 4.5 分

この連載では,OSSコンソーシアム データベース部会のメンバーが,さまざまなオープンソースデータベースの毎月の出来事をお伝えしています。MySQLはMySQL Notifierのマイナーバージョンアップを除いて大きな製品リリースはありませんでした。PostgreSQLではイベントEDB Postgres Vision 2019 がありました。

また,来月になりますが,10月10日に東京 渋谷で開催される「オープンソースカンファレンス2019 .Enterprise」において特別枠を用意していただき,OSSコンソーシアムとオープンソースビジネス推進協議会(OBCI)の共同企画として,⁠OSSデータベース比較セミナー』⁠仮称)を実施する計画です。

  • MySQL
  • PostgreSQL
  • MongoDB
  • DB専門家ではないアプリケーション視点からの意見

を,まとめて学べて考える機会にしたいと,ただいま鋭意準備中です。まだ企画自体を調整中なので本当はフライング気味ですが,この連載をお読みいただいている皆さまにはぜひご参加いただいきたいのでお知らせしてしまいます。ご期待ください。

[MySQL]2019年8月の主な出来事

2019年8月はMySQLの製品アップデートはMySQL Notifier 1.1.8のみでした。このバージョンでMySQL 8.0への接続が可能となっています。日本オラクルのOracle Cloud関連イベント「Modern Cloud Days」においてMySQL Cloud Serviceの最新動向が紹介されました。また海外イベントになりますが,8月17, 18日に台北で開催されたオープンソースイベント「COSCUP」にて,MySQL事例セッションとして日本からLINEとスクウェア・エニックスのエンジニアの方々が登壇され,現地でも大きな反響を得ていました。

MySQL Notifierのご紹介

MySQL NoftifierはWindowsのシステムトレイのアイコンからMySQLサーバーの起動停止や動作状況の確認ができる小さなユーティリティーです。MySQL Noftifierの歴史は意外に古く,2012年にリリースされた1.0.3が最初のバージョンです。MySQL NotifierはMySQLサーバーのWindows用インストーラから他のツールと一緒にインストールすることや,単独のインストーラを利用することも可能です。ちなみにMySQL Notifier単独のインストーラはインストーラを含めても2.5MBしかないという非常に小さなプログラムになっています。

MySQL NotifierはローカルのMySQLサーバーだけではなく,Windows Management Instrumentation ⁠WMI)⁠ を使用してリモートホストのMySQLサーバーも管理できます。セットアップには管理する側,される側それぞれで設定が必要ですのでリファレンスマニュアルを参照してください。

[PostgreSQL]2019年8月の主な出来事

PostgreSQL関連は月初のイベント2つのレポートをお届けします。

「EDB Postgres Vision Tokyo 2019」レポート

「EDB Postgres Vision Tokyo 2019」は,PostgreSQLをベースとして機能やツールを拡張した,EDB Postgresのカンファレンスです。OSSデータベースがエンタープライズ用途に使われる機会が増えていることを表すように,事前エントリで満員となるセッションが多数ありました。昨年と比べての印象としては,異種DBMSからの移行話が数多く発表されていたことと,各社の説明内容や事例紹介の完成度が上がって説得力が高まったと感じました。

ここでは,この連載でも何回か紹介しているPostgreSQLエンタープライズ・コンソーシアム(PGECons)で一緒に活動しているメンバーのセッションをいくつか紹介します。

EDB Postgres Visionの様子(左上:セミナー会場全景,右上:アシスト高瀬さん,左下:富士通SSL小山田さん,右下:NECソリューションイノベータ黒岩さん)

EDB Postgres Visionの様子(左上:セミナー会場全景,右上:アシスト高瀬さん,左下:富士通SSL小山田さん,右下:NECソリューションイノベータ黒岩さん)

「なぜ,EDB Postgresは選ばれるのか ~採用傾向と最新事例から紐解く適用のポイント~」,高瀬洋子さん(株式会社アシスト)

筆者流にタイトルを勝手に付け替えさせていただくとすると,⁠“どのように⁠EDB Postgresが選ばれているか」でしょうか。煙にまく技術論は持ち込まず,眉唾な誇張表現はせず,率直に事実を示すことが最大の武器だと感じられた,納得感がある内容でした。内容をいくつかピックアップします。

  • 2015~2016年にかけてはプライベートクラウドでの採用がグンと増えた。そして2017~2018年にはパブリッククラウドでの採用が一気に増えた。急伸の理由はライセンス形態がプライベートクラウドやパブリッククラウドでの仮想環境で利用しやすいことが大きい。
  • 他のDBMSからの移行ケースが多い。移行ケースの過半があるDBMSのEnterprise Editionからの移行。コストメリットが大きいことが移行の最大の動機。それに加えて,互換性が高く移行がちゃんと実現できていることも示している。
  • CPUは4コアのライセンスが大半。メニコアの実績はまだ多くはないが,事例は出始めている。
  • EDBはさまざまな可用性構成が可能だが,PostgreSQL標準のストリーミングレプリケーションを使った構成が最多。EDBが提供する死活監視機能である,EDB Failover Managerという機能もある。

その後の事例の紹介については本記事では詳細は省略しますが,大企業の標準DBMS化,IoT案件での大量トラフィック,クラウドサービス化に際して移行した複数の例など,事例のバリエーションも増えつつあるようです。

「DBMSの課題に振り回されないためのEDB Postgres活用術」,小山田政紀さん(株式会社富士通ソーシアルサイエンスラボラトリ)

このセッションは全部丸ごと技術の話です。テーマは「解決しないといけない厄介な課題にどう対応するか」⁠取り上げられた課題は,主には次の2点です。

  1. DBサーバのバージョンアップ
  2. 性能問題への対応

今回の小山田さんが示した方法は,EDB PostgresだけでなくOSSのPostgreSQLにも共通するものも含まれています。

DBサーバのバージョンアップのテクニック

DBMSのバージョンアップは,昔も今も厄介な課題のひとつです。これはOSSか商用製品を問いません。なかなか厄介なので安定稼働しているバージョンを長く使い続けるケースも多くあります。しかし,いくら安定稼働しているとしても,古いバージョンを未来永劫使い続けるわけにはいかないのは,商用ライセンス製品でもOSSでも同じことです。

バージョンアップの方法として3種類(+1種類)が示されました。

  • (a)データをダンプしてリストア
  • (b)pg_upgradeを使う
  • (c)ストリーミングレプリケーションとpg_upgradeの併用

方法を選択する際には,元DB(古い方のDB)のバージョンによっては,使えない方法があることに注意が必要です。また,⁠d)⁠ ロジカルレプリケーション(postgreSQL 10以降)を使う方法もありますが,バージョン10自体がかなり新しいバージョンで,バージョン10からさらにバージョンアップするケースはまだ少ないでしょう。

性能問題への対応方法

性能問題もDBにまつわる古くて新しい大問題です。エンタープライズITのカスタムアプリケーションで直面するトラブルでは,大半がDBの性能問題ではないかと思うほどです(あくまで筆者の私見ですが)⁠また,⁠目標に対して2割ほど悪い」といった穏やかなものならまだマシなのですが,⁠何10倍も悪い」といったなんとも豪気な大トラブルが起こるのもDBの性能トラブルの特徴でしょう。

小山田さんは,対処方法を3つのパターンに分類して示されました。いずれも,よくある,または,よく聞くパターンだと思います。

(a)想定した性能目標(性能要件)の未達成
道具=CPU使用率測定:その結果iowaitが高ければディスクIO待ちがボトルネックになっているので,データ配置を見直すなどを検討。
道具=DRITA ⁠EDBの拡張)⁠PostgreSQLが保持している稼働状況のデータから,待機イベントがどこで発生しているのかを把握することが可能。このDRITA ⁠Dynamic Runtime Instrumentation Tools Architecture)は,OracleのStatspackのようなもの。
(b) 不定期に性能悪化が発生
道具= pg_stat_acitivity。統計情報を収集。
道具= Wait State拡張モジュール ⁠EDBの拡張)⁠
(c) 特定のSQLの遅延
道具= Index Advisor ⁠EDBの拡張)⁠どういうインデックスを張ったらいいかをアドバイス。
道具= Optimizer Hints ⁠EDBの拡張)⁠ヒントコメントを書くことで実行計画を明示的に制御。

あたりまえですが,トラブルが起こる前に入念な準備をしておくことは現実的には難しいでしょう。だからこそ,自分が使いこなせる道具をある程度の数は持っていないと,トラブルと戦いようがありません。DB分野に限ったことではありませんが,そのことを改めて感じます。

ところで,小山田さんの発表は,短時間の枠に納めるように丁寧に発表内容を選択されていましたが,もっとたくさんお話ししたいことがありそうな雰囲気でした。実は事前に用意したコンテンツは倍ほどもあったらしいのです。OSS界隈で活躍するエンジニアは,自らの知見を惜しみなく公表されますが,この特徴をよく示す例でしょう。今世紀のIT企業とITエンジニアはこういう姿勢でありたいと思います。

「初めてでもできた!EDB Postgresでかんたんマイグレーション」,黒岩絵美子さん(NECソリューションイノベータ株式会社)

「PostgreSQL初心者による⁠やってみた⁠系のセッション」と,紹介するのはちょっと雑すぎるかもしれませんが,間違いではないでしょう。既存のアプリケーションを他のDBMSからEDB Postgresに移行するプロジェクトを,初心者が自力で,アドバイスを受けながらも完遂した体験談です。移行可否の結論としては,⁠完全に自動移行はできなかったものの,かなりの部分がツールを使って移行することができた」とのこと。この結果については,率直に書いてしまえば「まぁそうでしょうね」というものではあります。けれど,このセッションの価値は別のところにもあります。

PostgreSQLに限らず,伸び盛りの分野や製品では,新しく取り組み始める/始めたいと思っている人材を増やすことが,常に熱い議論になります。PostgreSQL関連では,ベテランが高度な難しい解説をする場は,ほどほどにあると思いますが,初心者向けのコンテンツと機会がまだまだ不足しているように感じられます。今回の黒岩さんのセッションは,新しい仲間たちの背中を押してくれる良いきっかけになるのではないかと思います。この業界にいる私たちとしても,こういう発表をしてもらう機会をもっと増やしていくべきでしょう。

著者プロフィール

梶山隆輔

MySQL Sales Consulting Senior Manager。

日本オラクル(株)において,MySQLのお客様環境への導入支援や製品の技術解説を担当するセールスコンサルタントチームのアジア太平洋地域リーダー。多国籍なMySQL部門にて,オーストラリア,インド,台湾などに在籍するチームメンバーを束ね,アジア太平洋地域の25以上の国や地域でのMySQL普及やビジネスの拡大をミッションとする。


溝口則行(みぞぐちのりゆき)

TIS株式会社

OSSコンソーシアム副会長,オープンソースビジネス推進協議会(OBCI)副理事長。その他,PostgreSQLエンタープライズ・コンソーシアム(PGECons),日本OSS推進フォーラムなどにも少しずつ関与。勤務先メンバに,PostgreSQL,Zabbix,Ansibleやコンテナ技術などに強みのある癖のある芸人を抱え,タレントマネージャ業が中心になりつつある。