达梦与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秒。
作者:花果山有猴子
出处:https://www.cnblogs.com/huzei/
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平有限,不足和错误之处在所难免,希望大家能够批评指出。
以上是 达梦与Oracle逻辑备份与还原性能对比 的全部内容, 来源链接: utcz.com/z/536173.html