--重新开一个shell窗口,去数据文件目录tar包
开启窗口2
[root@myfstv_21_11 data]# tar -zcvf mysqla1.tar.gz mysqla
tar -zcvf mysqla1.tar.gz mysqla 压缩完毕
切换到窗口1,执行解锁命令
mysql> unlocktables;
Query OK, 0 rows affected (0.00 sec)
mysql>
copy tar包到另外一个mysql库服务器上面,覆盖data目录,然后重启mysql数据库服务。
2.4 percona提供的xtrabackup工具
支持innodb的物理热备份,支持完全备份,增量备份,而且速度非常快,支持innodb存储引起的数据在不同数据库之间迁移,支持复制模式下的从机备份恢复备份恢复
,为了让xtrabackup支持更多的功能扩展,可以设立独立表空间,打开 innodb_file_per_table功能,启用之后可以支持单独的表备份。
支持在线热备与恢复
大数据量的时候,备份恢复都比较快快
xtrabackup可以实现完全备份,增量备份,以及部分备份。
xtrabackup备份原理
xtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的时候使用crash-recovery,使得数据恢复一致。
InnoDB维护了一个redo log,又称为transaction log,事务日志,它包含了innodb数据的所有改动情况。当InnoDB启动的时候,它会先去检查data file和transaction log,并且会做二步操作:
xtraBackup在备份的时候, 一页一页地复制innodb的数据,而且不锁定表,与此同时,XtraBackup还有另外一个线程监视着transactions log,一旦log发生变化,就把变化过的log pages复制走。为什么要急着复制走呢?因为transactions log文件大小有限,写满之后,就会从头再开始写,所以新数据可能会覆盖到旧的数据。
在prepare过程中,XtraBackup使用复制到的transactionslog对备份出来的innodb data file进行crash recovery。
用XtraBackup实现MySQL的主从复制快速部署【主不锁表】