~akopytov/percona-xtrabackup/support-gtid-2.0

Viewing all changes in revision 533.

  • Committer: Alexey Kopytov
  • Date: 2013-04-22 10:58:30 UTC
  • Revision ID: akopytov@gmail.com-20130422105830-9xguy1eijf62ckfa
Implementation of
https://blueprints.launchpad.net/percona-xtrabackup/+spec/support-separate-undo-tablespace

In order to backup separate undo tablespaces they must be added in the
fil_system list of tablespaces on the backup stage. This is implemented
in srv_undo_tablespaces_init(), which needs some modifications for
XtraBackup. First, create_new_db is always FALSE in XtraBackup. We also
need another argument to check if we can read the number of currently
used undo tablespaces from the trx header. We can't do that on the
backup stage, so we just do what srv_undo_tablespaces_init() would do in
'create_new_db == TRUE' mode, i.e. just assume the number of available
undo tablespaces is the number of used tablespaces.

We also have to restore undo tablespaces on --copy-back (unlike
e.g. separate doublewrite tablespace in PS). The reasons are that:

1) the server would refuse to start if the number of available undo
tablespaces is less than the number of configured ones.

2) we can prepare the backup with --redo-only (i.e. let the server
rollback uncommitted transactions)

There were also some tweaks to the test suite required to create a test
case. Previously my.cnf was only used by xtrabackup, but not the server
itself (one had to pass arguments to start_server and then add the same
arguments to my.cnf for xtrabackup to "see" them). Now my.cnf is used by
both server and xtrabackup, and it is possible to add custom entries to
my.cnf using the MYSQLD_EXTRA_MY_CNF_OPTS variable.

This patch also fixes bug #1169971: "Lost InnoDB messages in
xtrabackup_56".

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: