备份策略
物理备份:
逻辑备份不复制实际数据文件而复制表结构和数据的备份。例如,mysqldump命令生成逻辑备份,因为它的输出包含 CREATE等语句可以重新创建数据的表和插入。 与物理备份形成对比。 逻辑备份提供了灵活性 (例如,您可以在恢复之前编辑表定 义或插入语句),但是可以进行大量的操作恢复时间比物理备份长。
逻辑备份:
物理备份复制实际数据文件的备份。例如,MySQL企业的mysqlbackup命令备份产品生成物理备份,因为它的输出包含可以直接由mysqld服务器,导致更快的恢复操作。与逻辑备份形成对比。参见备份、逻辑备份、MySQL企业备份和还原。
备份命令:
将数据库中的所有表备份到/date/all.sql
mysqldump -uroot -p 密码 --all-databases > /date/all.sql
将数据库中的mysql表备份到/date/mysql.sql
mysqldump -uroot -p 密码 mysql > /date/mysql.sql
恢复数据
将备份数据全部导入到数据库中
mysqldump -uroot -p123456 --all-databases < /date/all.sql
将备份的mysql数据导入数据库中的mysql库中
mysqldump -uroot -p123456 mysql < /date/mysql.sql
innobackupex备份数据
下载软件percna-xtrabackup
使用innobackupex备份需要将数据库的储存引擎改为Innodb
修改配置文件
vim /etc/my.cnf
default-storage-engine=innodb #该选项默认使用的是innodb储存引擎
重启数据库
systemctl restart mysqld
查看数据库使用的储存引擎
mysql -uroot -p123456 -e "show engines;"
innobackupex完全备份
innobackupex --user=root --password=123456 /allbak --no-timestamp #--no-timestamp 让备份下来的数据不打时间戳
chown -R mysql:mysql /allbak #将该目录是所有者和所属组改为mysql
完全恢复
使用innobackupex做完全恢复之前还需要将数据库停止
systemctl stop mysqld
rm -rf /var/lib/mysql
mkdir /var/lib/mysql
准备恢复数据
innobackupex --apply-log /allbak/ #日志回滚
innobackupex --copy-back /allbak/ #拷贝数据
ll /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
数据增量备份
innobackupex --user=root --password=123456 /fullbak --no-timestamp #先做一个完全备份
innobackupex --user=root --password=123456 --incremental /new1dir --incremental-basedir=/fullbak --no-timestamp
–incremental /new1dir #增量备份存放的目录
–incremental-basedir=/fullbak #该指定目录为最近的完全备份目录