文档中心MogDBMogDB StackUqbar
v5.0

文档:v5.0

支持的版本:

其他版本:

逻辑备份恢复效率增强

可获得性

本特性自MogDB 5.0.6版本开始引入。

特性简介

本特性提升了逻辑备份和恢复的效率,支持逻辑备份在导出文件格式为目录(-F, --format=d)的场景下并行执行,同时支持对目录格式的导出文件执行并行导入。

客户价值

满足在数据量大的场景下客户对备份效率的要求,为数据库用户节省时间和空间成本,并行导入导出效率提升表现优异,最优场景下分别有4~10倍的提升。

特性描述

gs_dump工具新增-j, --jobs=NUM参数,支持在导出文件格式为目录的场景下执行表间并行数据导出,指定执行备份任务的worker数量,实现备份数据导出效率提升。

gs_restore工具支持对导出文件格式为目录和自定义归档格式(.dmp)的文件执行并行导入,实现备份数据导入效率提升。

此外,本特性支持通过对单表数据分片,并行执行每个分片的数据导入/导出;MogDB 5.0.8开始支持通过对分区表的每个分区进行分组,并行执行每个分组中的每个分区数据导入/导出,实现备份效率提升。

说明:

  • -j/--jobs参数指定为1相当于关闭并行导出/导入功能。
  • worker指执行备份导入/导出的进程。
  • 并行导入导出会根据不同并行度相应提高MogDB的CPU使用率,导致机器负载升高。

特性约束

  • 单表分片并行导出和分区表分组并行导出仅适用于1G以上的大表。

  • 只有并行导出的单表可以并行导入(gs_dump和gs_restore的-j参数需要配合使用,参数值必须大于1)。例如:

    gs_dump -f backupdir/dir_bdat postgres -F d -j 4 -t <表名>
    gs_restore backupdir/dir_bdat -d postgres -j 4 -t <表名>
  • 使用gs_dump工具时若指定了--inserts/--column-inserts参数,则无法进行单表并行导出。

示例

-- 指定导出并行worker的数量为4
-- 方式一:
gs_dump -f backupdir/dir_bdat postgres -F d -j 4
-- 方式二:
gs_dump -f backupdir/dir_bdat postgres -F d --jobs=4

-- 指定导入并行worker的数量为4
-- 方式一:
gs_restore backupdir/dir_bdat -d postgres -j 4
-- 方式二:
gs_restore backupdir/dir_bdat -d postgres --jobs=4

性能测试

性能测试共7组,分别是:

  1. 标准TPCC数据集并行导出导入
  2. 标准TPCH数据集并行导出导入
  3. 1000个小表并行导出导入
  4. 大单表并行导出导入
  5. 17GB分区大表并行导出导入
  6. 51GB分区大表并行导出导入
  7. 103GB分区大表并行导出导入

1. 标准TPCC数据集并行导出导入

导出:

1

导入:

2

2. 标准TPCH数据集并行导出导入

导出:

3

导入:

4

3. 1000个小表并行导出导入

导出:

5

导入:

6

4. 大单表并行并行导出导入

导出:

7

导入:

8

1-4组结果分析

gs_dump

  • 表数量很多和单个大表的情况下均表现优越

  • TPCC数据集导出效率提升至原先的12.5倍,TPCH可提升7.1倍,1000张小表时并行可提升7.9倍,普通大表并行至多可提升6.3~7.9倍

  • 并行度为8~20之间表现最优,继续提高并行度不会进一步增加导出效率,导出时MogDB的CPU使用率与并发数成正比

gs_restore

  • 表数量较多时或只有单表时在目录格式表现优越,dmp格式由于无法使用gs_dump拆分数据并行提升效果比较有限,但是大量小表的场景依然表现优越

  • 目录格式TPCC数据集导入性能至多可以提升至原先的3.1倍,TPCH可提升2倍,1000张小表时并行可提升3.8倍,普通大表并行至多可提升5.5倍

  • dmp格式TPCC数据集导入性能至多可以提升至原先的1.5倍,TPCH可提升1.2倍,1000张小表时并行可提升3.8倍,普通大表由于gs_dump无法拆分无提升效果

  • 并行度为10~20之间表现最优,继续提高并行度不会进一步增加导入效率,导出时MogDB的CPU使用率与并发数成正比

5. 17GB分区大表并行导出导入

导出:

9

导入:

10

6. 51GB分区大表并行导出导入

导出:

11

导入:

12

7. 103GB分区大表并行导出导入

导出:

13

导入:

14

5-7组结果分析

针对103GB的分区大表,相比于串行导入导出,并行度设置为2、4、8时的性能(导入导出时间)分别提升了1倍、3倍、7倍。

由此可见,随着并行度的增加,对分区大表进行并行导出和导入的性能提高达到预期,17GB的分区表、51GB的分区表和103GB的分区表并发线性扩展基本一致。

相关页面

gs_dumpgs_restore

Copyright © 2011-2024 www.enmotech.com All rights reserved.