技術情報

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を使用することをお勧めします。