游客发表
本文通过 XtraBackup 备份单个数据库,过X个库然后恢复到另一个实例,份恢复单用于快速迁移大数据量,过X个库使用的份恢复单软件版本为:
软件名

版本
MySQL
mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
XtraBackup
percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
在2台主机分别安装一个MySQL实例:
主机
IP地址
端口号
MySQL-A
192.168.100.10
5508
MySQL-B
192.168.100.11
5508
通过sysbench 初始化数据,10张表,过X个库每张表10000条记录
复制shell> sysbench src/lua/oltp_read_write.lua --mysql-db=sysbench --mysql-host=192.168.100.10 --mysql-port=5508 --mysql-user=greatsql --mysql-password=greatsql --tables=10 --table_size=10000 --report-interval=2 --threads=50 --time=1000 --mysql_storage_engine=innodb --partitions=3 --skip_trx=0 --mysql-ignore-errors=all prepare1....
...
221229 10:11:17Executing UNLOCK TABLES
221229 10:11:17All tables unlocked
221229 10:11:17 [00] Copying ib_buffer_pool to /mysql/dbbackup/2022-12-29_10-11-07/ib_buffer_pool
221229 10:11:17 [00]...done
221229 10:11:17 Backup created in directory /mysql/dbbackup/2022-12-29_10-11-07/MySQL binlog position: filename binlog.000005, position 190, GTID of the last change 3e362a47-8683-11ed-92e1-00163ed294ac:1-87221229 10:11:17 [00] Writing /mysql/dbbackup/2022-12-29_10-11-07/backup-my.cnf221229 10:11:17 [00]...done
221229 10:11:17 [00] Writing /mysql/dbbackup/2022-12-29_10-11-07/xtrabackup_info
221229 10:11:17 [00]...done
xtrabackup: Transaction log of lsn (1123405728) to (1123405737)was copied.
221229 10:11:17 completed OK!1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.复制# 生成丢弃表空间的SQL
mysql> select concat(alter table ,table_schema,.,TABLE_NAME , discard tablespace, ;) from information_schema.tables where TABLE_SCHEMA = sysbench into outfile /tmp/discard.sql;Query OK, 10 rows affected (0.00 sec)# 生成导入表空间的SQL
mysql> select concat(alter table ,table_schema,.,TABLE_NAME , import tablespace, ;) from information_schema.tables where TABLE_SCHEMA = sysbench into outfile /tmp/import.sql;Query OK, 10 rows affected (0.01 sec)1.2.3.4.5.6.K
-rw-r----- 1 mysql mysql 67 Dec 29 10:25 db.opt-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest10.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest1.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest2.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest3.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest4.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest5.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest6.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest7.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest8.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest9.frm1.2.3.4.5.6.7.8.9.10.11.12.13.可以看到ibd文件已被丢弃
注意这里需要加 --export 选项,它允许导出单个表以进行导入到另一个服务器
复制shell> innobackupex --apply-log --export /mysql/dbbackup/2022-12-29_10-11-07xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksum_algorithm=strict_crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=4 --innodb_log_file_size=33554432 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=/mysql/dbdata/data5508/log --innodb_undo_tablespaces=0 --server-id=2 --redo-log-version=1 xtrabackup: recognized client arguments:221229 10:56:58 innobackupex: Starting the apply-log operation
IMPORTANT: Please check that the apply-log run completes successfully.
At the end of a successful apply-log run innobackupex
prints "completed OK!".
...
...
xtrabackup: starting shutdown with innodb_fast_shutdown = 0InnoDB:FTS optimize thread exiting.
InnoDB:Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1123519528221229 10:57:13 completed OK!1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.M
-rw-r----- 1 root root 67 Dec 29 10:11 db.opt-rw-r----- 1 root root 8.5K Dec 29 10:11 sbtest10.frm-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p0.cfg-rw-r----- 1 root root 16K Dec 29 10:57 sbtest10#P#p0.exp-rw-r----- 1 root root 9.0M Dec 29 10:11 sbtest10#P#p0.ibd-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p1.cfg-rw-r----- 1 root root 16K Dec 29 10:57 sbtest10#P#p1.exp-rw-r----- 1 root root 9.0M Dec 29 10:11 sbtest10#P#p1.ibd-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p2.cfg...1.2.3.4.5.6.7.8.9.10.11.12.可以看到prepare备份文件后,过X个库多了 cfg,份恢复单exp结尾的文件
将准备好的备份文件中后缀名为cfg,ibd,过X个库exp的香港云服务器份恢复单文件传输到MySQL-B实例的sysbench库下
复制shell> scp -r /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.ibd /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.cfg /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.exp root@192.168.100.11:/mysql/dbdata/data5508/data/sysbench/1....
...
SQL statistics: queries performed: read: 1702400 write: 486400 other: 243200 total: 2432000 transactions: 121600 (405.25 per sec.) queries: 2432000 (8105.04 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.)Throughput: events/s (eps): 405.2522 time elapsed: 300.0601s
total number of events: 121600Latency (ms): min: 9.04 avg: 123.36 max: 1512.19 95th percentile: 590.56 sum: 15000942.35Threads fairness: events (avg/stddev): 2432.0000/58.48 execution time (avg/stddev): 300.0188/0.011.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.压测正常
通过上述方法可以快速备份恢复大数据量的库,也可以同时指定多个库,过X个库单张表或多张表进行恢复。份恢复单可参考官方文档 Partial Backups - Percona XtraBackup。高防服务器过X个库
份恢复单随机阅读
热门排行
友情链接