客户案例|用友NC财务系统上云

本文分享一次成功将用友NC财务系统上云的经验,主要涉及阿里云上Oracle ASM存储扩容,阿里云ESC RAC服务器扩容,阿里云上Oracle RAC数据库迁移等相关技术,一起来看看吧!

1 客户数据库上云背景

本次项目我司主要负责客户Oracle RAC数据库迁移,应用系统由客户专门的团队负责。系统始建于2017年,根据企业集团战略规划,所有业务系统全部上云,财务NC自然不可避免。

云下财务数据库基于Linux x86 64位环境构建,采用了Oracle 11g RAC集群数据库架构,64C128G配置,数据量超过1T。

客户原计划找我们在阿里云上搭建一套新的RAC,通过物理备份RMAN迁移的方式上云。但是考虑到成本,客户计划使用逻辑迁移的方式将数据库导入到现有的一套云上RAC中。原先那套业务系统的RAC也由我司搭建和运维,配置为16C64G,数据量100G左右。

2 上云方案

我司作为技术专家给到客户建议:

1)复用原有的云上 RAC环境,不需要购买新的服务器。

2)云上RAC扩容。新购买NC财务的共享数据盘1.5T,归档盘0.5T,两套服务器升配到64C128G;

3)评估停机时间。若采用逻辑导入迁移,加上与周边业务系统调试、参数修改,总共需要2天停机时间,业务不能承受这么长的停机时间。因此改为使用RMAN迁移,在扩容后的RAC环境下新建一套数据库,采用RMAN增量迁移方式,数据库割接时间几乎为0,其他都是应用调整时间,由原先的两天时间缩短为几个小时;

4)建议使用2次迁移的方式,提前1周做好一次数据库迁移,基于云上数据库环境调整好应用,测试应用可用性,更能缩短第二次正式迁移的应用调整时间。

最终云上架构如下:
在这里插入图片描述
进行详细评审后,客户最终采用了我司提出的整体迁移实施方案。

3 实施过程

下面是具体的实施过程:

(1)共享磁盘扩容
阿里云控制台上购买ESSD共享磁盘,分别挂载到两个ECS上后,用udev方式添加ASM磁盘,原业务系统的数据盘是DATA,归档盘是ARCH。新建磁盘名为NCDATA和NCARCH,用于存放新的NC系统数据。

(2)ECS升配
ECS升配在阿里云控制台操作,要停机重启。客户的业务系统很重要,不能随意停业。RAC架构的优势就出现出来了,通过逐台升配,可以保证业务不停。

整个升配过程如下:

1)节点1,停数据库,停CRS;

2)节点1 ECS控制台上停机,升配选择64C256G配置(64C128G配置阿里云该可用区已售罄)。节点1 ECS停机时,VIP、SCAN IP自动漂移到节点2,因此业务也自动切换到了节点2。

3)启动节点1,用crsctl check crs和crsctl stat res -t 检测到集群启动后,启动实例1数据库实例,crsctl stat res -t检查资源正常,节点1升配完成。

然后在节点2重复节点1的升配过程即可。

(3)迁移验证
1)参数文件很重要,原库的配置文件通过create pfile导出,修改关键的配置参数以适合新的环境。注意涉及到目录的、注意涉及到scan ip的、注意cluster databae要改成false等等。

2)备份数据上云。将前一天的备份文件传到云上,备份文件有1T的数据,所用数据通过专线传了4个多小时才完成,这也是迁移过程中最耗时的一个步骤。

3)数据库恢复。在节点1上操作,需要注意ORACLE_SID。因为RAC环境中有1套生产库,操作时务必再三确认清楚操作对象。先建spfile文件,同时要建好初始文件中涉及到文件系统和ASM存储下的目录结构。然后nomount下恢复控制文件,mount下restore database,然后recover database,然后open resetlogs等等,都是常规操作。restore database脚本务必要改新的asm存储数据目录,否则就恢复到原生产库的data目录上了,比如“set newname for datafile 1 to '+NCDATA/orcl/datafile/system.dbf’;”所有数据文件和临时文件统统要改。再说一遍有生产库在,restore是高危操作,务必检查sid环境和restore脚本。

4)将数据库添加到RAC集群。修改cluster databae参数为true,用srvctl 加下数据库,宕下单库后srvctl start database -d nccdb -o open启动,crsct stat查看实例就有了。

交付给应用测试,数据库完工,一路下来,有惊无险。4通道数据库恢复用了不到2小时,瓶颈在NAS数据读取(备份介质在NAS上)。阿里的ESSD共享存储性能很高。

(4)正式迁移
初次迁移验证了整个迁移方案的可行性,同时也验证了应用系统上云后的功能。正式迁移时,因为第一次迁移后参数文件都在,就相对简单点。

同样在节点1上操作,确保sid已经设置为nccdb1。

1) 删掉第一次迁移恢复的数据库。也可以删除,第二次恢复时会覆盖。删除过程如下,删RAC库要注意几点

a) 环境变量,sid不要搞错了,务必再三确认;

b) 修改cluster_database=FALSE;

c) 停库srvctl stop database -d nccdb,两节点都停掉;

d) 确认instance_name后drop database;

e) srvctl remove database -d nccdb删除该库的集群信息。第5步可以不执行。

2)修改spfile参数cluster_database=FALSE后,检查ASM目录结构,nccdb的是否存在,不存在需要重建;

3)启动数据库到nomount状态恢复控制文件后, restore databse,recover database追归档,最后open resetlogs等等,一路顺利。

4)修改spfile参数cluster_database=true后,shutdown单库,srvctl start database -d nccdb -o open启动,检查集群资源,新数据库存在,检查日志正常。最后别忘了更换临时文件,迁移后原临时文件会失效。

至此,用友NC财务系统 上阿里云oracle RAC完成。

4、本次上云的价值

1)、实现了阿里云上RAC架构下承载多个数据库的案例,为客户节省了云资源成本;

2)、技术上解决了客户不能接受的停机时间,用RMAN增量迁移的方式减少了应用人员迁移业务数据的复杂度、节省迁移时间,最终缩短了业务的停机时间。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

  • 44
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用友NC是一款非常常用的企业管理软件,通过二次开发可以对其进行定制和扩展,满足企业个性化的需求。 使用用友NC进行二次开发需要一些基础知识和技能。首先,需要具备Java编程基础,使用Java语言进行开发。其次,需要了解用友NC的架构和开发框架,包括模块化设计、基础数据结构和常用开发接口等。还需要掌握用友NC数据库结构和相关开发工具,如Eclipse集成开发环境和用友NC Studio开发工具。 学习用友NC的二次开发,可以通过以下几个步骤实施: 1. 学习用友NC的基础知识:了解用友NC的功能和模块,掌握其基本操作和基础数据结构,为后续的开发做好准备。 2. 学习Java编程:掌握Java语言的基础知识和面向对象编程的概念,了解Java开发框架和相关工具,包括JDK、Eclipse等。 3. 学习用友NC的开发框架:深入学习用友NC的开发框架,了解其模块化设计和常用开发接口,掌握二次开发的基本原理和方法。 4. 实践开发项目:通过实际开发项目,锻炼自己的开发能力和解决问题的能力,掌握用友NC的二次开发技术和实践经验。 5. 持续学习和提升:用友NC的二次开发属于持续学习的过程,需要不断更新知识和技能,关注用友NC的新功能和技术,与同行交流经验和分享成果。 总之,用友NC的二次开发是一项具有挑战性的任务,但是通过学习和实践,可以掌握其开发技术和方法,为企业定制和扩展用友NC,提高企业管理效率和精确度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值