之前一直考虑一个问题,就是我的博客用的是阿里云服务器,那么我要怎么备份数据,备份在哪里呢?我备份的原因只是怕服务器被攻击,或者服务器奔溃导致数据丢失,那就不好办了,虽然服务器奔溃的概率有点低,最多的可能是服务器被攻击,那么我这里采取两套备份方案
方案
服务器一份、OSS一份、本地电脑一份,三份
1、备份到OSS
备份到阿里云OSS,毕竟阿里云OSS我也不敢用来当作图床,被刷爆就完了
2、备份到本地
备份一份到本地电脑,这样就算阿里云奔溃,数据丢失,或者服务器有漏洞,那也不影响,最起码数据还在
一、首次全量备份
这次的备份是第一次全量备份,后续的还原都以这个为准,然后再结合增量备份
1、备份数据库
cd /usr/local/software/mysql/bin/
./mysqldump -uroot -p密码 lianci > /usr/local/software/ossutil/lianci20231206.sql
上传
cd /usr/local/software/ossutil
./ossutil64 cp lianci20231206.sql oss://suibibk/blog/
删除
rm -rf lianci20231206.sql
2、备份table
cd /usr/local/software/ossutil
tar -zcvf table20231206.tar.gz /usr/local/software/blog/data/table
上传
./ossutil64 cp table20231206.tar.gz oss://suibibk/blog/data/
删除
rm -rf table20231206.tar.gz
3、备份fileupload/files
cd /usr/local/software/ossutil
tar -zcvf files20231206.tar.gz /usr/local/software/blog/data/fileupload/files
上传
./ossutil64 cp files20231206.tar.gz oss://suibibk/blog/data/fileupload/
删除
rm -rf files20231206.tar.gz
4、备份fileupload/html
cd /usr/local/software/ossutil
tar -zcvf html20231206.tar.gz /usr/local/software/blog/data/fileupload/html
上传
./ossutil64 cp html20231206.tar.gz oss://suibibk/blog/data/fileupload/
删除
rm -rf html20231206.tar.gz
5、备份fileupload/images
cd /usr/local/software/ossutil
tar -zcvf images20231206.tar.gz /usr/local/software/blog/data/fileupload/images
上传
./ossutil64 cp images20231206.tar.gz oss://suibibk/blog/data/fileupload/
删除
rm -rf images20231206.tar.gz
6、备份其他音频fileupload/musics
cd /usr/local/software/ossutil
tar -zcvf musics20231206.tar.gz --exclude=/usr/local/software/blog/data/fileupload/musics/sentenceAudios /usr/local/software/blog/data/fileupload/musics
上传
./ossutil64 cp musics20231206.tar.gz oss://suibibk/blog/data/fileupload/
删除
rm -rf musics20231206.tar.gz
7、备份音频句子fileupload/musics/sentenceAudios
cd /usr/local/software/ossutil
tar -zcvf sentenceAudios20231206.tar.gz /usr/local/software/blog/data/fileupload/musics/sentenceAudios
上传
./ossutil64 cp sentenceAudios20231206.tar.gz oss://suibibk/blog/data/fileupload/musics/
删除
rm -rf sentenceAudios20231206.tar.gz
8、备份配置、程序、脚本
cd /usr/local/software/ossutil
cp /usr/local/software/blog/application-blog.yml application-blog.yml20231206
cp /usr/local/software/blog/blog.jar blog.jar20231206
cp /usr/local/software/blog/blog.sh blog.sh20231206
cp /usr/local/software/nginx/nginx.conf nginx.conf20231206
上传
./ossutil64 cp application-blog.yml20231206 oss://suibibk/blog/
./ossutil64 cp blog.jar20231206 oss://suibibk/blog/
./ossutil64 cp blog.sh20231206 oss://suibibk/blog/
./ossutil64 cp nginx.conf20231206 oss://suibibk/blog/
删除
rm -rf application-blog.yml20231206
rm -rf blog.jar20231206
rm -rf blog.sh20231206
rm -rf nginx.conf20231206
三、增量备份(以后只需要操作这个即可)
这个有些需要一个月执行一次,或者多个月执行一次,执行时间为月初
1、全量备份table
看发博文的情况,多的话就一个月一次,少的话就半年一次
cd /usr/local/software/ossutil
tar -zcvf table年月日.tar.gz /usr/local/software/blog/data/table
上传
./ossutil64 cp table年月日.tar.gz oss://suibibk/blog/data/
删除
rm -rf table年月日.tar.gz
2、备份数据库
这个要一个月备份一次,因为是炼词数据
cd /usr/local/software/mysql/bin/
./mysqldump -uroot -p密码 lianci > /usr/local/software/ossutil/lianci年月日.sql
上传
cd /usr/local/software/ossutil
./ossutil64 cp lianci年月日.sql oss://suibibk/blog/
删除
rm -rf lianci年月日.sql
3、备份图片
看发博文的情况,多的话就一个月一次,少的话就半年一次
cd /usr/local/software/ossutil
tar -zcvf images年月.tar.gz /usr/local/software/blog/data/fileupload/images/年月
上传
./ossutil64 cp images年月.tar.gz oss://suibibk/blog/data/fileupload/images/
删除
rm -rf images年月.tar.gz
四、还原
原则上还原都以最新日期的备份为准,对于增量备份则还原所有增量
1、还原数据库
先下载回来
./ossutil64 cp oss://suibibk/blog/lianci20231206.sql /usr/local/software/ossutil/lianci20231206.sql
这里直接用MYSQL的运行SQL文件即可
cd /usr/local/software/mysql/bin/
./mysql -u root -p lianci < /usr/local/software/bak/lianci备份年月日.sql
也可以登录mysql用source恢复
mysql> source /usr/local/software/bak/lianci备份年月日.sql
2、还原其他文件
用ossutil64命令下载最新的回来再对应解压或者重命名即可
1、必须先还原musics20231206.tar.gz,后面再进入musics目录里面还原sentenceAudios20231206.tar.gz
2、必须先还原images20231206.tar.gz,后面再进入images目录里面还原所有的images年月.tar.gz
3、其它都放对应目录或则解压到对应目录即可