Matomoのデータをバックアップ、リストアするには?
Matomoのデータは以下のコマンドで簡単にバックアップ・リストアできます。
MySQL/MariaDBデータベースをファイルにエクスポートする
phpMyAdmin やmysqldumpなどのツールを使用します。
MySQLデータベースの完全なコピーを作成する最も簡単な方法は、mysqldumpコマンドをこのパラメータのセットで実行することです:
$ time mysqldump --extended-insert --no-autocommit --quick --single-transaction
MATOMO_DATABASE_NAME -uMATOMO_DATABASE_USERNAME -p > matomo_backup_database.sql
バックアップサーバーに送る前に、このバックアップを圧縮することができます:
$ tar zcf matomo-mysql-database-$(date +%Y-%m-%d-%H.%M.%S).sql.tar.gz matomo_backup_database.sql
バックアップしたデータベースのダンプをリストアする
phpmyadminを使用して、以前に作成したファイルをインポートするか、以下のコマンドを実行してDBバックアップを復元することができます:
$ time mysql MATOMO_DATABASE_NAME -uMATOMO_DATABASE_USERNAME -p < matomo_backup_database.sql
これでデータベースに十数個のMatomoテーブルが作成され、すべてのデータが復元されるはずです。
注: 「テスト 」インスタンスでバックアップをリストアする場合、すべての電子メール通知を無効にすることに興味があるかもしれません。
上級者向け:Matomoがライター/リーダー構成でセットアップされている場合(DBレプリケーション)
Matomo MySQLデータベースをバックアップするには、いくつかの方法があります。最適な方法は、データベースのセットアップ方法によって異なります。推奨される設定は、未使用のスレーブまたはリードレプリカ(MySQLデータベースがマスター-スレーブまたはマスター-マスターを使用して複製されている場合)にフルバックアップを作成することです。参考までに、5GBのデータベースをバックアップするのにかかる時間は~2分、リストアするのにかかる時間は~12分です。
複数のDBノード:DBスレーブ/リードレプリカでmysqldumpを使用する
MatomoはMySQLデータベースをレプリケート(マスター-スレーブまたはマスター-マスターレプリケーション)して実行することを推奨します。MySQLのバックアップは、マスターデータベースのパフォーマンスに影響を与えないように、データベースのリードレプリカ(スレーブ)で行います。スレーブ/リードレプリカで使用する mysqldumpコマンドは、次のセクションで説明するものと同じです。
単一DBノードで大規模なデータベースを使用する場合は、Percona XtraBackupを使用してください。
単一のデータベースサーバーを使用し、Matomoで多くのデータ(月間1M以上のアクション)を追跡している場合、またはデータベースが10Gbを超える場合、mysqldumpを使用することは、システム全体のパフォーマンスに悪影響を及ぼす可能性があるため、適切な解決策ではないかもしれません。
このような場合は、代わりにオープンソースツールのPerconaXtraBackupを使用することをお勧めします。