当前位置: 首页 > news >正文

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

相关文章:

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

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

OceanPen Art AI绘画系统内容讲解

在一个崇高的目标支持下,不停地工作,即使慢,也一定会获得成功。 —— 爱因斯坦 演示站点: ai.oceanpen.art官方论坛: www.jingyuai.com 💡技术栈 前端:VUE3后端:Java数据&#xf…...

类 Unix 系统的文件目录结构

以下是类 Unix 系统的文件目录结构、各个目录主要存放的文件以及缩写的全称的详细说明: 根目录 /: 全称: Root Directory说明:根目录是整个文件系统的起点,包含了所有其他目录和文件。 /bin 目录: 全称: Binary说明&a…...

外部存储器接口(EMIF)

外部存储器接口(EMIF) 该设备支持双核架构;为了为每个CPU子系统提供一个专用的EMIF,该设备支持两个EMIF模块——EMIF1和EMIF2。两个模块完全相同,具有相同的功能集,但具有不同的地址/数据大小。EMIF1在CPU…...

华为认证HCIP报名条件有哪些?考试要求介绍

华为HCIP认证是很多网络工程师的考证首选,尤其对于刚入行不久的网络工程师们来说,这个证书无论是从难度出发还是从含金量出发,都是值得一考的。 那么如果想报名华为HCIP认证有哪些条件以及考试要求,华为HCIP的报名需不需要通过机…...

【Python】变量的引用

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评…...

nextjs13如何进行服务端渲染?

目录 一、创建一个新项目 二、动态获取后端数据进行服务端渲染出现的问题 三、nextjs13如何进行服务端渲染 nextjs13是nextjs的一个重大升级,一些原本在next12当中使用的API在nextjs13上使用十分不便。本文将着重介绍在nextjs13及以上版本当中进行服务端渲染的方…...

Redis-基础篇

Redis是一个开源、高性能、内存键值存储数据库,由 Salvatore Sanfilippo(网名antirez)创建,并在BSD许可下发布。它不仅可以用作缓存系统来加速数据访问,还可以作为持久化的主数据存储系统或消息中间件使用。Redis因其数…...

【好书推荐-第七期】《RTC程序设计:实时音视频权威指南》(音视频开发必看!)

😎 作者介绍:我是程序员洲洲,一个热爱写作的非著名程序员。CSDN全栈优质领域创作者、华为云博客社区云享专家、阿里云博客社区专家博主、前后端开发、人工智能研究生。公粽号:洲与AI。 🎈 本文专栏:本文收录…...

还在犹豫学不学?鸿蒙技术是否有前途的最强信号来了

2024年3月3日 上午10 点,深圳官方账号发布了一篇关于鸿蒙技术发展的重要文章,看到这篇文章后我非常激动,忍不住和大家分享一下! 华为鸿蒙系统自提出以来,网友们的态度各不相同,有嘲笑“安卓套壳”的&#x…...

webpack的plugin 插件教程

Webpack 是一个流行的前端打包工具,通过使用插件(plugin),我们可以对 Webpack 进行扩展和定制,实现更多功能和优化构建过程。在本教程中,我将向你介绍如何编写一个简单的 Webpack 插件,并演示如…...

v72.关于指针操作的补充

1.指针作为函数参数 调用函数时,传递参数的形式决定了是否可以修改这些参数。 传值方式:传递了参数给函数,并且这个参数是基本数据类型,如(int,float),那么函数内对参数的任何操作…...

【学习心得】爬虫JS逆向通解思路

我希望能总结一个涵盖大部分爬虫逆向问题的固定思路,在这个思路框架下可以很高效的进行逆向爬虫开发。目前我仍在总结中,下面的通解思路尚不完善,还望各位读者见谅。 一、第一步:明确反爬手段 反爬手段可以分为几个大类 &#…...

如何使用Logstash搜集日志传输到es集群并使用kibana检测

引言:上一期我们进行了对Elasticsearch和kibana的部署,今天我们来解决如何使用Logstash搜集日志传输到es集群并使用kibana检测 目录 Logstash部署 1.安装配置Logstash (1)安装 (2)测试文件 &#xff…...

AutoEncoder和 Denoising AutoEncoder学习笔记

参考: 【1】 https://lilianweng.github.io/posts/2018-08-12-vae/ 写在前面: 只是直觉上的认识,并没有数学推导。后面会写一篇(抄)大一统文章(概率角度理解为什么AE要选择MSE Loss) TOC 1 Au…...

计算机系统基础

一、计算机系统概述 计算机系统:硬件软件,软件包括系统软件和应用软件 二、计算机组成结构 三、存储结构 3.1 层次化存储结构 3.2 Cache Cache(高速缓存)的功能:提高CPU数据输入输出的速率,突破冯.若依曼瓶…...

live555学习 - 环境准备

环境:Ubuntu 16.04.7 ffmpeg-6.1 1 代码下载 最新版本: http://www.live555.com/liveMedia/public/ 历史版本下载 https://download.videolan.org/pub/contrib/live555/ 选择版本live.2023.01.19.tar.gz ps:没有选择新版本是新版本在…...

C++ 模拟OJ

目录 1、1576. 替换所有的问号 2、 495. 提莫攻击 3、6. Z 字形变换 4、38. 外观数列 5、 1419. 数青蛙 1、1576. 替换所有的问号 思路:分情况讨论 ?zs:左边没有元素,则仅需保证替换元素与右侧不相等;z?s:左右都…...

MariaDB MaxScale实现mysql8读写分离

MaxScale 是干什么的? MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以根据主从状态实现写库的自动切换,对多个从服务器能实现负载均衡。 MaxScale 实验环境 中间件192.168.142.13…...

代码随想录day11(1)字符串:反转字符串中的单词 (leetcode151)

题目要求:给定一个字符串,将其中单词顺序反转,且每个单词之间有且仅有一个空格。 思路:因为本题没有限制空间复杂度,所以首先想到的是用split直接分割单词,然后将单词倒叙相加。 但如果想让空间复杂度为O…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...