编辑手记
大家在实际工作中,经常会遇到生产环境数据库服务器的硬件环境发生变化的情况,比如硬件损坏需要更换,硬件资源不足需要扩容。大多数情况下数据库也要做相应调整,甚至需要做迁移。本文我们将一些常见的硬件环境变化列举出来,篇幅较长,大家可以对应自己实际情况选择性阅读,希望能够给读者一些参考。
常见的硬件环境变化
上面的导图基本涵盖了大部分常见的硬件环境,在这篇文章中,我们主要介绍生产中数据库根据硬件变化常见的相应调整手段以及需要注意的地方,并不包含详细的调整操作步骤。
CPU篇
1、更换CPU
数据库方面无关联调整,需要停库
2、CPU扩容
对于单实例数据库,正常情况下无需调整,停库即可,如果设置了CPU_COUNT初始化参数,考虑进行相应调整。当数据库为RAC架构,且节点间 CPU 数量不匹配时,需要考虑修改参数gcs_server_processes,使各实例该参数保持一致,因lms进程数量与该参数有关,如果两节点lms数量不匹配容易造成gcs通讯问题
内存篇
1、更换内存
数据库方面无关联调整,需要停库
2、内存扩容
内存扩容可能需要调整swap的大小,根据Oracle官方安装需求。内存扩容同时要考虑对SGA及PGA进行扩容。如果要扩容SGA,注意操作系统层可能需要调整与共享内存相关内核参数,对于11g及以上的linux还要考虑tmpfs,否则会报ORA-00845:MEMORY_TARGET not supported on this system
网卡篇
更换网卡对数据库无影响,根据操作系统及架构(单实例或RAC)可能需要停实例。需要注意的是,RAC更换网卡如果出现网卡号改变的情况,集群则需要做相对应的修改(需要修改OCR中关于网络接口信息),建议做好变更方案。
主机篇
这里调整主机是指更换同构平台主机,更换异构平台多为迁移项目,可参考后面的调整主机+存储篇
1、单实例
在新主机安装相同版本数据库软件(包括补丁);也可以用tar的方式复制软件目录到新主机,需要做relink。拷贝参数文件,密码文件到新主机相同位置。如果数据库使用磁盘阵列存放数据文件,则在停库后将磁盘映射给新主机,挂载启动即可;如果数据库使用本地磁盘(使用本地磁盘的库通常不会太大),则需要在停库后将数据文件日志文件控制文件等通过网络拷贝至新主机。如果新主机有cpu,内存,网卡方面调整,参考前面的章节。
2、RAC集群
在RAC环境中,主机的调整可能分为单台主机更换或更换所有主机,下面分开介绍
更换单台主机
使用添加节点方式将新主机加入集群,然后使用删除节点方式去掉老主机
更换所有主机
更换所有主机可以参考更换单台主机的方式,一台一台替换老主机。也可以使用新主机重新构建集群(ocr和vote需要额外磁盘或lv),并安装相同版本数据库软件。在原环境集群停止后,将ASM磁盘映射给所有新主机,新环境集群直接挂载数据库所用ASM盘组,再启动数据库即可。当使用裸设备时,新环境主机还要安装与老环境相同的双机软件,实现并发LV访问
存储篇
在实际运维中,大家经常会遇到需要更换存储的情况,原因无外乎是设备老化、性能优化、数据拆分等等。对于Oracle数据库来说,数据的存储方式分为三种,文件系统、裸设备和ASM。以下方法都是操作系统或数据库层面的操作,部分品牌部分型号存储具有存储层LUN复制的功能,这里不做介绍。
1、文件系统
直接copy文件
方法:
使用新存储创建VG,划分LV并创建文件系统,容量不小于原文件系统。干净的关闭数据库后,拷贝所有数据文件日志文件,控制文件等到新文件系统,保证路径与原文件系统一致,权限一致。将新存储的文件系统挂载到原文件系统目录,启动数据库
优点:
操作简单
缺点:
速度一般,需要停库,数据库大则停机时间久
使用dd替换copy方式
方法:
使用新存储创建VG,划分LV,LV不小于原文件系统所用lv。数据库关闭后,卸载原文件系统,使用dd方式复制原lv信息到新lv,挂载新LV的文件系统到原目录
优点:
速度比copy快
缺点:
需要停库,数据库大则停机时间久
利用lvm镜像
方法:
新存储加入原VG,在新存储上创建原存储LV的镜像(数据库所在文件系统的LV),完成后将原存储LV从镜像中删掉。
优点:
无需停库
缺点:
不停机替换,对生产系统IO有影响
使用rman备份恢复
方法:
使用新存储创建VG,划分LV并创建文件系统,容量不小于原文件系统。使用rman备份原库,卸载原文件系统,挂载新存储文件系统到原目录,恢复数据库。
优点:
操作简单,使用多通道可提高恢复速度
缺点:
需要停库,数据库大则停机时间久;需要额外存放备份的空间
使用rman image copy
方法:
使用新存储创建VG,划分LV并创建文件系统,容量不小于原文件系统。挂载新存储创建的文件系统,使用rman image copy的方式备份数据文件到新文件系统,停库切换数据文件位置,切换重做日志及控制文件位置,卸载原存储文件系统
优点:
停库时间短
缺点:
操作复杂,需提前做好脚本
2、裸设备
使用裸设备的都是9i,10g或者升级的11g,且大多是RAC环境。对于RAC,还需要考虑替换ocr及vote,参考命令:
ocrconfig-replace、crsctl add cssvotedisk、crsctl deletecss votedisk
裸设备的存储迁移,我们建议用Rman的备份恢复方式,当然,如果停机窗口不满足业务需求的话,也可以考虑LVM镜像的方式,这里就不一一介绍了
3、ASM
采用ASM的存储方式一定是10g以上版本,通常来说采用ASM的数据库调整存储有大概四种方式,分别是ASM加减盘、Rman image copy、Rman备份恢复和dd。下面我们分别说说这四种方法的优缺点。
ASM加减盘
优点:操作简单,无需停机
缺点:ASM在做rebalance期间占用IO;可能遇到bug
Rman image copy
优点:不会遇到方法一中的bug
缺点:操作复杂,切换时需要停机
Rman备份恢复
优点:不会遇到方法一中的bug
缺点:需要停机,数据库大停机时间久;需要额外空间存放备份
使用dd命令
这种方式我们简单说下方法:
新存储对应划分不小于原环境的ASM磁盘,停库,使用dd方式复制asm磁盘数据到新存储对应磁盘,去掉原存储,挂载新存储asm磁盘组
优点:不会遇到方法一中的bug,速度相对较快
缺点:需要停机,数据库大停机时间久
数据库存储的变更方法很多种,没有那种是最佳的,只有最适合自己的,最终都取决于你的停机时间和生产期间的IO压力等等条件
主机+存储篇
关注荣科云数据公众号:
领取专属 10元无门槛券
私享最新 技术干货