Doris进阶——数据备份与恢复

Doris官网:Doris_Backup

Backup

Backup是将指定的表数据或者指定分区的数据以Doris的文件存储格式上传到远端仓库中,实现数据的备份。

备份原理:

当提交一个Backup任务后,会对指定表的数据或者表分区数据进行快照,相当于对当前文件进行一个硬链,快照后的对表的任何操作都不会影响快照的结果,最后由BE进行上传到远端仓库。当文件上传完成后,FE会将对应的元数据信息先写到本地,然后再通过broker的方式将元数据信息进行上传。

恢复原理:

提交Restore任务后,会根据指定的仓库以及snapshot的名称以及时间版本来确定需要恢复的文件,然后会创建对应的元数据,创建结构分区一致的表。然后会将创建的表进行一个快照,为了在Backed上产生对应的目录,用于接收从远端仓库下载的快照文件(由BE并发完成),最后下载完成后将这些快照映射为本地表的元数据,最后完成备份恢复。

注意:

  • 备份恢复相关操作只允许ADMIN权限用户进行操作。
  • 一个数据库中只允许由一个备份或恢复的任务。
  • 数据量特别大时,可以通过来进行备份
  • 合理规划分桶数量,Tablet过多会直接影响到备份的时效性
  • 尽量不使用覆盖的方式恢复数据

备份示例:

-- 首先创建仓库
CREATE REPOSITORY `stu_snapshot` -- 仓库名
        WITH BROKER `broker_name` -- broker名
        ON LOCATION "hdfs://test01:8020/doris-out" -- 指定仓库路径
        PROPERTIES
        (
            "username" = "",
            "password" = ""
        );

-- 创建备份任务

BACKUP SNAPSHOT test.stu_snapshot_test -- 库名和备份任务名
  TO `stu_snapshot` -- 远端仓库名
  ON  (
      `students`  -- 表名,可以指定分区(数据量太大建议通过分区进行备份)
  );
  • 通过HELP  BACKUP; 或者Doris官网查看更详细内容
  • 查看Backup 任务的状态 :SHOW BACKUP
  • Doris进阶——数据备份与恢复_第1张图片
  • 查看仓库中的备份:SHOW SNAPSHOT ON 仓库名 
  • Doris进阶——数据备份与恢复_第2张图片
  •  指定查询仓库中的snapshot : SHOW SNAPSHOT ON 仓库名 WHERE = "snapshot_name"
  • 取消备份:
    • CANCEL BACKUP FROM Database_name;

恢复示例:

RESTORE SNAPSHOT test.`stu_snapshot_test` -- 指定数据库名和备份名
FROM `stu_snapshot` -- 远端仓库名
ON ( `students` AS `snapshot_stu`  ) -- 表名,通过AS可以修改表名
PROPERTIES
(
    "replication_num" = "1", -- 副本数
    "backup_timestamp"= "2022-06-24-05-00-14" -- 对应时间
);
  • 查看恢复任务:SHOW RESTORE [ FROM DB_NAME];
  • Doris进阶——数据备份与恢复_第3张图片

删除远端仓库DROP REPOSITORY 'repository_name'

 Mysqldump导出备份:

Doris1.0支持mysqldump工具导出表结构和数据。

  • 导出test数据库中的students表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test --tables students > students2.sql
  • 导出test数据库中的students表结构:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test --tables students  --no-data > students2.sql
  • 导出test库中所有的表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --databases test
  • 导出所有数据库和表:mysqldump -h127.0.0.1 -P 9030 -uroot --no-tablespaces --all-databases
  • 导出的sql文件可以source命令导入Doris中

你可能感兴趣的:(Doris,笔记,大数据,big,data,数据仓库,database,sql)