mysql数据库,上万张表,130G,需要备份出来,后续做定时增量备份 <两个方案>

方案一:使用 `mysqldump` 命令结合 `rsync` 命令进行 MySQL 数据库备份

这种方法在第一次备份时需要花费一定的时间,但是在后续的增量备份中会更加高效。下面是备份 MySQL 数据库的步骤:

1. 安装 rsync

对于 CentOS,可以使用以下命令安装 rsync:

```bash
sudo yum install rsync
```

2. 创建一个目标备份目录

在本地或者远程服务器上创建一个目标备份目录,用于存储备份文件和增量备份文件。例如:

```bash
mkdir /backups
```

3. 备份 MySQL 数据库

使用以下命令备份 MySQL 数据库:

```bash
mysqldump -u <用户名> -p<密码> --databases <数据库名> > /backups/backup.sql
```

该命令将备份一个 MySQL 数据库到 `/backups/backup.sql` 文件中。

4. 进行增量备份

对于增量备份,您可以使用以下命令:

```bash
rsync -avz --delete "/backups/" "/incremental-backups/"
```

该命令会将源目录 `/backups` 中的所有文件和子目录同步到目标目录 `/incremental-backups` 中。在第一次执行该命令时,它将复制所有文件。但是,在后续的执行中,它将仅传输更改了的文件和目录,从而减少传输量和时间。

5. 设置定期自动化备份

您可以使用 crontab 来定期执行备份和增量备份任务。例如,下面的配置文件将每隔 30 分钟将 MySQL 数据库备份到目录 `/backups` 中,每天晚上 11 点执行增量备份:

```bash
*/30 * * * * /usr/bin/mysqldump -u <用户名> -p<密码> --databases <数据库名> > /backups/backup_`date +"\%Y\%m\%d_\%H\%M\%S"`.sql
0 23 * * * rsync -avz --delete "/backups/" "/incremental-backups/"
```

这将自动在每天的晚上 11 点运行增量备份任务,并将所有增量备份文件保存到 `/incremental-backups` 目录中。

方案二:使用 Percona XtraBackup 工具进行 MySQL 数据库备份

Percona XtraBackup 是一个备份和恢复 MySQL 数据库的工具,支持增量备份和压缩备份。使用 Percona XtraBackup 工具,对于大型的 MySQL 数据库备份,可以大大降低备份时间和备份文件大小。下面是备份 MySQL 数据库的步骤:

1. 安装 Percona XtraBackup

对于 CentOS,可以使用以下命令安装 Percona XtraBackup:

```bash
sudo yum install percona-xtrabackup-80
```

2. 创建一个目标备份目录

在本地或者远程服务器上创建一个目标备份目录,用于存储备份文件和增量备份文件。例如:

```bash
mkdir /backups
```

3. 备份 MySQL 数据库

使用以下命令备份 MySQL 数据库:

```bash
xtrabackup --backup --user=<用户名> --password=<密码> --target-dir=/backups/
```

该命令将备份一个 MySQL 数据库到 `/backups` 目录中。

4. 进行增量备份

对于增量备份,您可以使用以下命令:

```bash
xtrabackup --backup --user=<用户名> --password=<密码> --target-dir=/incremental-backups/ --incremental-basedir=/backups/
```

该命令将在 `/incremental-backups` 目录中增量备份 `/backups` 目录中的备份文件。

5. 设置定期自动化备份

您可以使用 crontab 来定期执行备份和增量备份任务。例如,下面的配置文件将每隔 30 分钟将 MySQL 数据库备份到目录 `/backups` 中,每天晚上 11 点执行增量备份:

```bash
*/30 * * * * xtrabackup --backup --user=<用户名> --password=<密码> --target-dir=/backups/`date +"\%Y\%m\%d_\%H\%M\%S"`
0 23 * * * xtrabackup --backup --user=<用户名> --password=<密码> --target-dir=/incremental-backups/`date +"\%Y\%m\%d_\%H\%M\%S"` --incremental-basedir=/backups/latest
ln -s /incremental-backups/`ls /incremental-backups | tail -1` /backups/latest
```

这将自动在每天的晚上 11 点运行增量备份任务,并将所有增量备份文件保存到 `/incremental-backups` 目录中。因为 Percona XtraBackup 工具不支持自动更新 latest 目录,我们需要使用一个符号链接来手动更新增量备份。最后一行命令可以将最新的增量备份文件链接到 `/backups/latest` 目录,以便您在恢复 MySQL 数据库时更容易找到最新的备份文件。

  • 抱歉,暂无相关文章。

暂无评论

写评论