[数据库] 数据库问题处理

2447 0
Honkers 2025-3-12 23:01:59 | 显示全部楼层 |阅读模式

一、问题一

处理方法1:
1、修改dm.ini文件中的 PSEG_RECV = 0 跳过回滚段参数 和 PORT_NUM 端口参数(以防止数据库启动以后有应用继续往表中写数据。)重启数据库。
2、启动数据库后按照正常停库的方法进行停库,使用 dmdbchk 工具对数据库中坏表进行查找搜索。
3、启动数据库,找到损坏的表,备份建表语句,更改坏表名称,重新创建此表。(如果有备份或者归档情况下,使用备份和归档对此表进行还原。不能使用原表中的数据进行还原)联系应用厂家进行表数据还原。
4、关闭数据库,改回dm.ini文件中的 PSEG_RECV 和 PORT_NUM 参数。正常启动数据库服务。

处理方法2:(此操作谨慎使用,如果使用无法回头)
1、当跳过回滚段仍然无法启动数据库时。使用 DMmdf 工具查看原rudo日志的 db_magic 魔数值。从新初始化一个新的实例,把新生成的 rudo 日志复制到原文件中,使用DMmdf工具更换为原rudo 的魔数值。启动数据库。

二、问题二

Oracle迁移到DM后报错:违反唯一性约束
解决办法、 一个实际环境上碰到的情况,唯一索引在Oracle上可以创建但是在达梦上不可以,经过对比数据,发现有两行一模一样的数据,一个只是比另一个字符后多了空格,比如:"A "与“A”。oracle默认是会识别到字符结尾的空格,达梦默认会截断字符结尾的空格。
解决该报错的方法为,初始化实例的时候图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行