- 物理冷备份与恢复
- 关闭MySQL数据库
- 使用tar命令直接打包数据库文件夹
- 直接替换现有MySQL目录即可
# systemctl stop mysqld
# yum -y install xz #xz是一个压缩工具
#压缩备份
# tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/
#解压恢复
#tar Jxvf /opt/mysql_all_2023-07-17.tar.xz -C /usr/local/mysql/data
#systemctl start mysqld
- mysqldump全量备份
直接上命令,自己填充对应的内容
./mysqldump -u root -p --lock-all-tables --flush-logs [dbname] > /root/db/backup.sql
Enter password: #输入root密码
以下使用的数据库备份脚本文件网上摘取,自行选择
脚本文件功能不是很复杂,相应的变量改成自己的值即可 。
#!/bin/bash
#在使用之前,请提前创建以下各个目录
#获取当前时间
date_now=$(date "+%Y%m%d-%H%M%S")
backUpFolder=/home/db/backup/mysql
username="root"
password="123456"
db_name="zone"
#定义备份文件名
fileName="${db_name}_${date_now}.sql"
#定义备份文件目录
backUpFileName="${backUpFolder}/${fileName}"
echo "starting backup mysql ${db_name} at ${date_now}."
/usr/bin/mysqldump -u${username} -p${password} --lock-all-tables --flush-logs ${db_name} > ${backUpFileName}
#进入到备份文件目录
cd ${backUpFolder}
#压缩备份文件
tar zcvf ${fileName}.tar.gz ${fileName}
# use nodejs to upload backup file other place
#NODE_ENV=$backUpFolder@$backUpFileName node /home/tasks/upload.js
date_end=$(date "+%Y%m%d-%H%M%S")
echo "finish backup mysql database ${db_name} at ${date_end}."
恢复全量备份
./mysql -h localhost -uroot -p123 [dbname] < /root/db/backup.sql
或者
mysql> use db;
mysql> source /path/backup/bakdup.sql
在恢复全量备份之后,要将全量备份之后的增量备份也恢复回数据库中。