公告栏
这是一个公告栏...目前还没有啥公告...
关于Nodebb数据库备份
-
本篇文章大部分来源于Github,地址:https://github.com/NodeBB-China/nodebb-cn-docs/blob/master/数据库备份与恢复.md
对于一个论坛来说,最重要的资源就是数据库,数据丢失会给论坛带来毁灭性打击,所以保证数据安全是站长的第一要务。本文将重点介绍数据库的备份与恢复,最后将给出一个定时自动备份数据库的脚本。
MongoDB 备份与恢复
注意:此处以
MongoDB 3.2
为例进行讲解MongoDB
作为NoSQL
数据库的著名代表,其官方文档有这么几个特点:准确、详尽、及时、易读、完善,所以如果出现了本教程没有涵盖到的问题,请参阅官方文档。备份
备份命令如下所示:
$ mongodump -u nodebb -p yourpassword --authenticationDatabase=nodebb -d nodebb
命令解释:
- -u:用户名,如果按照官方教程来做,则用户名为
nodebb
- -p:密码
- --authenticationDatabase:等待进行验证的数据库,一般写你的数据库名
- -d:你的数据库名,如果按照官方教程来做,则数据库名为
nodebb
以上命令会在当前目录下生成
dump
目录,在里面有一个叫nodebb
的目录,其内即为数据文件。恢复
恢复命令如下所示:
$ mongorestore -u nodebb -p yourpassword --authenticationDatabase=nodebb -d nodebb --drop dump/nodebb
命令解释:
- -u:用户名,如果按照官方教程来做,则用户名为
nodebb
- -p:密码
- --authenticationDatabase:等待进行验证的数据库,一般写你的数据库名
- -d:你的数据库名,如果按照官方教程来做,则数据库名为
nodebb
- --drop dump/nodebb:如果不加
--drop
这个参数,那么数据库内原有的数据不会被清除,导入时会遇到**数据重复!**会出现大量警告提示。加了这个参数就是先清掉数据库原有的内容,再将备份导入。后面的dump/nodebb
是你当时导出数据的目录,这里用的相对路径
自动备份
手动备份很麻烦,很不智能,还容易出错,作为一个Geek是不允许这种事情发生的。于是有了下面的自动备份脚本,该脚本将在每天凌晨3点30分自动对数据库进行备份,然后对备份后的数据文件进行压缩打包,之后删除三天前的历史备份档案,只保留最近三天的备份。你最终看到的就是备份目录内只有最近三天的备份文件压缩包。
backup_date=$(date +"%F") #获取日期 cd /root/ #切换到当前用户家目录,你可以换成你的用户目录 /usr/bin/mongodump -u nodebb -p yourpassword --authenticationDatabase=nodebb -d nodebb #导出数据库备份 tar -zcvf dump/${backup_date}.tar.gz dump/nodebb --remove-files #将导出的备份压缩打包,并以日期命名压缩包 find dump/ -mtime +3 | xargs rm -f #检索三天前的备份压缩包,将之删除 echo $(date +"%F %H:%M:%S") Backup successfully ! >> log.backup #写入日志
- 将上述脚本保存到
/root/script/
目录下,并命名为backup.sh
- 使用命令
chmod u+x /root/script/backup.sh
为脚本添加可执行权限 - 运行命令
crontab -e
打开crontab
的任务添加界面,加入下面这一行:
30 3 * * * /root/script/backup.sh
使用
crontab -l
就可以看到刚才添加的定时任务了。crontab的其他使用方法在此不多做解释,如有其他问题请自行搜索解决。
Redis 备份与恢复
1、进入redis目录
$ redis-cli
2.数据备份
> save
Redis 中,所有的数据库数据都在
.rdb
文件中。在通常安装的 Redis 上,主数据库在/var/lib/redis/dump.rdb
。把文件保存到安全的地方。
info
编写: hao-lee
维护: PA Team
审核: PA Team & NodeBB China
最后更新: 2017.08.08在宝塔面板的备份
事实上,在宝塔面板上备份网站就简单的多了
直接在数据库面板中备份即可
此外,文件方面
可以直接备份网站目录的
/www/wwwroot/nodebb/public/
文件夹和根目录的package.json
和config.json
即可迁移到新的服务器重新安装并配置
config.josn
后覆盖即可当然你也可以在
计划任务
中设置,这里就不多赘述了 - -u:用户名,如果按照官方教程来做,则用户名为
Copyright AiINK.CN All Rights Reserved Since 2023