### MySQL与MongoDB的定时备份知识点详解 #### 一、MySQL与MongoDB备份的重要性 - **数据安全性**:定期备份可以防止因系统故障、误操作等原因导致的数据丢失。 - **业务连续性**:确保在灾难发生后能快速恢复业务运行。 #### 二、MySQL与MongoDB备份方案设计 ##### 1. 创建备份目录 为了组织备份文件,需要创建专门的目录: - **MySQL备份目录**:`/home/backup/mysql_bak/` - **MongoDB备份目录**: - **临时备份路径**:`/home/backup/mongod_bak/mongod_bak_now` - **备份存放路径**:`/home/backup/mongod_bak/mongod_bak_list` 这些目录的创建通过命令`mkdir -p`实现,例如: ```bash mkdir -p /home/backup/mysql_bak/ mkdir -p /home/backup/mongod_bak/mongod_bak_now mkdir -p /home/backup/mongod_bak/mongod_bak_list ``` ##### 2. 编写备份脚本 - **MySQL备份脚本**:使用`mysqldump`工具进行备份,并压缩为`.sql.gz`格式。示例脚本如下: ```bash #!/bin/bash /home/itn2.0/bin/mysql/bin/mysqldump -u root -p123456 ccgm0913 | gzip > /home/backup/dataDB/ccgm0913_$(date +\%Y\%m\%d_\%H\%M\%S).sql.gz find /home/backup/dataDB/ -mtime +7 -name "*.sql.gz" -exec rm -rf {} \; ``` 这里使用了`mysqldump`命令来导出数据库`ccgm0913`的数据,并通过`gzip`压缩,最终保存到指定目录。此外,还设置了自动清理7天前的备份文件。 - **MongoDB备份脚本**:使用`mongodump`工具备份数据,并使用`tar`命令压缩为`.tar.gz`格式。示例脚本如下: ```bash DUMP=/home/itn2.0/bin/mongodb/bin/mongodump OUT_DIR=/home/backup/mongod_bak/mongodb_bak_now TAR_DIR=/home/backup/mongod_bak/mongodb_bak_list DATE=$(date +%Y_%m_%d_%H%M%S) TAR_BAK="mongod_bak_$DATE.tar.gz" cd $OUT_DIR rm -rf $OUT_DIR/* mkdir -p $OUT_DIR/$DATE $DUMP -u root -p123456 -o $OUT_DIR/$DATE tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE find $TAR_DIR/ -mtime +7 -delete ``` 此脚本首先清空临时备份目录,然后创建一个新的子目录,并使用`mongodump`备份所有数据库到该目录下。接着,使用`tar`命令将备份目录打包压缩。清理7天前的旧备份文件。 ##### 3. 设置计划任务 - 使用`crontab`设置定时任务,例如每天下午5点执行备份任务: ```bash crontab -e 0 17 * * * /home/backup/bkDatabaseName.sh ``` 这里的`0 17 * * *`表示每天17点(即下午5点)执行一次备份任务。 #### 三、数据恢复方法 - **MongoDB数据恢复**: - 恢复全部数据库: ```bash mongorestore --drop --directoryPerDb /home/backup/mongod_bak/mongod_bak_now/2018_02_28_050502/ ``` - 恢复单个数据库: ```bash mongorestore --drop -d dataname --directoryPerDb /home/backup/mongod_bak/mongod_bak_now/2018_02_28_050502/dataname ``` - **MySQL数据恢复**: - 直接通过`mysql`命令导入数据: ```bash mysql -u username -p password db1 < tb1tb2.sql ``` #### 四、异地备份策略 - **设置SSH信任**:在客户端(Client)生成SSH密钥对,并将公钥复制到服务器(Server),以便无需密码即可远程访问。 ```bash ssh-keygen -t rsa ``` 生成密钥后,可以使用`ssh-copy-id`命令将公钥复制到服务器: ```bash ssh-copy-id user@server ``` 这样就完成了主机之间的信任设置,便于进行远程备份。 通过上述步骤,我们可以有效地实现MySQL和MongoDB数据库的定时备份及恢复功能,保障数据的安全性和业务的连续性。
- 粉丝: 0
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助