最近帮一位朋友查看一套老旧业务系统的问题,登录环境一看,竟是二十多年前的经典组合:Sun 小型机、Solaris 8 操作系统和 Oracle 9i 数据库。主机的 CPU 和内存配置以现在的眼光来看非常有限,但令人感慨的是,就是这样一套资源拮据的系统,却在某大型国企的核心业务中稳定运行了这么多年。
反观当下,不少国产数据库在一些规模并不大的客户环境中,主机配置却动辄要求 512GB 内存、上百个 CPU 核心,再加上全闪存储,资源投入远超实际业务需求。更有些客户领导盲目追求技术潮流,迷信“分布式”和“高可用”,原本完全可以在集中式架构上稳定运行的系统,也要硬上国产分布式数据库——架构复杂了,运维成本高了,是否真能像前面那套 Solaris + Oracle 的组合那样,由一个初级 DBA 就能维护,并且平稳运行十几年?
技术之路,有时候不是在进步,而是在轮回;不是越新越好,而是合适最好。
前几天给这套oracle 9i的dg standby环境做了failover, 近日primary端因为断电坏了条内存条,启动后数据库访问有些慢。
root@sundb # uname -a
SunOS sundb 5.8 Generic_108528-29 sun4u sparc SUNW,Sun-Fire
root@sundb # vmstat 3 3
procs memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s6 sd in sy cs us sy id
0 2 0 9748368 786768 154 9932 1460 177 2519 0 8118 153 141 0 0 1362 425 1386 1 5 93
0 2 0 9267856 120088 35 1989 1848 2 2408 0 2292 150 215 0 0 1744 243 2084 0 26 74
0 2 0 9270584 121480 61 1221 1640 88 2976 59808 4377 157 173 0 0 1592 341 1728 0 3 96
root@sundb # sar -r 3 2
SunOS sundb 5.8 Generic_108528-29 sun4u 09/09/25
11:59:18 freemem freeswap
11:59:21 15538 18473159
11:59:24 15601 18596725
Average 15569 18534736
root@sundb # prtconf
System Configuration: Sun Microsystems sun4u
Memory size: 8192 Megabytes
System Peripherals (Software Nodes):
$ ipcs -mb
IPC status from <running system> as of Tue Sep 9 12:04:16 CST 2025
T ID KEY MODE OWNER GROUP SEGSZ
Shared Memory:
m 1 0x50000b29 --rw-r--r-- root root 4
m 514 0 --rw-r----- oracle dba 4194304
m 3 0 --rw-r----- oracle dba 3858759680
m 4 0x2f41c8b4 --rw-r----- oracle dba 3846176768
这样看8G内存,给数据库分配了近7G的共享内存,这是问题的源泉,调整内存分配即可,数据库恢复了流畅。
$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.7.0 - Production on Tue Sep 9 12:19:49 2025
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area 5152154088
bytes
Fixed Size 737768
bytes
Variable Size 855638016
bytes
Database Buffers 4294967296
bytes
Redo Buffers 811008
bytes
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
再用几年也不成问题。
— over —