用友案例财务客户系统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增量迁移的方式减少了应用人员迁移业务数据的复杂度、节省迁移时间,最终缩短了业务的停机时间
更多技术信息请查看云掣官网
用友案例财务客户系统NC(数据库节点阿里系统数据)
(图片来源网络,侵删)

联系我们

在线咨询:点击这里给我发消息