数据备份和恢复:
备份的内容:
database
binlog
my.conf
备份中必须考虑的是:数据的一致性和服务的可用性
MySQL备份类型
cp # 冷备份
tar # 冷备份
scp # 冷备份
ghost # 冷备份
硬盘 镜像 # 冷备份
LVM 的 LV 磁盘快照
xtrabackup(掌握) # 热备份
scp 文件 ip + 路径
scp 1.txt x.x.x.x:/tmp A----给B拷贝文件
scp x.x.x.x:/tmp/1.txt /srv B机器 IP 路径 A机器本机的路径
mkdir 1111 目录 scp -r 1111/ x.x.x.x:/tmp/ 拷贝目录
1,物理备份直接复制数据库文件,适用于大型数据库环境,不受存储引擎的限制,但是不能恢复到不同的MySQL版本。
#####热备
在线备份,数据库处于运行状态,这种备份方法依赖与数据库的日志文件
#####冷备
停机,是在关闭数据库的时候进行的
2,逻辑备份备份的是建表,建库,插入等操作所执行SQL(DDL DML DCL)适用于中小型的数据库,效率相对老说是比较低的
MySQL备份工具:
1,ibbackup 收费,官方,物理备份
2,xtrabackup 开源 免费(老版本有问题,备份出来的数据可能有问题) 物理备份
3,MySQLdump 逻辑备份,速度慢 官方自带,开源免费
4,MySQLbackup mysql官方备份工具 innodb引擎的表mysqlbackup可以进行热备,不是的只能进行温备,物理备份,备份还原速度快 适合大规模数据使用
mysqldump 是 MySQL 自带的逻辑备份工具。可以保证数据的一致性和服务的可用性
具体备份流程:
######xtrabackup
:首先安装 创建备份目录 mkdir -p /xtrbackup/full
innobackupex --user=root --passwd=’’ /xtrbackup/full
完全备份的流程:
停止数据库:systemctl stop mysqld
清理环境:rm -rf /var/lib/mysql/*
rm -rf /var/log/mysqld.log
rm -rf /var/log/mysql-slow/slow.log
重演恢复:innobackupex --apply-log /xtrabackup/full/2019-08-20_11-47-49
确认数据库目录:# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
恢复数据:innobackupex --copy-back /xtrabackup/full/2019-08-20_11-47-49
修改权限:chown mysql.mysql /var/lib/mysql -R
恢复数据库:systemctl start mysqld
######mysqldump
本身为客户端工具:
远程备份语法: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql
本地备份语法: # mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql
备份一个库:# mysqldump -uroot -p’qf123’ company > /home/back/company.bak
备份多个库:mysqldump -uroot -p’qf123’ -B company testdb > /home/back/company_testdb.bak
备份所有的库:mysqldump -uroot -p’qf123’ -A > /home/back/allbase.bak
恢复库:mysql -uroot -p’qf123’ company < /home/back/company.bak
mysqldump
场景:数据量小 100G 以下 恢复数据速度慢
xtrabackup
场景:数据量大的 恢复数据速度快