装 Oracle 数据库这事儿,说起来挺折腾的。要是你在 Windows 上装过,那感觉就像吃快餐——下一步、完成,半小时搞定。但换成 Ubuntu,画风突变,得在命令行里跟系统斗智斗勇。很多人一听说要在 Linux 上装 Oracle,第一反应就是头大,觉得这是 DBA 的专属活儿。其实没那么玄乎,只是步骤多了一些,耐心够用就行。我有个朋友,第一次在 Ubuntu 上装 Oracle 11g,折腾了一个周末,发现是 swap 分区设小了,气得差点砸键盘。搞定后,他跟我说,那种成就感比打游戏通关还爽。

先说说准备工作。Ubuntu 不是 Oracle 官方的“亲儿子”,它更偏爱 Red Hat 和 SUSE,所以你得自己动手,丰衣足食。系统必须是 64 位,内存至少 2 GB,推荐 4 GB 以上,不然跑起来像老爷车。swap 分区尤其关键,官方要求是物理内存的 1.5 倍,比如内存 4 GB,swap 就得 6 GB。这一步很多人忽略,结果装到一半报错 “insufficient memory”,那叫一个憋屈。还有依赖包,得提前装好。Ubuntu 18.04 上需要 libaio1、libncurses5、binutils 等,用 apt‑get 一把梭。别偷懒,少装一个包,后面编译就能卡你半小时。我见过有人装到 97% 才报错,排查半天发现缺了个 32 位的 lib,气得直骂娘。
接下来是系统配置。Oracle 数据库对内核参数很挑剔,你得手动改 /etc/sysctl.conf。比如 kernel.sem 要设成 250 32000 128,fs.file‑max 设成 6815744,这些数字看着像密码,但一个都不能错。改完记得用 sysctl -p 让它生效。还有个坑,Ubuntu 默认的 /etc/security/limits.conf 里,nofile 和 nproc 限制太低,Oracle 进程多了就会出现 “too many open files”。你得把 oracle 用户的软硬限制都改成 65536。有人嫌麻烦,直接关了防火墙和 SELinux,倒也行,但生产环境千万别学,安全第一。这一步做完,重启系统,确保所有配置都生效。此时你会觉得自己像个系统调优工程师。
用户和组也绕不开。Oracle 官方要求创建 oinstall 和 dba 两个组,再加一个 oracle 用户,主目录最好放在 /u01/app/oracle 下。oinstall 管安装,dba 管权限,分开是为了安全。有哥们图省事,直接用 root 装,结果装完后权限全乱套,数据文件都删不掉。按部就班来:、、,然后设密码。这些命令记不住?没事,写个脚本保存就行。别忘了在 oracle 用户的 .bashrc 里加上 ORACLEBASE 和 ORACLEHOME 环境变量,不然装到一半系统找不到路径,又得重来。
下载安装包是个体力活。Oracle 官网的下载页面,需要注册账号、同意协议,才能点那个 2 GB 的 zip 文件。网速慢的话,等上两小时是常事。我建议用迅雷或 IDM,比浏览器自带的下载器快三倍。下载完后,传到 Ubuntu 上,解压到 /u01/app/oracle/product/11.2.0/dbhome1 目录。别直接用 unzip,容易断,用 dtrx 或 7z 更稳。解压后会看到一个 runInstaller 文件,这就是安装入口。但别急着双击,先跑一遍 ,用静默模式装。因为图形界面在 Ubuntu 上经常抽风,按钮点了没反应。静默模式虽然黑乎乎的,但至少不会卡死。
安装过程里,最烦人的就是 “INS‑13001” 环境检查错误。Oracle 会检测系统是否兼容,发现是 Ubuntu 就直接亮红灯。解决办法有两个:一是修改 /etc/redhat-release,改成 Red Hat 的版本号骗过去;二是用参数 跳过检查。我推荐第二种,简单粗暴。但跳过检查并不代表依赖包可以省,仍需自行补齐,否则装到后面编译时会崩。还有,装到 95% 时系统会让你用 root 跑两个脚本:root.sh 和 orainstRoot.sh。很多人忘了这一步,结果装完后数据库起不来。这两个脚本负责创建监听器用户和设置权限,必须执行。跑完脚本,才算真正装完。
装完之后,还得配置监听器和数据库实例。用 netca 和 dbca 两个工具,前者设监听端口,默认 1521;后者建数据库,选“一般用途”或“事务处理”。这一步考验耐心,因为 dbca 的图形界面在 Ubuntu 上经常显示不全,你得调分辨率或用 VNC。一个小技巧是 强制指定显示器,能解决大部分显示问题。建库时字符集选 AL32UTF8,别贪快选 ZHS16GBK,后者在跨语言查询时容易乱码。数据库名和 SID 要保持一致,例如 orcl,这样后面连接更方便。建完库后,用 登录,执行 ,如果显示 “OPEN”,恭喜你,成功了。
说说日常运维,这才是重点。Ubuntu 上的 Oracle 没有 Windows 那样的图形化控制台,只能靠命令行。比如启动数据库,先 开监听,再用 启动实例;关机则反着来。备份要用 RMAN 或 expdp/impdp,别偷懒用 cp 直接复制数据文件,那会导致数据不一致。日志文件在 下,报错时先翻 alert 日志,比百度更靠谱。有次我同事的库突然连不上,查了半天发现是磁盘满了,删了几个归档日志就恢复了。所以,监控磁盘空间和 alert 日志是每天必修课。习惯了之后,你会发现命令行比图形界面更高效,毕竟眼睛不用在菜单里瞎找。


