恢复阿里云物理备份

引用:https://help.aliyun.com/knowledge_detail/41817.html

# 恢复mysql,dump其中一部分数据

### mysql数据库较大,下载解压4小时左右

1.在备份机root@ali-hk-lw-databackup上有每天的备份,已经安装了mysql5.7.28和mongo3.4.19,Percona XtraBackup2.4

2.下载备份

`wget -c '<数据备份文件外网或内网下载地址>' -O <自定义文件名>.tar.gz`

3.解压

`tar -izxvf <数据备份文件名>.tar.gz -C /data/restore/mysql`

4.执行如下命令,恢复解压好的备份文件。

`innobackupex --defaults-file=/data/restore/mysql/backup-my.cnf --apply-log /data/restore/mysql`

因为文件大,所以连开始都慢,不能直接停止,否则一个log文件会消失,就不能再成功执行了。只有重新解压缩包

5.自建数据库不支持下面的参数,注销**backup-my.cnf**中相关参数

```

#innodb_log_checksum_algorithm

#innodb_fast_checksum

#innodb_log_block_size

#innodb_doublewrite_file

#rds_encrypt_data

#innodb_encrypt_algorithm

#redo_log_version

#master_key_id

#server_uuid

```

6.修改文件所属

`chown -R mysql:mysql /data/restore/mysql`

7.执行如下命令,启动MySQL进程。

`mysqld --defaults-file=/data/restore/mysql/backup-my.cnf --user=mysql --datadir=/data/restore/mysql &`

### 结果报错

## Can't change dir to '/xxx' (Errcode: 13),Permission denied,真是奇怪,所属已经改了的

## 最后处理办法,**将restore也修改所属为mysql**

8.**导出需要的数据,再恢复到生产环境**。

或者用命令启动确认没有问题后,再修改/etc/my.cnf中数据库目录,直接使用这个配置启动

# mongodb 恢复

### **目前7天前的备份存储在oss中,需要先解冻再用 wget -c -O 下载,再恢复**

**最好用docker run一个mongo,想要什么版本就什么版本**

使用mongo3.4.19

引用https://help.aliyun.com/document_detail/58329.html?spm=a2c6r.11610030.0.0.63b64231DrgJiF

1.下载阿里云mongodb物理备份

`wget -c '<数据备份文件外网或内网下载地址>' -O <自定义文件名>.tar.gz`

2.解压到指定目录

`tar zxf saas.owsc.20191126.tar.gz -C mongo/`

3.以单节点模式恢复MongoDB物理备份的数据

引用WiredTiger 存储引擎的配置文件,修改mongodb所在目录

4.启动mongo

`/usr/bin/mongod -f /etc/mongod.conf`

5.等待启动完成后,可通过服务器的 mongo shell 登录 MongoDB 数据库。帐号密码就是线上数据库帐号密码

`mongo 127.0.0.1:27017/owsc -uowsc -pDS3x8mHP`

6,dump需要的数据,再恢复到生产。

Last updated

Was this helpful?