lp:~akopytov/percona-xtrabackup/support-remote-tablespaces-2.0

Created by Alexey Kopytov on 2013-04-23 and last modified on 2013-04-23
Get this branch:
bzr branch lp:~akopytov/percona-xtrabackup/support-remote-tablespaces-2.0
Only Alexey Kopytov can upload to this branch. If you are Alexey Kopytov please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

535. By Alexey Kopytov on 2013-04-23

Implementation of
https://blueprints.launchpad.net/percona-xtrabackup/+spec/support-remote-tablespaces

On backup, copy both .isl and .ibd files for remote tablespaces. Remote
.ibd files are copied to the corresponding database directory under the
backup root directory as if there were local tablespaces.

On prepare, ignore .isl files and possible inconsistencies of tablespace
locations with the data dictionary, i.e. handle all tablespaces as local
ones.

On restore, innobackupex checks if there's an .isl file corresponding to
the .ibd file being copied. If so, it uses the original remote
tablespace location instead of the default location under the data
directory.

Changes in the ib_part_* tests are necessery to support 2 additional SYS_*
tables in the data dictionary (SYS_TABLESPACES and SYS_DATAFILES). To
avoid dependency on the number of SYS_* tables, they are now excluded
from the 'xtrabackup --stats' output, i.e. only user tables are counted.

534. By Alexey Kopytov on 2013-04-22

Bug #1169169: xtrabackup_56 crashes when preparing a backup with
              partitioned tables

The problem was that xtrabackup_56 used the implementation of
innobase_convert_identifier() provided by the InnoDB code, rather than a
lightweight replacement provided in xtrabackup.cc for other build
flavors. The full-blown implementation may call explain_filename() which
requires MySQL localization subsystem to be initialized (which is
normally initialized in init_common_variables() on server startup). In
particular, it crashed when explain_filename() was called on a
partitioned table.

Since xtrabackup_56 links with ha_innodb.cc containing the full-blown
implementation of innobase_convert_identifier(), the bug was fixed by
replicating the lightweight version used by xtrabackup/xtrabackup_55 in
innodb56.patch.

An alternative approach would be to mimic localization subsystem
initialization performed in mysqld.cc, but that pulls way too many
dependencies.

This revision also fixes bug #1170340 "require_partitioning in
test/inc/ib_part.sh does not work with 5.6" (which was the reason why
bug #1169169 have not been caught by the test suite).

533. By Alexey Kopytov on 2013-04-22

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".

528. By <email address hidden> on 2013-04-04

Merge lp:~ignacio-nin/percona-xtrabackup/2.0-rpm-dummy-packages

527. By <email address hidden> on 2013-04-04

Merge lp:~percona-core/percona-xtrabackup/release-2.0.6

526. By <email address hidden> on 2013-04-03

Merge lp:~akopytov/percona-xtrabackup/bug1162765-2.0

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:percona-xtrabackup/2.1
This branch contains Public information 
Everyone can see this information.

Subscribers