コンテンツにスキップ

データベースレプリケーションログのパージ

MySQL データベースのバイナリログは時間の経過とともに蓄積し、大量のディスク容量を消費することがあります。デフォルトでは、これらのログは 3 日ごとに自動的にパージ されるよう設定されています。ただし、容量を解放するために手動でパージする必要がある場合は、次の手順に従ってください。

1. データベースのバックアップを手動で作成する

Section titled “1. データベースのバックアップを手動で作成する”

まず、問題が発生した場合に備えて復元ポイントを確保するため、データベースのバックアップを作成します。

  1. porta-onprem-bundle\porta-helpers\porta-database\action ディレクトリに移動します。
    • Porta バージョン 2.3.115 以降では、代わりに porta-onprem-bundle\porta-helpers\porta-database\actions\create-backup.bat になります。
  2. create-backup.bat スクリプトをダブルクリックして実行します。

2. 障害に備えてバックアップをホストマシンにエクスポートする

Section titled “2. 障害に備えてバックアップをホストマシンにエクスポートする”

porta コンテナからホストマシンにファイルをコピーします。これにより、WSL 環境の外にバックアップのローカルコピーを確保できます。

  1. PowerShell を開きます。
  2. 次のコマンドを実行し、以下を置き換えます。
    • filename.zip : ステップ 1 で作成したバックアップの名前に
    • D:\destination\path : バックアップを保存したい場所に
    Terminal window
    docker cp porta:/var/www/storage/app/Porta-Backups/filename.zip D:\destination\path

3. MySQL バイナリログをパージする

Section titled “3. MySQL バイナリログをパージする”

3a. マシン上でレプリケーションを停止する

Section titled “3a. マシン上でレプリケーションを停止する”
  1. porta-onprem-bundle\porta-helpers\porta-database\action ディレクトリに移動します。
    • Porta バージョン 2.3.115 以降では、これは代わりに porta-onprem-bundle\porta-helpers\porta-database\actions になります。
  2. STOP-repl.bat スクリプトをダブルクリックして実行します。

3b. 3 日以上前に作成された MySQL バイナリログを手動でパージする

Section titled “3b. 3 日以上前に作成された MySQL バイナリログを手動でパージする”
  1. porta-onprem-bundle\porta-helpers\porta-run ディレクトリに移動します。
    • Porta バージョン 2.3.115 以降では、これは代わりに porta-onprem-bundle\porta-helpers\porta-run\sysadmin\CLI になります。
  2. access-mysql.bat スクリプトをダブルクリックして実行し、MySQL シェルにアクセスします。
  3. MySQL シェルで、次のコマンドを実行して 3 日より古いログを削除します。
    • コマンド内の日付を 3 日前に編集 し、3 日以上前の すべてのログが含まれるようにすることを忘れないでください。
    • SET sql_log_bin=OFF;
      PURGE BINARY LOGS BEFORE '2025-12-05 00:00:00';
      SET sql_log_bin=ON;
  1. porta-onprem-bundle\porta-helpers\porta-run ディレクトリに移動します。
    • Porta バージョン 2.3.115 以降では、これは代わりに porta-onprem-bundle\porta-helpers\porta-run\sysadmin\CLI になります。
  2. access-mysql.bat スクリプトをダブルクリックして実行し、MySQL シェルにアクセスします。
  3. MySQL シェルで SET PERSIST binlog_expire_logs_seconds=259200; コマンドを実行します。

5. マシン上でレプリケーションを開始する

Section titled “5. マシン上でレプリケーションを開始する”
  1. porta-onprem-bundle\porta-helpers\porta-database\action ディレクトリに移動します。
    • Porta バージョン 2.3.115 以降では、これは代わりに porta-onprem-bundle\porta-helpers\porta-database\actions になります。
  2. START-repl.bat スクリプトをダブルクリックして実行します。