一次旧业务系统迁移收缩的经历
单位的一个业务系统,在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据,虽然普通用户不再需要用旧的系统,但相应部门的管理人员还需要在旧系统查询数据资料,这应该是旧系统向新系统迁移时,数据不彻底,或者因为新旧系统的底层逻辑不一样,毕竟不是同一个厂家的系统,有些东西没办法做迁移。
因此,十多年前部署的这个老系统,他们一直还要用,作为运维部门的我们,还得想办法支持他们的工作,虽然这个系统还运行在Windows2003和IE的环境之下。当前面临的问题是系统所在的硬件已经老化,准备报废了,所以,必须要做虚拟化迁移处理。
好在数据库Oracle,是跑在虚拟机里面的,但应用是跑在硬件服务器上的。别问我为嘛是这样部署的,我也很奇怪为嘛是个反的,我接手时就是这样的部署。
首先是对数据库服务器的迁移收缩,把虚拟机停机,直接克隆一个,然后修改CPU和内存配置。原始的配置是24个核,64G内存,但现在业务系统只有管理员做做查询,肯定不能给他分配这么多资源,我直接拉到很低,2个核,4G内存。启动数据库服务器,直接报虚拟内存太低,部分程序无法运行。然后发现Oracle根本没办法连接。好吧,只能查资料,调整Oracle的内存配置。对这方面我也没有经验,直接按书上的操作办法:用system用户登录,通过alter system set sga_max_size = 3072m scope = spfile; 和 alter system set sga_target = 3072m scope = spfile; 进行修改,然后切换到sys用户,shutdown immediate 然后startup。重启后正常,这样数据库服务器的迁移收缩完成。
然后开始整硬件服务器。开始想着在虚拟机里面重装一个,做好Windows 2008 的系统,安装JDK,配置环境变量,安装Tomcat,把原始的应用程序目录复制过来直接运行,发现无法启动。主要是没有这个业务系统的部署文档,我也只能凭感觉记忆去做。
然后走第二条路,用物理机转换为虚拟机的神器,VMware Converter Standalone,虽然从没用过,但试试之后发现还挺顺利的,只是废了一点时间。转换完成之后,直接启动业务,一切正常。但在登录时,提示软件授权错误,要求与开发商联系。这是一个很好的结果了,我也预想到会有这个问题,转换之后相当于换了一台机器部署,授权文件肯定需要更新的。我先解决系统资源收缩的问题,原始配置也是24核64G内存,我直接拉到2个核4G内存。启动业务时也是报虚拟内存不足,闪退。估计又是Tomcat的内存配置需要调整,然后查资料,在catalina.bat的文件中,修改CATALINA_OPTS的参数,全改成2048m,然后启动,一切正常。(这时想着前面重装部署无法正常启动可能也是内存配置需要修改的原因,但发现修改之后,虽然可以启动业务,但登录时无法进入,也不提示任何错误。)
现在就只剩下软件的授权问题了。如果不解决软件的授权问题,我们那个刀片服务器就不能报废,整个刀箱也不能报废。为了腾地方,为了他们能使用,或者需要把整个刀箱搬给业务部门自己去玩。从机房挪出来放到他们办公室去,哈哈,那家伙,噪音不是一般的大,开机运行的时候周边的人别想做事。技术上的问题,我们尽量解决了,这得需要业务部门自己去找原来的开发商,看能不能再搞个授权,你们去公关吧,但愿开发商还保留有十多年前的系统的授权生成程序。同时,我把这个问题也提交给了另一个专门研究安全的同事,看他有没有破解或绕过去的方法,期待两方面都有好的消息。
写在最后:作为运维人,正式的应用系统是开发商部署好的,我们从不敢去随意动它;忙个不停的人,也不想自己给自己出题目做实验折腾。只有这样的历史遗留问题的系统,才可以大胆的去折腾,死马当活马医,看似对大家没什么意义,但能解决问题,还是蛮开心的。记在这里,希望能给面临同样问题的人一点经验。
相关文章:
一次旧业务系统迁移收缩的经历
单位的一个业务系统,在几年前已经更换了。但旧的系统里面还有很多没有转移过来的数据,虽然普通用户不再需要用旧的系统,但相应部门的管理人员还需要在旧系统查询数据资料,这应该是旧系统向新系统迁移时,数据不彻底&…...
MVC配置文件及位置
配置文件位置 默认位置 WEB-INF目录下,文件名:<servlet-name>-servlet.xml <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi"http://www.w3.…...
如何解决samba服务器共享文件夹不能粘贴文件
sudo vim /etc/samba/smb.conf在samba的配置文件中增加一个选项 writable yes重启Samba服务以使更改生效: sudo service smbd restart...
【中工开发者】鸿蒙商城app
这学期我学习了鸿蒙,想用鸿蒙做一个鸿蒙商城app,来展示一下。 项目环境搭建: 1.开发环境:DevEco Studio2.开发语言:ArkTS3.运行环境:Harmony NEXT base1 软件要求: DevEco Studio 5.0.0 Rel…...
(九)机器学习 - 多项式回归
多项式回归(Polynomial Regression)是一种回归分析方法,它将自变量 xx 和因变量 yy 之间的关系建模为 nn 次多项式。多项式回归的目的是找到一个 nn 次多项式函数,使得这个函数能够最好地拟合给定的数据点。 多项式回归的数学表达…...
Qt编写区位码gb2312、机内码、国标码————附带详细介绍和编码实现
文章目录 0 背景1 了解编码1.1 ASCII码1.2 机内码、国标码、区位码1.2.1 区位码1.2.2 国标码(GB 2312-80)1.2.3 汉字机内码(GB 2312) 1.3 GBK和GB2312的区别2 编码实现2.1 QString数据转QByteArray类型2.1.1 使用QTextCodec2.1.2 …...
linux网络编程 | c | epoll实现IO多路转接服务器
epoll实现IO多路转接服务器 可通过以下视频学习 06-opell函数实现的多路IO转接_哔哩哔哩_bilibili 通过响应式–多路IO转接实现 文章目录 epoll实现IO多路转接服务器1.思路&功能核心思路 2.代码实现multi_epoll_sever.c运行图 1.思路&功能 **功能:**客…...
Source Insight的使用经验汇总
01-Add All"和“Add Tree”有何区别? 在 Source Insight 中,“Add All”和“Add Tree”是两种向项目(Project)中添加文件的操作选项,它们的区别在于处理文件和目录的方式不同: 1. Add All 范围&am…...
VSCode 报错:rust-analyzer requires glibc >= 2.28 in latest build
报错信息 /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.953/server/rust-analyzer: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.29 not found (required by /home/jake/.vscode-server-insiders/extensions/matklad.rust-analyzer-0.3.9…...
Android Link to Death 使用
Java侧: 【android学习】使用linkToDeath对AIDL双向死亡监听_unlinktodeath-CSDN博客 Native侧: Service端 using namespace android; class MyService :public IBinder::DeathRecipient{void MyService::binderDied(const wp<IBinder>& wh…...
【C++游记】string的使用和模拟实现
枫の个人主页 你不能改变过去,但你可以改变未来 算法/C/数据结构/C Hello,这里是小枫。C语言与数据结构和算法初阶两个板块都更新完毕,我们继续来学习C的内容呀。C是接近底层有比较经典的语言,因此学习起来注定枯燥无味…...
DockerUI info存在未授权访问漏洞
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
SQL,查询每天最接近指定时间的记录
Oracle 数据库的某表有一列是日期时间类型,每天对应多条数据: td1.1.2024 08:08:0811.1.2024 10:10:1021.1.2024 15:15:1531.1.2024 20:20:2042.1.2024 09:09:0952.1.2024 12:12:1262.1.2024 16:16:16712.12.2024 16:16:168 现在要从每天找出两条记录&…...
ElasticSearch如何做性能优化?
大家好,我是锋哥。今天分享关于【ElasticSearch如何做性能优化?】面试题。希望对大家有帮助; ElasticSearch如何做性能优化? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中,性能优化是…...
【Linux】虚拟空间布局模型地址回填数据段合并(万字详解)
Ⅰ、虚拟空间布局模型 理论模型 包括上节的动态库与静态库,加上本节后面两个内容其实都是对gcc的扩展与补充知识,也是需要了解和掌握的知识。在开讲之前,我们先来说一下在32位x86的Linux系统中,虚拟地址空间布局模型:…...
const和修饰指针的几种用法
昨天闲着没事去面试了一个C岗位,问了很多基础的东西都没答上来。主要原因是这些知识在硬件资源丰富的pc端用的不多,二来确实很久没温习之前的C相关的知识了。在面试官问了几次类似的问题没有答好的情况下(还喜欢问你确不确定)&…...
mybatis事务的自动提交与手动提交
MyBatis支持自动提交和手动提交两种事务管理方式。 自动提交事务 MyBatis默认使用自动提交模式,即每个SQL操作都会自动提交到数据库中。这意味着在执行完一条SQL语句后,MyBatis会自动调用commit()方法将更改持久化到数据库。 手动提交事务 可以通过Sq…...
网络安全协议之比较(SSH、PKI、SET、SSL)
一、SSH介绍 什么是SSH? 传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据, 别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的…...
Vue的生命周期方法
Vue 生命周期方法详解 beforeCreate 执行时机:在实例初始化之后,数据观测(data observer)和事件配置(event/watcher setup)之前被调用。内部状态:此时,组件的选项对象(例…...
ISP和IQ调试(一)
系列文章目录 文章目录 系列文章目录前言一、ISP(image signal process)二、ISP位置三、IQ总结 前言 一、ISP(image signal process) image signal process 图像处理技术 image signal processor 图像信号处理器 设备 什么是图像信号? 代表…...
nfc-list使用教程
nfc-list 是 Kali Linux 中基于 libnfc 库(开源 NFC 开发框架)的基础 NFC/RFID 设备检测工具,核心功能是扫描并列出当前连接的 NFC 读卡器设备,以及贴近读卡器的 NFC 卡片(或标签)的详细信息,包…...
H5端微信登录实战:从配置到用户信息获取的全流程解析
1. 为什么需要H5端微信登录? 每次开发新项目时,用户注册环节总是让人头疼。传统的账号密码注册方式,不仅流程繁琐,还经常遇到用户忘记密码的问题。我在去年开发一个电商H5项目时,就发现超过60%的用户流失都发生在注册…...
【C/C++基础】C++输入流实战:cin、getline与缓冲区的那些事儿
1. C输入流基础:从键盘到缓冲区的旅程 每次在终端敲下字符时,你可能没意识到这些数据要先经历一场"缓冲区历险记"。想象缓冲区就像快递柜,键盘输入相当于快递员把包裹(数据)放进柜子,而cin等输入…...
FastbootEnhance:告别命令行,用图形化界面轻松管理Android刷机和分区
FastbootEnhance:告别命令行,用图形化界面轻松管理Android刷机和分区 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 在An…...
知识蒸馏(Knowledge Distillation)完全指南:原理、实践与进阶
一句话概括:知识蒸馏是一种模型压缩技术,它让一个轻量级的“学生模型”模仿一个高性能的“教师模型”的输出行为,从而在保持小体积、低延迟的同时,获得接近大模型的能力。一、为什么需要知识蒸馏?—— 大模型的“奢侈”…...
从零理解自然数系统:用Python类模拟皮亚诺公理(含加法乘法实现)
从零构建自然数系统:用Python类实现皮亚诺公理与算术运算 在计算机科学中,自然数系统的构建是一个令人着迷的基础课题。当我们抛开编程语言内置的数字类型,仅用最基本的类和递归概念来重新定义自然数时,会惊讶地发现数学的抽象之美…...
学网络安全需要学编程吗?
作为数字化时代的守护者岗位,网络安全一直备受瞩目并引发热议,那么学网络安全需要学编程吗?学多久才可以就业?我们通过这篇文章来了解一下。学网络安全需要学编程吗?当然需要,网络安全需要学习编程。编程能力是网络安全领域的基础技能之一…...
Loop窗口管理工具:如何用径向菜单和智能暂存系统提升Mac多任务效率300%
Loop窗口管理工具:如何用径向菜单和智能暂存系统提升Mac多任务效率300% 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在当今多任务工作环境中,Mac用户经常面临窗口管理的挑战。每天在多个应用之间…...
OpenClaw技能开发入门:为Qwen3.5-4B-Claude定制数学解题模块
OpenClaw技能开发入门:为Qwen3.5-4B-Claude定制数学解题模块 1. 为什么需要数学解题模块 去年辅导侄女做几何证明题时,我发现市面上大多数AI工具要么只能给出最终答案,要么解题步骤过于简略。作为一个喜欢折腾技术的程序员,我决…...
前端 跨域解决方案
一、什么是跨域? 协议、域名、端口 三者有任意一个不一样,就是跨域。 浏览器出于安全考虑,会限制跨域请求,这就是同源策略(Same-Origin Policy)。 举例: https://www.baidu.com协议:…...
