达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。DM8可以提供数据或整个服务器的冷/热备份以及对应的还原功能,达到数据库保护和迁移。支持的备份类型包括物理备份、逻辑备份可实现全库、表空间、B树3个级别的备份。支持增量备份,支持以检查点进行还原。
达梦数据库作为国产数据库中的佼佼者,目前已广泛应用于我国各大领域,如国有银行、电网公司、互联网大厂,在系统软硬件自主可控上作出了极大地贡献。本人目前从事电力生产行业,负责电力监控系统的建设及运维工作。目前我们所用的电力监控系统国产化率不足10%,服务器、数据库、操作系统等均采自国外,较低的国产化率、制约了我们系统运维的水平。目前我们正在开展系统更新迭代,调度自动化系统将升级为南瑞科技D5000型系统,为提升系统自主可控水平,我们采购了凝思操作系统、达梦数据库作为我们基础软件部分。系统迭代的过程中,达梦数据库对于ORACLE数据库的兼容能力逐步体现,异数据库数据迁移工具对我们电力监控系统数据的迁移起到了关键作用,不够在数据迁移中,也遇到一些问题,下面也浅谈一下我的解决方案。
1、迁移后发现有一些存储包缺失
解决方案:数据迁移工具目前存在不够完善的地方,如oracle的类与达梦的类命名定义存在差异,在迁移的过程中不会在日志报错里体现,需人工处理,并反复核查。
2、regexp系统函数提示“参数不兼容”
解决方案:达梦的regexp系统函数的参数名与oracle的不一样,如果原来在oracle指定了参数名,搬到达梦编译时容易出现这个错,需改为非显示命名函数参数。
3、达梦对于重载(覆盖)支持不太好
解决方案:oracle里面两个同名函数,参数一样,只是一个是IN类型参数 ,一个是IN OUT参数,是被认为是两个不同类型的函数,可以正常重载。但达梦认为是同一个函数,编译时会出错。解决办法是把其中一个改名。另外,oracle里面varchar2(64),varchar2(1024)是两种不同的类型,可以支持重载两个函数,参数为这两种类型,但在达梦不支持。oracle里面同名的CONSTANT变量定义,后出现的会覆盖先出现的。但在达梦里面不支持。提示“错误号: -2120 无效的变量名”。