一、问题一
处理方法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默认是会识别到字符结尾的空格,达梦默认会截断字符结尾的空格。
解决该报错的方法为,初始化实例的时候图形化勾选“空格填充”,命令行添加BLANK_PAD_MODE=1。
三、问题三
DM7的JDBC驱动连接DM8数据库或者DM8的JDBC驱动连接DM7数据库导致数据库core
主要原因是DM7的jdbc驱动消息发送和DM8服务器消息解析的格式不一致导致的。
处理办法就是使用数据库包中自带的驱动
目录在…/…/driver/jdbc下
四、问题四
初始化SSL环境失败
数据库环境(安全版)
1、应用服务器disql连接数据库报初始化SSL环境失败。
解决办法:
dm安全版中默认开启了ssl加密,需要关闭
SQL> sp_set_para_value(2,‘ENABLE_ENCRYPT’,0);
执行完之后需要重启数据库才能生效。
五、问题五
backup database;
备份时报错第一行附近出现错误:缺少本地归档!
该问题是数据库未配置归档导致无法备份。
alter database mount;
alter DATABASE ARCHIVELOG;
alter database add archivelog ‘TYPE=local,DEST=/dm8/data/DM01/arch,FILE_SIZE=2048,SPACE_LIMIT=102400’;
alter database open;
执行完语句再次备份即可;
六、问题六
执行./disql 用户名/密码 报错“找不到动态库文件”
原因达梦主目录bin没有加入到当前用户环境变量中
解决方法:
执行cd进入当前用户家目录,编辑.bash_profile文件,找到LD_LIBRARY_PATH变量,确保其变量值包含达梦主目录bin,然后保存文件编辑,执行./source .bash_profile使得环境变量生效即可。
七、问题七
备份时提示
-7105管道连接超时
检查dmap服务是否启动
ps -ef|grep dma
如果没有启动
在数据库的bin目录下
执行./DmAPService start
如果启动失败
在数据库的bin目录下删除如下图圈起来的两个文件
删除完成再次启动即可
八、问题八
配置主备报错“[-720]:守护进程处于活动状态,或当前配置不允许该操作.”,守护进程已经处于关闭状态
解决方法:SP_SET_PARA_VALUE(1, ‘ALTER_MODE_STATUS’, 1);
九、问题九
管理工具manager突然无法打开
可以试试清理缓存来解决
dmdbms\tool\configuration,把里面的除config.ini和org.eclipse.equinox.simpleconfigurator的其他目录删掉。
dmdbms\tool\workspace,把里面的除local的其它目录删掉。
十、问题十
回滚记录版本太旧,无法获取用户记录
执行查询时间长的sql有时会报这个问题
select * from v$dm_ini where para_name LIKE ‘UNDO_RETENTION’
查询此值的大小
适当的调整
sp_set_para_value(1,‘UNDO_RETENTION’,1800);