node 备份MySQL_数据库备份与恢复

>[danger] **弃用提醒:**

> *由于看云对于免费用户的限制愈发严苛,本文档已经迁移至语雀。本文档将不做维护。*

> **语雀地址**:[https://www.yuque.com/a632079/nodebb](https://www.yuque.com/a632079/nodebb)

*****

# 数据库备份

对于一个论坛来说,最重要的资源就是数据库,数据丢失会给论坛带来毁灭性打击,所以保证数据安全是站长的**第一要务**。本文将重点介绍数据库的备份与恢复,最后将给出一个定时自动备份数据库的脚本。

## MongoDB 备份与恢复

*注意:此处以`MongoDB 3.2`为例进行讲解*

`MongoDB`作为`NoSQL`数据库的著名代表,其官方文档有这么几个特点:准确、详尽、及时、易读、完善,所以如果出现了本教程没有涵盖到的问题,请参阅[官方文档](https://docs.mongodb.com/manual/ "The MongoDB 3.2 Manual")。

### 备份

**备份命令如下所示:**

```

$ 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](https://github.com/hao-lee)

维护: PA Team

审核: PA Team & NodeBB China

最后更新: 2017.08.08

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值