Question

I'm using mysql 5.7 (or rather percona 5.7)

Is it possible to backup only the innodb tables (easily, not to specify each table one by one because I have a lot of tables) with xtrabackup? and not take into account myisam tables that are read-only?

If I remember right, if you have myisam tables it will lock the whole DB thus breaking the application during the backup procedure.

Was it helpful?

Solution

Xtrabackup website says something different:

Percona XtraBackup can back up the following storage engines by briefly pausing writes at the end of the backup

This information used to be in the documentation, probably better detailed, but nowadays only this enigmatic claim remains. Probably you are worrying too much, but I will answer the rest of the question anyway.

There doesn't seem to be any way to easily exclude non-InnoDB tables from the backup. What you can do is to manually exclude those tables with --table-exclude If you have entire databases dedicated to non-InnoDB tables, --databases-exclude should be easier to use.

You can dynamically compose the list of those tables with this query:

SELECT GROUP_CONCAT(CONCAT(TABLE_SCHEMA, '.', TABLE_NAME) SEPARATOR ',')
    FROM information_schema.TABLES
    WHERE
        ENGINE <> 'InnoDB'
        AND ENGINE IS NOT NULL
        AND TABLE_SCHEMA NOT IN (
            'mysql',
            'performance_schema',
            'information_schema',
            'sys'
        );
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top