IBM服务器无法启动时,数据库文件通常还完整地保存在磁盘阵列上,首要任务是拆下数据盘或利用系统救援介质启动,将数据库文件原样拷贝出来,再恢复到新系统环境中。
IBM服务器开不了机,数据库文件还在不在
服务器宕机时,很多人第一反应是“数据库是不是全没了”,操作系统损坏、引导分区丢失、主板故障这类常见问题,并不会直接破坏磁盘上的数据库数据文件,数据库文件(比如MySQL的ibdata1、Oracle的DBF文件、SQL Server的MDF文件)躺在硬盘的存储空间里,只要磁盘本身没有物理坏道、阵列卡没有被烧毁,数据就还在。
判断数据是否“存活”有个简单方法:开机后观察硬盘指示灯是否正常闪烁,如果磁盘顺序亮起又熄灭,说明磁盘已经通电且被识别,数据恢复的希望很大,如果开机时面板LED代码停在某个数字不动,或者伴随连续短报警声,问题可能出在内存、CPU或阵列卡,此时做数据拷贝反而没有障碍。
行业共识认为,IBM服务器在系统层面崩溃的概率远高于磁盘物理损坏的概率,换句话说,系统打不开不等于存储设备报废,能不能导出数据库,核心取决于磁盘还能不能被挂载到另一台可用环境中。
IBM服务器进不了系统,怎么判断数据盘还能不能读
先确认是否RAID阵列层故障
IBM服务器多数搭载ServeRAID或LSI阵列卡,系统盘通常组成RAID1或RAID10,数据盘组成RAID5或RAID50,当服务器无法启动时,需要进入阵列卡的BIOS配置界面(开机时按Ctrl+H或Ctrl+C),查看阵列状态。
- 如果逻辑驱动器显示“Online”或“Optimal”,说明阵列本身没问题,只是引导层面的软件坏了,数据拷贝成功率接近百分百。
- 如果显示“Degraded”,说明有一块盘掉线,但阵列还能用,此时抢在第二块盘离线前把数据读出来是第一要务。
- 如果显示“Offline”或“Failed”后面没有黄色感叹号,还不算太糟;但如果是红色Fail状态,基本可以判断阵列逻辑已经崩溃,后续需要重建阵列结构。
磁盘有异响还能不能挂载
如果硬盘发出明显的咔哒声、刮擦声,说明存在物理层故障,此时绝对不要再反复通电尝试自检,每一次通电都可能在盘片上留下新的划痕,应该立即断电,将磁盘取出,标记好盘位顺序,后续采用专业设备做镜像克隆。
用Linux救援U盘把数据库文件导出来
IBM x86架构服务器(比如x3650、x3850系列)的操作系统多为RHEL、CentOS、Ubuntu或Windows Server,无论原来用什么系统,都可以用一张Linux Live CD引导启动,绕过损坏的系统分区,直接从数据盘读取数据库文件。
制作启动U盘并引导服务器
在一台正常电脑上下载Ubuntu Server ISO或SystemRescueCD镜像,用Rufus或balenaEtcher写入U盘,插入IBM服务器后开机,按F12(部分机型是F8或Esc)选择U盘启动,进入Live系统后打开终端,执行以下命令查看磁盘分区:
lsblk fdisk -l
挂载数据分区并拷贝数据库目录
假设数据盘是/dev/sdb,上面有分区/dev/sdb1,执行:
mkdir /mnt/datadir mount /dev/sdb1 /mnt/datadir
挂载成功后,/mnt/datadir下就是原来系统里的文件结构,数据库目录通常位于以下路径之一:
- MySQL/MariaDB:
/var/lib/mysql(默认存储目录) - PostgreSQL:
/var/lib/pgsql或/var/lib/postgresql - Oracle:
/u01/app/oracle/oradata - SQL Server(Linux版):
/var/opt/mssql/data
找到对应目录后,将整个文件夹拷贝到移动硬盘上,建议先打包再复制,减少单个小文件的拷贝损耗:
tar czvf /mnt/usb/mysql_datadir.tar.gz /mnt/datadir/var/lib/mysql
拷贝途中若出现I/O报错但系统不崩溃,多半是磁盘有少量坏扇区,可以检查拷贝出来的文件大小和日志输出,如果中途整个文件系统变成只读,说明磁盘问题比较严重,马上重复执行一次试试看能不能断点续传。
Windows环境的替代操作
Windows Server系统可以在PE环境下(微PE或优启通)引导后,直接用资源管理器访问C盘和D盘,数据库文件如果是SQL Server的MDF文件,按原路径拷贝到NTFS格式的移动硬盘上就好,注意备份数据库文件的同时,把Windows的C:\Program Files\Microsoft SQL Server下的master.mdf也一并导出,否则恢复时容易碰到版本或实例名不匹配的问题。
IBM服务器数据库迁移到新机器的流程
数据文件拷出来后怎么恢复
在另一台正常运行的IBM服务器上安装好相同版本、相同小版本号的数据库软件(MySQL版本号建议精确到末尾,比如5.7.40,不能只装5.7),然后停掉数据库服务,将拷贝出的datadir直接替换到新环境对应目录下:
systemctl stop mysqld rm -rf /var/lib/mysql mv /mnt/source/mysql /var/lib/mysql chown -R mysql:mysql /var/lib/mysql systemctl start mysqld
替换前务必检查新机器的文件系统格式与原机器一致(都是ext4就用ext4,都是XFS就用XFS),否则权限位和文件属性可能错乱。
导入时需要调整的参数
多数情况下,数据库配置文件my.cnf或postgresql.conf里会有些自定义路径或缓冲区参数,用原目录启动时报错的话,重点排查三个地方:
- datadir路径是否一致
- socket文件位置
- 日志文件权限(mysql-error.log有具体报错信息)
启动成功后,建议立即用mysqlcheck -a或pg_amcheck做一遍索引与表结构的完整性检测,排除拷贝过程中产生坏页的可能。
本地救不回来,ibm服务器数据恢复哪家好
如果磁盘有物理坏道、阵列卡损坏、或者两块盘同时掉线,自己用Linux U盘就无能为力了,此时找数据恢复机构是唯一靠谱的方案。
判断专业机构的几个硬性指标
- 报价前做免费检测且不因检测收费这点要明确问清楚,正规机构会先查看阵列参数和磁盘健康度,半小时内给出初步结论。
- 有Class 100级洁净间,能在无尘环境中开盘处理盘片划伤。
- 不承诺百分百恢复,但会给出成功率评估和分级报价。
- 签订保密协议,数据不外泄是底线要求。
价格参考与时间周期
据行业公开信息,IBM服务器阵列数据恢复的价格通常在3000元至15000元之间,具体取决于故障复杂程度,单块盘逻辑层损坏(比如文件系统损坏)收费较低,两块盘做RAID5后阵列信息丢失收费居中,盘片划伤需要开盖处理的收费最高,时间上,逻辑故障一般1-3个工作日,物理开盘修复需要3-7个工作日。
挑选本地服务商时,优先考虑在北京、上海、广州、深圳、杭州、成都等IT基础设施较为密集的城市设立实验室的机构,这类机构通常有备件库和同型号阵列卡,不需要等配件快递。
最稳妥的办法:把备份机制建起来
数据导出是对故障的补救,真正的数据安全靠的是备份策略,IBM服务器如果运行的是核心业务数据库,建议按以下三个层级配置:
- 每天晚上逻辑备份(expdp、mysqldump或SQL Server的Backup Database),保留最近7份
- 每周末物理冷备,直接将datadir所在卷做快照或dd镜像
- 每月做一次异地离线归档,把备份文件传到另一台物理机或者对象存储中
备份同样需要周期性演练,业内专家指出,相当一部分企业每年执行几百次备份任务,却从未做过一次真实恢复演练,等故障发生才发现备份文件早已损坏或不可用,定期抽取一份最近的备份文件,在测试机上做一次全量恢复,十分钟就能验证备份可用性,这个流程应当纳入例行运维事项,不能省略。
常见问题
ibm服务器不能启动数据恢复最麻烦的情况是什么
最麻烦的是硬盘仓中两块盘同时报错,且阵列卡上的Cache电池已经失效,导致部分脏数据没有及时落盘,这种情况恢复难度极高,只能按扇区级做镜像再重组阵列参数,成功率取决于掉线盘中数据覆盖程度,日常运维中,定期检查阵列卡BBU(备用电池单元)健康状态,能在很大程度上降低此类风险。
没有做过备份,只能拆硬盘带回办公室处理吗
不建议自行拆卸,IBM服务器硬盘盘位较多,阵列上的磁盘顺序一旦打乱,阵列卡无法识别原先的RAID配置信息,后续恢复难度会大幅增加,正确的做法是标好每块硬盘的槽位编号,拍照留存后连同服务器整机送修,让工程师使用同型号阵列卡离线重建,拆下来单盘挂电脑读不出数据是正常现象,摸黑操作只会把恢复空间越堵越窄。
开机时报“Operating System Not Found”是不是数据库彻底没了
不是,这个报错表示BIOS没找到可引导的操作系统文件,多由引导分区损坏或硬盘启动顺序错乱引起,数据盘内的数据库文件结构和内容没有被动过,使用Linux救援盘引导后就能看到全部数据,把开机顺序改为“UEFI优先”或重新指向正确的启动盘,有时甚至不需要重装系统就能恢复开机关机能力。
数据库导出的底层逻辑很简单:系统坏了修系统,磁盘坏了找备件,文件还在就有救,遇到IBM服务器起不来,先别急着格式化重装,按上述操作路径一步步排查,把数据文件完整抠出来,再谈系统重建的事。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/796688.html


