冷备份:在备份时暂停数据库运行和服务,将整个数据库复制到备份设备中
热备份:在备份时不停止数据库的运行和服务
物理备份:备份数据库服务器上存储的原始数据和文件,可以直接拷贝和恢复
逻辑备份:备份的是SQL语句,可用于不同版本和不同类型的MySQL数据库之间的数据迁移
适合线下备份,不适合线上备份
systemctl stop mysqld
cp -rp /var/lib/mysql /opt/mysql.bak
tar -zcf /opt/mysql.tar.gz /var/lib/mysql/*
rm -rf /var/lib/mysql/*
cp -r /opt/mysql.bak/* /var/lib/mysql/
tar -zxf /opt/mysql.tar.gz -C /var/lib/mysql/
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
mysqldump -uroot -p密码 库名 > /目录/xxx.sql
库名表示方式:
库名 表名列表? ? ? ? 备份1张表或多张表所有数据
-B 库名列表? ? ? ? 备份1个库或多个库所有数据
--all-databases 或 -A? ? ? ? 备份1台服务器所有数据
[root@mysql50 ~]# mkdir /bakdir
# 备份所有库
[root@mysql50 ~]# mysqldump -uroot -p123456 -A > /bakdir/allbak.sql
# 备份1个库
[root@mysql50 ~]# mysqldump -uroot -p123456 -B tarena > /bakdir/tarena.sql
# 备份多个库
root@mysql50 ~]# mysqldump -uroot -p123456 -B db3 db1 > /bakdir/db3_db1.sql
# 备份多张表
[root@mysql50 ~]# mysqldump -uroot -p123456 tarena employees departments > /bakdir/tarena_employees_deparments.sql
# 备份1张表
[root@mysql50 ~]# mysqldump -uroot -p123456 tarena salary > /bakdir/tarena_salary.sql
[root@mysql50 ~]# ls /bakdir/
allbak.sql tarena_salary.sql tarena.sql db3_db1.sql tarena_employees_deparments.sql
mysql -uroot -p密码 [库名] < /目录/xxx.sql
[root@mysql51 ~]# mysql -p123456
mysql> select count(*) from tarena.salary;
mysql> delete from tarena.salary;
mysql> select count(*) from tarena.salary;
[root@mysql50 ~]# scp /bakdir/tarena_salary.sql 192.168.88.51:/root
[root@mysql51 ~]# ls
mysql.tar.gz tarena_salary.sql
[root@mysql51 ~]# mysql -uroot -p123456 tarena < /root/tarena_salary.sql
[root@mysql51 ~]# mysql -p123456
mysql> select count(*) from tarena.salary;
mysql> drop database tarena;
mysql> show databases;
mysql> source /bakdir/tarena.sql;
mysql> show databases;
mysql> drop table tarena.salary;
mysql> use tarena;
mysql> show tables;
mysql> source /bakdir/tarena_salary.sql;
mysql> show tables;
恢复库时库名可以省略
恢复表时需要库名
备份和恢复时,数据库服务必须是运行状态
Mysqldump 备份和恢复数据时会锁表,锁表期间无法对表做写访问,mysqldump适合备份数据量比较小的数据或在数据库服务器访问量少的时候备份。
跨平台性差
备份时间长、冗余备份、浪费存储空间
效率较低、备份和还原速度慢、锁表
备份过程中,数据插入和更新操作被阻塞
软件介绍
一款强大的在线热备份工具
备份过程中不锁库表,适合生产环境
由专业组织Percona提供(改进MySQL分支)
软件安装
[root@mysql50 ~]# yum -y install perl-DBD-MySQL # 安装依赖
[root@mysql50 ~]# tar -xf percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal.tar.gz
[root@mysql50 ~]# mv percona-xtrabackup-8.0.26-18-Linux-x86_64.glibc2.12-minimal /usr/local/percona
[root@mysql50 ~]# vim /etc/bashrc # 配置初始配置文件 系统环境变量
export PATH=/usr/local/percona/bin:$PATH # 添加此行
[root@mysql50 ~]# source /etc/bashrc # 使配置生效
[root@mysql50 ~]# man xtrabackup
差异备份与恢复