MaxGaugeの文字コード確認/変更(手動での変更)

注釈

SQLを実行してMaxGaugeサーバ側の文字コードを確認/変更する方法を紹介します。

デフォルトのMaxGaugeの文字コードは、監視対象データベースのキャラクタセットが AL32UTF8UTF8 に対応します。 AL32UTF8UTF8 以外の監視対象データベース環境で、SQL文に日本語を含む場合、MaxGaugeで表示する際にSQL文が文字化けするため、 MaxGaugeの文字コードを変更する必要があります。

ORALCEのキャラクタセットに対応するMaxGaugeの文字コード表

キャラクタセット MaxGaugeに設定する文字コード
AL32UTF8 UTF-8
UTF8 UTF-8
JA16SJIS MS932
JA16SJISTILDE MS932
JA16EUC EUCJP
JA16EUCTILDE EUCJP

MaxGaugeサーバの文字コードの確認/変更

  1. MaxGaugeサーバのPostgreSQLにログインします。

    -- postres ユーザのパスワードはデフォルトで postgres
    psql -U postgres -h localhost -d MFO
    ユーザ postgres のパスワード: <パスワードを入力>
    
  2. PostgreSQLにログイン後、下記のSQLを実行して現在の設定を確認します。

    -- リアルタイムモニタの言語設定を確認
    SELECT 'RealTime Monitor' AS "maxgauge", i.db_id, i.instance_name, e.value AS "charset"
    FROM apm_web_env e, apm_db_info i
    WHERE e.env_key = 'CHARSET' AND i.db_id = e.db_id
    order by i.db_id;
    
    -- パフォーマンスアナライザの言語設定を確認
    SELECT 'Performance Analyzer' AS "maxgauge",db_id, instance_name, char_set AS "charset"  FROM apm_db_info
    order by db_id ;
    
  3. 対象インスタンス名、変更する文字コードを変数に代入して、文字コードを変更するSQLを実行します。

    -- /////////////////////////////////////////////
    -- 変数にインスタンス名と
    -- 変更する文字コード名を代入します
    -- /////////////////////////////////////////////
    
    -- インスタンス名を代入します:手順2で表示された「instance_name」と一致するインスタンス名を指定してください。
    \set mxg_instname '<対象インスタンス名>'
    -- 文字コード名を入力します:「ORALCEのキャラクタセットに対応するMaxGaugeの文字コード表」の文字コードを指定してください。
    \set mxg_charset '<変更する文字コード>'
    
    -- ***** 実行例 *****
    --  インスタンス名: ORADB
    --  文字コード:  MS932(DBのキャラクタセットJA16SJISTILDE)
    --
    -- \set mxg_instname 'ORADB'
    -- \set mxg_charset 'MS932'
    -- ******************
    
    
    BEGIN;
    
    -- リアルタイムモニタモニタの文字コードを変更する
     UPDATE apm_web_env set value = :'mxg_charset'
     WHERE
     env_key = 'CHARSET'
     AND
     db_id = (
      SELECT db_id FROM apm_db_info
      WHERE instance_name = :'mxg_instname');
    
    -- パフォーマンスアナライザの文字コードを変更
     UPDATE apm_db_info set char_set = :'mxg_charset'
     WHERE instance_name = :'mxg_instname';
    
    -- 変更後の結果を確認するSQL
     SELECT 'RealTime Monitor' AS "maxgauge", i.db_id, i.instance_name, e.value AS "charset"
     FROM apm_web_env e, apm_db_info i
     WHERE e.env_key = 'CHARSET' AND i.db_id = e.db_id AND i.instance_name = :'mxg_instname'
     UNION
     SELECT 'Performance Analyzer' AS "maxgauge",db_id, instance_name, char_set AS "charset"
     FROM apm_db_info
     where  instance_name = :'mxg_instname' order by 1 ;
    
    -- 正しく変更されたことを確認して、COMMITで変更を確定
    COMMIT;
    
    -- psql を終了します。
    \q
    
  4. MaxGaugeサーバの mfo-platformjs , mfo-dg-master , mfo-dg-slave1 サービスを再起動して設定を反映させます。

    Windowsの場合 https://support.ex-em.co.jp/support/mfo53/ope_mxgserver_win/

    Linux/Unixの場合 https://support.ex-em.co.jp/support/mfo53/ope_mxgserver_linux/

    注釈

    文字コード変更前に収集したSQL文は、文字化けを解消することは出来ませんのでご留意ください。