doris快照备份和恢复

环境:
OS:Centos 7
doris:4.0.8

 

说明:

删除快照需要在minio端进行删除,doris侧没有delete和drop的命令 

 

######################################################备份######################################

1.部署minio
通过web界面创建
http://192.168.12.87:9001/browser

创建备份桶:doris-backup-bucket

image

 

2.创建备份仓库

/opt/mysql5744/bin/mysql -uroot -P9030 -h 192.168.1.134 -pmysql

CREATE REPOSITORY doris_minio_backup
WITH S3
ON LOCATION "s3://doris-backup-bucket/snapshots"
PROPERTIES (
    "s3.endpoint" = "http://192.168.12.87:9000",
    "s3.access_key" = "admin",
    "s3.secret_key" = "admin@123",
    "s3.region" = "us-east-1",
    "s3.use_path_style" = "true"
);

参数说明:
"s3.region" = "us-east-1" ##MinIO 本身不校验 region,随便填一个字符串就行,Doris 的 S3 协议参数必填,不能删掉
"s3.use_path_style" = "true" ##自建 MinIO 必加

 

mysql> CREATE REPOSITORY doris_minio_backup
    -> WITH S3
    -> ON LOCATION "s3://doris-backup-bucket/snapshots"
    -> PROPERTIES (
    ->     "s3.endpoint" = "http://192.168.12.87:9000",
    ->     "s3.access_key" = "admin",
    ->     "s3.secret_key" = "admin@123",
    ->     "s3.region" = "us-east-1",
    ->     "s3.use_path_style" = "true"
    -> );
Query OK, 0 rows affected (5.70 sec)

 

3.查看

mysql> SHOW REPOSITORIES;
+---------------+--------------------+---------------------+------------+------------------------------------+--------+------+--------+
| RepoId        | RepoName           | CreateTime          | IsReadOnly | Location                           | Broker | Type | ErrMsg |
+---------------+--------------------+---------------------+------------+------------------------------------+--------+------+--------+
| 1792653460032 | doris_minio_backup | 2026-10-26 13:39:26 | false      | s3://doris-backup-bucket/snapshots | -      | S3   | NULL   |
+---------------+--------------------+---------------------+------------+------------------------------------+--------+------+--------+
1 row in set (0.00 sec)

 

4.备份表

USE db_test;
BACKUP SNAPSHOT snap_tb_hxl_20261026
TO doris_minio_backup
ON (tb_hxl);


mysql> USE db_test;
mysql> BACKUP SNAPSHOT snap_tb_hxl_20261026
    -> TO doris_minio_backup
    -> ON (tb_hxl);
Query OK, 0 rows affected (0.35 sec)

 

5.查看备份进度

mysql> use db_test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SHOW BACKUP;
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
| JobId         | SnapshotName         | DbName  | State    | BackupObjs       | CreateTime          | SnapshotFinishedTime | UploadFinishedTime  | FinishedTime        | UnfinishedTasks | Progress | TaskErrMsg | Status | Timeout |
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
| 1792653460033 | snap_tb_hxl_20261026 | db_test | FINISHED | [db_test.tb_hxl] | 2026-10-26 13:41:22 | 2026-10-26 13:41:28  | 2026-10-26 13:41:40 | 2026-10-26 13:41:46 |                 |          |            | [OK]   | 86400   |
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
1 row in set (0.00 sec)

 

6.登录minio查看备份文件
web界面登录

http://192.168.12.87:9001/browser/doris-backup-bucket

image

 

 

 ######################################恢复####################################

1.模拟删除刚才备份的表

/opt/mysql5744/bin/mysql -uroot -P9030 -h 192.168.1.134 -pmysql

mysql> use db_test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_hxl            |
| tb_test           |
| tb_test01         |
+-------------------+
3 rows in set (0.00 sec)

mysql> drop table tb_hxl;
Query OK, 0 rows affected (0.06 sec)

 

2.重备份中进行恢复
-- 查看备份任务进度

mysql> use db_test;
mysql> show backup;
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
| JobId         | SnapshotName         | DbName  | State    | BackupObjs       | CreateTime          | SnapshotFinishedTime | UploadFinishedTime  | FinishedTime        | UnfinishedTasks | Progress | TaskErrMsg | Status | Timeout |
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
| 1792653460033 | snap_tb_hxl_20261026 | db_test | FINISHED | [db_test.tb_hxl] | 2026-10-26 13:41:22 | 2026-10-26 13:41:28  | 2026-10-26 13:41:40 | 2026-10-26 13:41:46 |                 |          |            | [OK]   | 86400   |
+---------------+----------------------+---------+----------+------------------+---------------------+----------------------+---------------------+---------------------+-----------------+----------+------------+--------+---------+
1 row in set (0.00 sec)

 

-- 查看MinIO仓库里面所有快照列表(连通MinIO拉取)

mysql> use db_test;
mysql> show snapshot on doris_minio_backup;
+----------------------+---------------------+--------+
| Snapshot             | Timestamp           | Status |
+----------------------+---------------------+--------+
| snap_tb_hxl_20261026 | 2026-10-26-13-41-22 | OK     |
+----------------------+---------------------+--------+
1 row in set (0.60 sec)

 

-- 恢复快照
表结构已经存在或是表不存在都可以进行恢复

USE db_test;
RESTORE SNAPSHOT snap_tb_hxl_20261026
FROM doris_minio_backup
ON (tb_hxl)
PROPERTIES (
    "backup_timestamp"="2026-10-26-13-41-22",
    "replication_num"="3"
);

mysql> RESTORE SNAPSHOT snap_tb_hxl_20261026
    -> FROM doris_minio_backup
    -> ON (tb_hxl)
    -> PROPERTIES (
    ->     "backup_timestamp"="2026-10-26-13-41-22",
    ->     "replication_num"="3"
    -> );
Query OK, 0 rows affected (0.79 sec)

 

查看恢复进度
mysql> show restore;

 

查看表恢复情况

mysql> show tables;
+-------------------+
| Tables_in_db_test |
+-------------------+
| tb_hxl            |
| tb_test           |
| tb_test01         |
+-------------------+
3 rows in set (0.00 sec)

mysql> select count(1) from tb_hxl;
+----------+
| count(1) |
+----------+
|  1000000 |
+----------+
1 row in set (3.02 sec)

 

#######################################其他备份方式###########################

1.备份整个库

USE db_test;
BACKUP SNAPSHOT db_test_full_20261026
TO doris_minio_backup;

mysql> BACKUP SNAPSHOT db_test_full_20261026
    -> TO doris_minio_backup;
Query OK, 0 rows affected (0.28 sec)

 

2.备份多个表

USE db_test;
BACKUP SNAPSHOT multi_table_20261026
TO doris_minio_backup
ON (tb_hxl, tb_test);

 

posted @ 2026-10-26 14:30  slnngk  阅读(19)  评论(0)    收藏  举报