电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

以实际安排分享星空企业版案例分享遇到Oracle数据库错误时如何排查

来源:金蝶云社区作者:金蝶2024-09-164

以实际安排分享星空企业版案例分享遇到Oracle数据库错误时如何排查

一、  概述

目前星空企业版产品使用ORACLE数据库的项目也非常多,特别针对中型偏大型的项目,由于他们数据量大,对性能各项要求比较高,所以可能更多的这类型的客户会选择ORACLE数据库,大家都很清楚Oracle数据库比SqlServer维护成本高很多,难度大很多,门槛也高很多,但当项目使用Oracle数据库时,需要注意什么呢?如果面对在交付过程中遇到ORACLE 数据库报错时怎么办呢?下面就结合实际项目案例来分享一下使用oracle数据库时需要特别注意的事项及在系统使用过程中如何去甄别是Oracle数据本身的报错呢,并且如何处理这些报错,希望能帮助到更多的项目.

二、  数据库报错背景描述

项目1:

(1)   项目的星空企业版7.1版本使用的数据库为Oracle 11g,但项目上半年做账套拆分后有一个账套使用的12C,项目在做升级为企业版8.1之前,项目将另外一个账套使用的Oracle 11g 也升级为12C。

(2)   在升级为8.1的测试环境中,跑成本时出现Oracle数据库本身的报错,报错信息为:“Message:ORA-06502:  PL/SQL: numeric or value error: character string buffer too small”,具体报错截图如下:

image.webp


(3)   成本因为这个报错中断,在7.1版本当数据库升级为Oracle 12C也出现过,但数据库重启后能解决,但这次升级为星空8.1后多次重启也不能解决这个问题,是星空从7.1升级8.1版本花较长时间解决的问题。

项目2:

(1)   一锻造行业项目使用星空产品,数据库使用的是Oracle 12.1.0.2 版本

(2)   星空在上线过程中,用户反馈使用点击生产模块的一张单据的时候,出现以下错误,从报错来看,非星空企业版产品的报错,确定为数据库报错,报错如下截图:

image.webp

 三、  处理方案

项目1:排查和处理过程

(1)   从错误来看是数据库报错,Oracle维护的人员排查,查不出原因,并提单Oracle数据库 原厂,原厂回复是让从ERP自身排查,因此排查工作落到星空企业版这边负责成本的老师和总部负责Oracle的专家老师一起排查和分析,现场开发人员和客户的DBA协助

(2)   总部成本专业人员从日志初步排查出是余额表:T_HS_Balance在日志中有中断报错,并让现场写一个插件来测,选择中断的SQL 来测,select * from T_HS_Balance,测试发现会重现问题(注意在数据库端直接执行肯定不会重现),因此基本锁定就是这个表存在问题

(3)   排查时还发现如果将这个表的数据转到一个新创建的表,问题也不会出现,因此发现这个表肯定是有比较特殊的处理,包括索引方面的处理等,总部Oracle的专家老师通过多方面排查,并通过现场的二开插件来快速验证的方式来排查问题

(4)   最终发现是由子分区表的相关属性引起,去掉子分区表以后,问题解决,运行这张表时不会报错

(5)   最后发现还不止这个表有问题,存储余额相关的几张表都会有问题,最后把这几张相关余额表的子分区去掉后问题全部解决,这几张表分别为:

T_HS_InivBalance T_HS_InivBalanceExp T_HS_InivBalanceEntry T_HS_InivBalanceExpEntry T_HS_Balance T_HS_BalanceExp T_HS_BalanceEntry T_HS_BalanceExpEntry

项目2:排查和处理过程

(1)   总部负责Oracle的老师凭专业能力很快就定位到时由于没打相关补丁引起

(2)   总部提供需要更新的补丁清单,打完Oracle这个版本相关补丁后,问题解决

四、  oracle数据库安装部署注意事项

1.   操作系统建议使用Linux操作系统,使用windows系统问题多

(1)   Linux系统安全好、性能好、稳定好

(2)   比起其他操作系统,如:AIX、HP、WINDOWS等,ORACLE对LINUX系统的的支持力度最大,补丁最完全

(3)   Linux版本建议选择Oracle Linux,Redhat Linux, Suse Linux,其他版本都没经过认证.

Linux系统安装注意事项

(1)   Linux系统建议版本为:Oracle Linux(7.9)(官网有下载)

(2)   安装Linux时,建议选择使用英文语言,不要用中文,方便后期运维

(3)   Linux 系统安装完成后,如果需要升级的需要先升级,确保系统正常运行后才可以安装数据库

2.    Oracle 数据库版本选择建议

(1)   11.2.0.4或12.1.0.2(暂不推荐12.2、18C、19C及后续版本)

(2)   企业版(标准版不满足需求)

(3)   单节点或 Rac 环境均可,推荐使用 Rac

备注说明:RAC 提供数据库的高可用(双机互备:服务器1宕掉,还有服务器2提供数据库 服务)

3.    Oracle 数据库升级注意事项

 (1)Oracle数据库升级高版本比如ORACLE 12C或者12C以上版本时存在较大的风险,需谨慎,需在测试环境全面验证后才考虑数据库升级

(2)一般给客户的方案中一定要选择星空企业版支持得比较好的版本,如果客户选择高版本时要告诉客户存在的巨大风险,尽量使用星空对Oracle数据库支持比较好的稳定版本。

为什么不要推荐使用12.2.0.1版本呢?

(1)    金蝶云星空产品当前使用的 ODP.NET 驱动,也就是连接应用系统和数据库的接口程序,只在11204,12102版本认证过,高于此范围的,遇上故障的机会会增多

(2)    12.2.0.1,是12.2版本的初始发行版,对比18C(12.2.0.2),还是19C(12203),不论是BUG,还是性能,问题都是最多的,这个版本一般只用于学习、测试,不用于生产.

3.   EM工具的安装

   EM是数据库性能监控、SQL调优的利器,必须得安装它,当出现性能问题时也便于分析和解决问题,当总部专家支持时也需要通过EM工具进行分析,务必创建EM,并启动EM.

EM使用场景如下:

(1)    当系统出现性能问题时,需要分析数据库本身性能情况,查找性能引起的原因

(2)    需要监控SQL 执行情况时,使用EM非常方便,SQL执行情况非常清晰,一目了然

4.    Oracle数据库安装完成后必须得安装补丁

     (1)11.2.0.4 版本的补丁要求

建议打上这些补丁集,及小补丁(后续小补丁可能会有改动)

1)  p28429134_112040_Linux-x86-64.zip -- GI 版本(20181016期,下同)。

p28204707_112040_Linux-x86-64.zip – 单节点。

p28440700_112040_Linux-x86-64.zip -- Ojvm。

2)  12646133,14078947,14275161,16016968,16086769_112041,16311211_11204171017, 17197563,17259786_11204160119(Post),17306264_11204170418,18405192 , 20033247,20048270,20250147,21050285_11204181016。

补丁更新注意事项

1)  打补丁之前,须先阅读补丁自带的 Readme.html(txt)文件,按该文件要求操作。

2)  打完GI或者单节点的PSU补丁集后,再安装OJVM;安装完PSU+OJVM后,再打小补丁, 打小补丁时,需注意补丁版本与PSU版本的匹配度,小补丁的版本,必须是和PSU补丁集 同期,或者最接近PSU补丁期(必须小于PSU补丁期)。

如: 小补丁:21050285_11204181016 和补丁集 p28204707_112040_L

以实际安排分享星空企业版案例分享遇到Oracle数据库错误时如何排查

一、 概述目前星空企业版产品使用ORACLE数据库的项目也非常多,特别针对中型偏大型的项目,由于他们数据量大,对性能各项要求比较高,所...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信