MySQLのibdataファイルを圧縮する方法

Document created by Ryoji_Kadota Employee on Jul 7, 2017Last modified by Ryoji_Kadota Employee on Jul 12, 2017
Version 1Show Document
  • View in full screen mode

文書番号: JTEC002587

製品名: CA API Gateway

バージョン: ALL

OS: ALL

 

◆バックグラウンド
CA API Gatewayは、InnoDBエンジンとともにMySQLを使用して、構成データ、監査、公開されたサービスポリシーを格納します。この実装では、単一のデータベース表スペース・オブジェクト(ibdataファイル)を使用して、データベース内のすべてのバイナリー・データを保管します。MySQLサーバは、このファイルが特定のサイズを超えないように設定されています。データ拡張のためにファイルを増やす必要がありますが、上限のために拡張できない場合は、ibdataファイルを縮小してデータベース内の特定のデータを破棄する必要があります。この記事では、監査レコードがゲートウェイ・データベース内の最大記憶域を消費する傾向があるため、すべての監査データをデータベースから削除するように規定しています。

 

この手順はダウンタイムを招くことに注意してください。

 

◆手順
この手順は、いくつかの小さな手順で構成されています。
     1. アプライアンス間のMySQLトラフィックをブロックする
     2. 既存の監査データの削除
     3. 既存のibdataファイルを縮小する
     4. MySQLトラフィックのブロックを解除する
     5. レプリケーションの再初期化

 

MySQLトラフィックをブロックする
     1. ssgconfigユーザーとしてプライマリ・ゲートウェイ・データベース・ノードにログインします。
     2. オプション3を選択:特権シェル(ルート)を使用します。
     3. セカンダリゲートウェイデータベースノードから発生したすべての接続に対して、MySQLに使用されているポートを閉じます。
注: "SECONDARY-IP"の値は、セカンダリゲートウェイデータベースノードの管理インターフェイスのIPアドレスである必要があります。
iptables -I INPUT -i eth0 -p tcp -m tcp -s SECONDARY-IP -dport 3306 -j REJECT
iptables -I INPUT -i eth0 -p tcp -m tcp -s SECONDARY-IP --dport 3307 -j REJECT

     4. セカンダリゲートウェイデータベースノードにssgconfigユーザーとしてログオンします。
     5. オプション3を選択:特権シェル(ルート)を使用します。
     6. プライマリゲートウェイデータベースノードから発生したすべての接続に対して、MySQLに使用されているポートを閉じます。
注: "PRIMARY-IP"の値は、プライマリゲートウェイデータベースノードの管理インターフェイスのIPアドレスである必要があります。
iptables -I INPUT -i eth0 -p tcp -m tcp -s PRIMARY-IP --dport 3306 -j REJECT
iptables -I INPUT -i eth0 -p tcp -m tcp -s PRIMARY-IP --dport 3307 -j REJECT

既存の監査データの削除
     1. 各ゲートウェイ・データベース・ノードでゲートウェイ・サービスを 停止します。service ssg stop
     2. 既存のプライマリゲートウェイデータベースをバックアップします 。mysqldump --all-databases | gzip> /root/ibdata-full-backup.sql.gz
     3. MySQLプロンプトからプライマリゲートウェイデータベースにアクセスします: mysql ssg
     4. 次のMySQLクエリを実行します。
SET FOREIGN_KEY_CHECKS = 0;
truncate table audit_admin;
optimize table audit_admin;
truncate table audit_detail;
optimize table audit_detail;
truncate table audit_detail_params;
optimize table audit_detail_params;
truncate table audit_main;
optimize table audit_main;
truncate table audit_message;
optimize table audit_message;
truncate table audit_system;
optimize table audit_system;
SET FOREIGN_KEY_CHECKS = 1;
exit
     5. プライマリゲートウェイデータベースをバックアップします 。mysqldump --all-databases | gzip> /root/ibdata-shrink-backup.sql.gz

 

ibdataファイルを縮小する
     1. プライマリゲートウェイ上のMySQLサービスを停止します。: service mysql stop
     2. 既存のibdataファイルを削除します。: rm -rf /var/lib/mysql/ib*
     3. プライマリゲートウェイでMySQLサービスを開始します 。:  service mysql start
     4. プライマリ・ゲートウェイ・データベース・バックアップの内容を抽出します 。: gzip -d /root/ibdata-shrink-backup.sql.gz
     5. プライマリゲートウェイデータベースのバックアップを復元します。:    mysql < /root/ibdata-shrink-backup.sql
     6. プライマリゲートウェイでゲートウェイ サービスを開始します。: service ssg start
     7.セカンダリデータベースノードのibdataファイルの縮小セクションを繰り返し ます。

 

MySQLトラフィックのブロックを解除する
     1. 特権シェルから各ゲートウェイデータベースノードでレプリケーションを停止します 。mysql -e "stop slave"
     2. プライマリゲートウェイデータベースノードでMySQL通信を再度開きます。
iptables -D INPUT -i eth0 -p tcp -m tcp -s SECONDARY-IP --dport 3306 -j REJECT
iptables -D INPUT -i eth0 -p tcp -m tcp -s SECONDARY-IP --dport 3307 -j REJECT
     3. セカンダリゲートウェイデータベースノードでMySQL通信を再度開きます。
iptables -D INPUT -i eth0 -p tcp -m tcp -s PRIMARY-IP --dport 3306 -j REJECT
iptables -D INPUT -i eth0 -p tcp -m tcp -s PRIMARY-IP --dport 3307 -j REJECT

 

レプリケーションの再初期化

     1. セカンダリノードで複製を再初期化します。:/opt/SecureSpan/Appliance/bin/create_slave.sh
注:プライマリゲートウェイデータベースノードの完全修飾ドメイン名、資格情報、およびポートを指定します。プロンプトが表示されたら、プライマリ・ゲートウェイ・データベース・ノードからデータベースをクローニングします。

     2. プライマリノードで複製を再初期化します 。: /opt/SecureSpan/Appliance/bin/create_slave.sh
注:FQDN、資格情報、およびセカンダリゲートウェイデータベースノードのポートを指定します。メッセージが表示されたら、セカンダリゲートウェイデータベースノードからデータベースを複製しないでください。
     3. レプリケーションの初期化が正常に行われたことを確認します。: mysql -e "show slave status\G" | grep ": Yes"

 

注:コンソールまたは端末が示されているとおりに、以下の情報を返す必要があります:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

                                                                                             

この情報は、CA Support Online に掲載されている以下のナレッジベースを翻訳したものです。
TEC0000001057: Shrinking MySQL ibdata file

Attachments

    Outcomes