~percona-core/percona-xtrabackup/2.0

« back to all changes in this revision

Viewing changes to doc/source/innobackupex/restoring_individual_tables_ibk.rst

  • Committer: Hrvoje Matijakovic
  • Date: 2013-11-14 12:31:04 UTC
  • mfrom: (587.2.1 2.0)
  • Revision ID: hrvoje.matijakovic@percona.com-20131114123104-j8tlm7i9ba4oscn9
Bugs fixed: Bug #1246955, Bug #1222818, Bug #1230311 and Bug #1183322

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
.. _imp_exp_ibk:
2
2
 
3
 
===========================================
4
 
 Importing and Exporting Individual Tables
5
 
===========================================
6
 
 
7
 
In standard |InnoDB|, it is not normally possible to copy tables between servers by copying the files, even with :term:`innodb_file_per_table` enabled. But |XtraBackup| allows to migrate individual table from any |InnoDB| database to |Percona Server| with |XtraDB|.
8
 
 
9
 
The table is required to be created with the option :term:`innodb_file_per_table` enabled in the server, as exporting is only possible when table is stored in its own table space.
10
 
 
11
 
The importing server (at the moment it only supported by |Percona Server|) should have :term:`innodb_file_per_table` and :term:`innodb_expand_import` options enabled.
 
3
=============================
 
4
 Restoring Individual Tables
 
5
=============================
 
6
 
 
7
In server versions prior to 5.6, it is not possible to copy tables between servers by copying the files, even with :term:`innodb_file_per_table`. However, with the |Percona XtraBackup|, you can export individual tables from any |InnoDB| database, and import them into |Percona Server| with |XtraDB| or |MySQL| 5.6 (The source doesn't have to be |XtraDB| or or |MySQL| 5.6, but the destination does). This only works on individual :term:`.ibd` files, and cannot export a table that is not contained in its own :term:`.ibd` file.
 
8
 
 
9
.. note:: 
 
10
 
 
11
   If you're running |Percona Server| version older than 5.5.10-20.1, variable `innodb_expand_import <http://www.percona.com/doc/percona-server/5.5/management/innodb_expand_import.html#innodb_expand_import>`_ should be used instead of `innodb_import_table_from_xtrabackup <http://www.percona.com/doc/percona-server/5.5/management/innodb_expand_import.html#innodb_import_table_from_xtrabackup>`_.
12
12
 
13
13
Exporting tables
14
14
================
25
25
  `./mydatabase/mytable.exp` (1 indexes)
26
26
  ..
27
27
 
28
 
Each :term:`.exp` file will be used for importing that table.
 
28
Now you should see a :term:`.exp` file in the target directory: ::
 
29
 
 
30
  $ find /data/backups/mysql/ -name export_test.*
 
31
  /data/backups/mysql/test/export_test.exp
 
32
  /data/backups/mysql/test/export_test.ibd
 
33
  /data/backups/mysql/test/export_test.cfg
 
34
 
 
35
These three files are all you need to import the table into a server running |Percona Server| with |XtraDB| or |MySQL| 5.6.
 
36
 
 
37
.. note:: 
 
38
 
 
39
  |MySQL| uses ``.cfg`` file which contains |InnoDB| dictionary dump in special format. This format is different from the ``.exp`` one which is used in |XtraDB| for the same purpose. Strictly speaking, a ``.cfg`` file is **not** required to import a tablespace to |MySQL| 5.6 or |Percona Server| 5.6. A tablespace will be imported successfully even if it is from another server, but |InnoDB| will do schema validation if the corresponding ``.cfg`` file is present in the same directory.
 
40
 
 
41
Each :term:`.exp` (or ``.cfg``)  file will be used for importing that table.
29
42
 
30
43
.. note::
31
44
 
42
55
 
43
56
   OTHERSERVER|mysql> ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
44
57
 
45
 
After this, copy :file:`mytable.ibd` and :file:`mytable.exp` files to database's home, and import its tablespace: ::
 
58
After this, copy :file:`mytable.ibd` and :file:`mytable.exp` ( or :file:`mytable.cfg` if importing to |MySQL| 5.6) files to database's home, and import its tablespace: ::
46
59
 
47
60
   OTHERSERVER|mysql> ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
48
61