客户案例|用友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

最近更新

  1. TCP协议是安全的吗?

    2024-03-10 00:34:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-10 00:34:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-10 00:34:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-10 00:34:02       20 阅读

热门阅读

  1. test02

    2024-03-10 00:34:02       22 阅读
  2. c 不同类型指针的转换

    2024-03-10 00:34:02       21 阅读
  3. 【数论】欧拉筛

    2024-03-10 00:34:02       22 阅读
  4. 贪心算法介绍

    2024-03-10 00:34:02       20 阅读
  5. EDA 许可证调度

    2024-03-10 00:34:02       23 阅读
  6. ArrayList和linkedList的区别精简概述

    2024-03-10 00:34:02       25 阅读
  7. 安全防范之警惕钓鱼邮件

    2024-03-10 00:34:02       21 阅读
  8. 2024年,程序员如何破局?

    2024-03-10 00:34:02       24 阅读
  9. SQL基础知识复习及示例语句

    2024-03-10 00:34:02       21 阅读
  10. vue3+vite

    2024-03-10 00:34:02       18 阅读
  11. python深拷贝和浅拷贝

    2024-03-10 00:34:02       24 阅读