内容简介:For our purpose, we will take a test database having tables created by the sysbench tool. The 8.0 versions ofPercona XtraBackup andHere we will take the backup of the sbtest2 table and restore it. The initial checksum of the table is given below:
The backup and restore of a complete database is an extensive exercise. But what if you need to restore just one table which has been mistakenly modified by an incorrect query? Help is at hand withPercona XtraBackup.
For our purpose, we will take a test database having tables created by the sysbench tool. The 8.0 versions ofPercona XtraBackup and Percona Server for MySQL have been used in this test.
Restore Single Table
Here we will take the backup of the sbtest2 table and restore it. The initial checksum of the table is given below:
8.0.19>CHECKSUM TABLE sbtest2; +--------------+-----------+ | Table | Checksum | +--------------+-----------+ | test.sbtest2 | 905286813 | +--------------+-----------+ 1 row in set (0.01 sec)
Take a backup of a single InnoDB table using the option: --tables
./xtrabackup --user=backup --password='Bspass!4%' --backup --tables=sbtest2 --target-dir=$HOME/dbbackup_PS8_table -S $HOME/PS130320_8_0_19_10_debug/socket.sock --datadir=$HOME/PS130320_8_0_19_10_debug/data
XtraBackup copies the table file sbtest2.ibd in the backup directory (dbbackup_PS8_table/test) along with other files required to prepare the backup.
You can also give patterns in the --tables
option and XtraBackup will take backups of all tables matching the pattern. If there are many tables to be backed up, then these can be specified as a list in a text file with the option --tables-file
. There is also an option to exclude tables using the --tables-exclude
option.
Now prepare the backup with the extra --export
option. This is a special option that will prepare the table configuration.
./xtrabackup --prepare --export --target-dir=$HOME/dbbackup_PS8_table
After preparation, the files sbtest2.ibd and sbtest.cfg are available in the backup directory. To restore this table, we have to first remove the existing tablespace from the database.
8.0.19>ALTER TABLE sbtest2 DISCARD TABLESPACE; Query OK, 0 rows affected (0.20 sec)
Now copy the table files from the backup directory (dbbackup_PS8_table/test/sbtest2.*) to Percona Server data directory (PS130320_8_0_19_10_debug/data/test).
Note:Before copying the files, disable selinux. After the files are copied, change the ownership of the copied files to the mysql user, if the backup user is different.
Finally, import the tablespace.
8.0.19>ALTER TABLE sbtest2 IMPORT TABLESPACE; Query OK, 0 rows affected (1.12 sec)
The checksum of the table after the restore is:
8.0.19>CHECKSUM TABLE sbtest2; +--------------+-----------+ | Table | Checksum | +--------------+-----------+ | test.sbtest2 | 905286813 | +--------------+-----------+ 1 row in set (0.02 sec)
The table is restored successfully.
Another method is to take the backup of the whole database and use it to restore one or more tables. Here, backup is simply done using the --backup
option.
./xtrabackup --user=backup --password='Bspass!4%' --backup --target-dir=$HOME/dbbackup_PS8 -S $HOME/PS130320_8_0_19_10_debug/socket.sock --datadir=$HOME/PS130320_8_0_19_10_debug/data
Prepare the backup using --export
option.
./xtrabackup --prepare --export --target_dir=$HOME/dbbackup_PS8
Next, discard the table’s tablespace, copy the table files from backup directory to the Percona Server data directory, and import the tablespace.
For MyISAM tables, the backup and prepare process is the same as above, and the only difference is that the table needs to be dropped and then restored using the IMPORT TABLE statement.
Restore Entire Schema/Database
We can take the backup of a database schema and restore it using the same process as described above.
Take a backup of the database using the --databases
option.
./xtrabackup --user=backup --password='Bspass!4%' --backup --databases=test --target-dir=$HOME/dbbackup_PS8_db -S $HOME/PS130320_8_0_19_10_debug/socket.sock --datadir=$HOME/PS130320_8_0_19_10_debug/data
For more than one database, specify the databases as a list, such as --databases="db1 db2 db3"
. The databases can also be specified in a text file and used with the option --databases-file
. To exclude a database from the backup, use the option --databases-exclude
.
Prepare the backup using --export
option.
./xtrabackup --prepare --export --target-dir=$HOME/dbbackup_PS8_db
Now remove the tablespace of all InnoDB tables in the database using ALTER TABLE <table name> DISCARD TABLESPACE.
Copy all table files from the backup dir (dbbackup_PS8_db/test/*) to the mysql data dir(PS130320_8_0_19_10_debug/data/test).
Note:Before copying the files, disable selinux. After the files are copied change the ownership of the copied files to mysql user if the backup user is different.
Finally, restore the tables using ALTER TABLE <table name> IMPORT TABLESPACE;.
This will restore the tables to the time of the backup. For a point in time recovery , binlogs can be further applied to the database, though care should be taken to apply only those transactions which affect the tables being restored.
The advantage of using this method is that the database server need not be stopped. A slight disadvantage is that each table needs to be restored individually, though it can be overcome with the help of a script.
Conclusion
It is easy to backup and restore a table or a database usingPercona XtraBackup, by using just a few commands.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
大数据供应链
娜达·R·桑德斯 (Nada R. Sanders) / 丁晓松 / 中国人民大学出版社 / 2015-7-1 / CNY 55.00
第一本大数据供应链落地之道的权威著作,全球顶级供应链管理专家娜达·桑德斯博士聚焦传统供应链模式向大数据转型,助力工业4.0时代智能供应链构建。 在靠大数据驱动供应链处于领先地位的企业中,45% 是零售商,如沃尔玛、亚马逊,而22%是快消企业,如戴尔电脑。他们都前所未有地掌控了自己的供应链。在库存管理、订单履行率、原材料和产品交付上具有更为广阔的视野。利用具有预见性的大数据分析结果,可以使供需......一起来看看 《大数据供应链》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
HTML 编码/解码
HTML 编码/解码