达梦与Oracle逻辑备份与还原性能对比

本文对逻辑备份进行学习与测试,并选取个别场景对达梦与Oracle进行对比测试。

一、测试环境

(一)达梦

 

系统平台

操作系统

配置

逻辑CPU个数

VMware

REDHAT6.8

Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz

MemTotal:       8061104kB

4

 
 

数据库

软件信息

达梦

DM 数据库管理系统:DM Database Server x64  V7.1.5.158-Build ENT

(二)Oracle

系统平台

操作系统

配置

逻辑CPU个数

VMware

REDHAT6.8

Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40GHz

MemTotal:       8061104kB

4

 

数据库

软件信息

Oracle

Oracle数据库管理系统:Release 11.2.0.4.0 Production

二、备份方式对比

逻辑/物理备份方式对比表

 

逻辑备份

物理备份

原理

逻辑导出数据

物理块拷贝

数据保护级别

只是备份时间点数据库数据。

不只备份时间点数据库数据,可以通过归档日志进行任意时刻数据恢复(归档覆盖时间范围)。

故障恢复时间(同恢复粒度)

相对较慢

相对较快

数据恢复粒度

表、用户、模式、全库

表、表空间、全库

优势

针对表、用户、数据库进行备份恢复,能够跨平台、跨版本进行数据恢复,无需开启归档。

备份恢复范围更广、更为精确,可恢复到任意时间点数据(归档覆盖范围内)。数据库迁移场景可极大缩减停机窗口。

劣势

恢复时间较长且恢复数据时间点固定。数据库迁移场景停机窗口较长。

操作相对复杂,前提需开启归档模式。数据恢复粒度相对较粗。对源环境与目标环境匹配度要求较高。

三、逻辑备份与恢复

(一)逻辑备份

1、参数及注意事项

参数及默认值内容详见官方手册。在此只列出部分带有默认值的参数作为强化记忆。并对注意事项进行备注说明。

参数

参数含义

默认值

FULL

是否导出整个数据库

N

FUZZY_MATCH

TABLES选项是否支持模糊匹配

N

CONSTRAINTS

是否导出约束

Y

TABLESPACE

导出的对象定义是否包含表空间

N

GRANTS

是否导出权限

Y

INDEXES

是否导出索引

Y

TRIGGERS

是否导出触发器

Y

ROWS

是否导出数据行

Y

NOLOGFILE

不使用日志文件

N

NOLOG

屏幕上不显示日志信息

N

LOG_WRITE

日志信息实时写入文件

N

COMPRESS

是否压缩导出数据文件

N

ENCRYPT

导出数据是否加密

N

DROP

导出后删除原表,但不级联删除

N

LOCAL

MPP环境使用MPP_LOCAL登录

N

参数注意事项:

  • TABLESPACE参数可解决数据恢复更换表空间的问题(可对比Oracle的REMAP_TABLESPACE参数),在做数据备份时需要提前为数据恢复做考虑。
  • COMPRESS参数可对备份数据进行压缩以节省备份空间,但要注意开启压缩后,无论数据备份还是数据恢复速度都会变慢。
  • PWD密码中带有特殊字符(/,@.:等),需要外加三层双引号("""""")进行转义。
  • FILE和LOG中指定的路径,优先级高于DIRECTORY中指定的路径。如果都没有指定路径,则使用系统当前路径。
  • 对象(CONSTRAINTS、GRANTS、INDEXES、TRIGGERS、ROWS)分别单独设置,和EXCLUDE/INCLUDE中批量设置功能一样。如果单独设置和批量同时出现时,以最后出现的为准。
  • 对于导出单个文件过大的情况,可使用FILESIZE限制单个文件上限,同时配合FILE参数中的%u来自动扩展文件名,配合FILENUM控制文件个数。
  • 对于命令过于复杂,长度过长的可使用PARFILE进行命令封装。

2、备份测试

2.1、测试案例1-导出schemas

  • 构造测试用例:

 

  • 备份schemas
dxep xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1.dmp log=exp.test1.log schemas=test1

2.2、测试用例2-导出tables,并使用query过滤age小于20的记录

  • 备份tables:
dexp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_1.dmp log=exp.test1_1.log tables=test1.test query=" WHERE AGE<20"

2.3、测试用例3-导出tables,并指定定义表空间为test1data(后续恢复时验证)

  • 备份tables:
dexp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_2.log tables=test1.test tablespace=Y

(二)逻辑恢复

1、参数及注意事项

参数及默认值内容详见官方手册。在此只列出部分带有默认值的参数作为强化记忆。并对注意事项进行备注说明。

参数

参数含义

默认值

FULL

是否导入整个数据库

N

IGNORE

忽略创建错误

N

FAST_LOAD

是否使用dmfldr进行数据导入

N

GRANTS

是否导入权限

Y

CONSTRAINTS

是否导入约束

Y

INDEXES

是否导入索引

Y

TRIGGERS

是否导入触发器

Y

ROWS

是否导入数据行

Y

NOLOGFILE

不使用日志文件

N

NOLOG

屏幕上不显示日志信息

N

LOG_WRITE

日志信息实时写入文件

N

COMPILE

编译过程、程序包和函数

Y

INDEXFIRST

导入时先创建索引

N

TABLE_FIRST

是否强制导入表

N

LOCAL

MPP环境使用MPP_LOCAL登录

N

参数注意事项:

  • 一般情况下,OWNER和SCHEMAS导入导出是相同的,但是用户可以包含多个模式,在这种情况下SCHEMAS的导入导出是OWNER导入导出的一个子集。
  • 当FAST_LOAE=Y是才可以设置TABLE_PARALLEL参数,否则参数无效。

2、恢复测试

2.1、恢复用例1-将测试用例1恢复至test2模式下

  • 数据恢复:
dimp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1.dmp log=imp_test1.log remap_schema=TEST1:TEST2

查看test所属表空间:可以看到由于备份时未指定tablespace选项,导出test表定义时未包含表空间,直接恢复到test2的默认表空间test2data中。

 

2.2、恢复用例2-将测试用例2恢复到test2模式下

  • 数据恢复:
dimp xxx/xxx@10.100.x.x:5236 directory=/dmdata file=exp.test1_1.dmp log=imp.test1_1.log remap_schema=TEST1:TEST2

查看表数据:可以看到确为age小于20的2条记录。

 

2.3、恢复用例3-将测试用例3恢复到test2模式下

  • 数据恢复:
dimp xxx/xxx@10.100.x.x:5236 directory=dmdata file=exp.test1_2.dmp log=imp.test1_2.log remap_schema=TEST1:TEST2

查看test所属表空间:可以看到由于备份时指定tablespace选项为Y,导出test表定义时包含表空间test1data,恢复时就直接恢复到test1data表空间中。

 

(三)Oracle和达梦数据库逻辑备份对比

将Oracle数据库TEST用户TEST01表迁移至达梦数据库,都执行逻辑备份,对比时间和数据量。 

 

Oracle

达梦

导出数据量(不压缩)

7G

8.5G

导出用时(不压缩)

4分18秒

7分23秒

导出数据量(压缩)

1.4G

1.4G

导出用时(压缩)

5分5秒

10分17秒

1、Oracle逻辑备份

  • 导出表信息

  • 导出测试1:不压缩,导出大小为7G,用时4分18秒。
  • 导出测试2:压缩,导出大小为1.4G,用时5分5秒。

2、达梦逻辑备份

  • 导出表信息

  • 导出测试1:不压缩,导出大小为8.5G,用时7分23秒。
  • 导出测试2:压缩,导出大小为1.4G,用时10分17秒。

 

(四)Oracle和达梦数据库逻辑恢复对比

导入对象为上一小节中导出的TEST用户TEST01表。

 

Oracle

达梦

恢复用时(不压缩)

3分55秒

11分11秒

恢复用时(压缩)

6分16秒

11分10秒

1、Oracle逻辑恢复

  • 导入测试1:不压缩,用时3分55秒。
  • 导入测试2:压缩,用时6分16秒。

2、达梦逻辑恢复

  • 导入测试1:不压缩,用时11分11秒。
  • 导入测试2:压缩,用时11分10秒。
posted @ 2021-12-15 15:42  小丁有只猫  阅读(574)  评论(0编辑  收藏  举报