由于当前使用DM8版本存在主备库里同一条查询语句耗时不同,达梦技术反馈需要升级版本,说是升级,其实就是重新一套DM数据库环境(不知道是技术不行,还是只能这样解决),经过5个小时的导出导入,终于还原完毕,开启应用,结果报错
在这里插入图片描述
修改一堆参数,最后没什么卵用;最后失败告终,切回原环境,不影响第二天使用,(搞达梦数据库迁移,最好不要动原环境,如果有问题,哭到找不到地方);
第二天用测试环境应用接入新的达梦数据库,复现问题,最后定位达梦bug
原因:达梦数据库的存储过程恢复后有的时候不生效

执行如下的SQL脚本中的2个SQL语句:
----SQL1: 编译数据库存储过程,触发器,视图对象。请在ecology使用的的用户下执行。

declare
sql_v  varchar(8000);
ex_sql varchar(4000);
begin
        for i in
        (
                select 'alter procedure '||OBJECT_NAME as object_new from USER_PROCEDURES
                union all
                select 'alter trigger '||TRIGGER_NAME from USER_TRIGGERS
                union all
                select 'alter view '||VIEW_NAME from USER_VIEWS
        )      
        loop
         BEGIN
                sql_v:=i.object_new||' compile;';
                -- print(sql_v);
                execute immediate sql_v;
        EXCEPTION
        WHEN OTHERS THEN
                 ex_sql:='insert into ex_table value('||i.object_new||',''00'',''00'');';
                print ex_sql;
        end;
        end loop;
end;

----SQL2: 更新整个数据库的统计信息

CALL SP_DB_STAT_INIT();

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐