1. 安装前的整体规划与介质准备
1.1 为什么到现在还有人在装Oracle 11g
看到标题点进来的朋友,估计心里都有同一个疑问:Oracle 12c、19c、21c都出了这么多代,为什么还要折腾11g?说句实在话,我自己在培训环境和项目维护里也反复装过很多次11g,核心原因就三个:存量系统多、学习曲线平滑、资料齐全。
很多企业核心系统跑的就是11g,尤其是金融、政务、制造业的老项目,动辄七八年没做过大版本升级,运维手里全是11g的脚本和备份策略。对于刚入门的DBA或者开发来说,用11g做练习机,几乎能避开12c以后才出现的CDB/PDB概念,专注学SQL、学备份恢复、学性能调优,学习成本低很多。另外,网上能找到的Oracle资料里,十本有八本还是以11g为例写的,跟着教程走不容易卡壳。
不过必须先泼一盆冷水:Oracle 11g的官方Extended Support在2020年底就已经结束了,也就是说不再有公开补丁和安全更新。生产环境选型我不建议再上新系统用11g,但如果是为了学技术、复现老项目、在虚拟机里跑一个测试库,11g依然是很好的练手对象。这也是我写这篇教程的前提:虚拟机里学习用,不是推荐生产环境部署。
1.2 安装包该从哪下载,以及怎么辨别靠谱版本
Oracle 11g R2官方提供了Linux 64位和Windows 64位两个常见版本。Linux下的介质是两个zip包,名字是:
linux.x64_11gR2_database_1of2.ziplinux.x64_11gR2_database_2of2.zip
这两个包必须放在同一个目录下解压,因为第一个包是安装主程序,第二个包里面是组件包,少一个都会导致安装中途报错。Windows版则是V17530-01_1of2.zip、V17530-01_2of2.zip这样的命名规则。
获取渠道上,Oracle官方网站虽然把11g放进了“存档下载”区,但依然可以免费下载,只需要注册一个Oracle账号并登录即可,不需要付费。这里要强调一点:Oracle Database从11g开始,个人学习使用在官方下载页面是不收费的,很多人误以为需要付费,其实只是需要接受一份OTN许可协议。
至于标题里提到的网盘离线包,我的态度是:方便归方便,但要格外小心。网盘里的安装包有可能被二次打包、捆绑推广软件甚至植入恶意代码,所以拿到包之后务必核对几件事:
- 压缩包的MD5/SHA256哈希值是否与官方公布的一致;
- 解压后目录结构是否正常,有没有奇怪的exe、脚本文件;
- 安装包大小是否和官方一致(两个zip加起来大约2GB出头)。
如果只是自己学习,我建议优先走官网下载,慢一点但安心。
1.3 实验环境准备:虚拟机配置推荐与资源规划
这里我默认大多数人是在Windows电脑上用VMware虚拟机装Linux版Oracle,这也是主流做法。有一说一,Oracle装在Windows本机虽然也能跑,但内存占用和进程数量对日常开发机影响太大,虚拟机随开随关反而更方便,还能随时拍快照。
虚拟机软件的版本没什么讲究,VMware Workstation 15/16/17都能用,网上有大量安装教程可以参考。操作系统建议优先选择CentOS 7.9或Oracle Linux 7.9,原因后文会说。如果你手头只有CentOS 6.8/6.10,其实也可以,6系的兼容性反而更好,但内核较老,新机器虚拟化支持上偶尔有坑。
我给一份自己常用的虚拟机配置:
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| 物理机内存 | 8GB | 16GB以上 |
| 虚拟机内存 | 2GB | 4GB |
| CPU核心数 | 2 | 4 |
| 系统磁盘 | 40GB | 60GB |
| Swap分区 | 2GB | 4GB |
| /dev/shm | 1GB | 2GB以上 |
特别想提醒一句:Oracle 11g安装检查对Swap是有要求的,官方规则是内存小于等于2GB时Swap要等于内存的两倍,内存2GB到16GB之间Swap等于内存即可。如果你虚拟机内存分配了4GB,Swap配4GB就行,太小会在先决条件检查时直接卡住。
另外,安装介质大概3GB左右,解压后又占一份空间,安装完成后的Oracle主目录约5GB,所以系统盘给40GB以上比较稳妥。别拿20GB的磁盘挑战极限,装到一半提示磁盘空间不足是最扫兴的。
2. 系统环境配置与安装前检查
2.1 主机名、网络与SELinux/防火墙处理
这一节是所有人最容易忽略、也最容易在后期翻车的地方。Oracle对主机名解析很敏感,它要求系统能通过hostname解析到自己的IP地址,否则安装时会出现“无法解析主机名”的报错。
建议在装系统阶段就把主机名改成oracle.example.com这种带域名后缀的形式,装完系统后检查一下/etc/hosts,确保有这一行:
192.168.x.x oracle.example.com oracle如果/etc/hosts里只有一个127.0.0.1的映射,数据库跑起来后监听服务经常会有奇怪问题,所以这一步宁可花两分钟确认好,后面省一天。
SELinux和防火墙是Linux自带的保护机制,但对Oracle这种老软件并不友好。在虚拟机学习环境里,直接关闭它们是最省心的选择,操作方式如下:
systemctl stop firewalld systemctl disable firewalldSELinux则修改/etc/selinux/config,把SELINUX=enforcing改成SELINUX=disabled,然后重启虚拟机。如果你不想重启,也可以临时执行setenforce 0,但下次重启前最好还是把配置文件改掉。
生产环境的加固策略当然不会这么粗暴,但在学习虚拟机里,先把环境跑通比什么都重要。等你能熟练把数据库装好以后,再回头研究防火墙放行1521端口和SELinux的用户定义策略也不迟。
2.2 安装依赖包:一次yum解决问题
Oracle 11g安装程序自带的先决条件检查会扫描很多系统库包,缺少任何一个都会在列表里显示为Error。CentOS 7自带的基础源里能装大部分包,但compat-libstdc++-33这个包在默认源里没有,需要额外处理。
我习惯在安装前一次性把依赖包装齐,命令如下:
yum install -y binutils compat-libcap1 compat-libstdc++-33 \ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel \ libgcc libstdc++ libstdc++-devel libXext libXtst \ libX11 libXau libXi make sysstat unixODBC unixODBC-devel如果你的系统是CentOS 7且提示找不到compat-libstdc++-33,可以通过yum install -y compat-libstdc++-33 --enablerepo=*从第三方源安装,实在装不上也不要慌,安装界面先决条件检查到这一项时,点“忽略”也能继续,只是稍微有点隐患。
这里要多说一句:网上有些教程让你跳过依赖检查,我的建议是最好别跳。很多用户装了Oracle之后启动报错,回头排查半天,结果就是缺了libaio或libaio-devel这种不起眼的包,白白浪费时间。
2.3 创建Oracle用户、用户组与目录结构
Oracle不允许直接用root安装,这是它的安全策略,所以必须创建一个专用用户。规范做法是建两个组:oinstall负责软件安装管理,dba负责数据库管理。
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle把oracle用户的密码设置成自己好记的,比如oracle123,学习环境无所谓。
然后是目录规划。Oracle的目录结构有自己的推荐标准,即OFA(Optimal Flexible Architecture),遵循这个标准可以避免后期升级和迁移时路径混乱。一条命令把它们都建好:
mkdir -p /u01/app/oracle chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app后续安装时Oracle基目录就指定为/u01/app/oracle,软件主目录会是/u01/app/oracle/product/11.2.0/dbhome_1,这样整个结构一眼就能看懂。
2.4 内核参数与资源限制配置:这是很多人忽视的硬门槛
Oracle 11g安装检查里有不少内核参数要求,如果直接点忽略,数据库虽然能装上,但运行一段时间后可能出现内存分配失败、进程数超限之类的问题。所以这一步建议照着做。
编辑/etc/sysctl.conf,追加以下内容:
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 1073741824 kernel.shmmax = 4294967295 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576然后执行sysctl -p让参数生效。
挑几个关键参数讲一下原理:
kernel.shmmax是单个共享内存段的最大字节数,Oracle的SGA会使用共享内存,这个值如果设得太小,数据库启动时容易报内存相关错误。设成4GB一般够用。kernel.sem的四个值分别对应信号量数组的最大值、系统范围内最大信号量数、每个信号量集的最大信号量数、系统范围内最大信号量集数,按官方推荐值写就行。net.core.wmem_max和rmem_max影响数据库网络通信的缓冲区,虽然平时感知不明显,但大并发连接时差距就出来了。
接下来还要修改用户资源限制。编辑/etc/security/limits.conf,追加:
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240这些限制的意思是oracle用户最多打开65536个文件、最多16384个进程、栈空间10MB。如果没有这些限制,数据库跑一段时间后可能报ORA-12537: TNS:connection closed或者进程崩溃。
最后检查一下/dev/shm。这个目录在Linux里默认是物理内存的一半,Oracle的自动内存管理(AMM,Automatic Memory Management)严重依赖它。如果虚拟机内存4GB,/dev/shm一般有2GB,够用。如果只有几百MB,建议调整:
mount -o remount,size=2G /dev/shm并把对应配置写入/etc/fstab,否则重启后又会恢复原样。
3. runInstaller安装全流程详解
3.1 解压安装介质与环境变量预处理
先把两个zip包上传到服务器,我习惯放在/soft目录下,然后执行解压:
cd /soft unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip注意两个包解压到同一个目录,最终会得到一个database文件夹,里面是runInstaller、install、response这些子目录。
图形化安装需要DISPLAY变量,这个坑几乎每个新手都会踩。如果你是用VMware虚拟机打开Linux桌面,直接运行./runInstaller即可;但如果你用的是MobaXterm、Xshell这类远程工具,就需要配置X11转发或者X Server。
我的建议是:不要图省事用静默安装文件,第一次装Oracle就老老实实走图形界面,每一步选什么看得清清楚楚,出问题也容易排查。远程工具推荐MobaXterm,自带X Server,连接Linux后会自动转发图形界面,相当省心。如果是Xshell,需要配合安装Xmanager,设置稍繁琐。
另外,为了防止安装界面出现中文乱码,建议在运行安装程序前临时把语言环境切到UTF-8:
export LANG=en_US.UTF-8 export DISPLAY=:0.0有些教程让你装中文字体包来解决乱码,实际没必要,直接切英文环境最省事。
3.2 安装界面一步步怎么选
以root身份登录时不能运行runInstaller,必须先切到oracle用户:
su - oracle cd /soft/database ./runInstaller弹出安装界面后,各步骤的选择如下,我按顺序列出:
- 配置安全更新:取消“我希望通过My Oracle Support接收安全更新”的勾选,点击Next,这时会弹出一个警告框,问你是否确定不接收安全更新,点Yes。
- 安装选项:选择“创建和配置数据库”,这个选项会安装数据库软件并自动创建一个实例,适合新手一步到位。如果你想只装软件后面再用DBCA建库,就选第二个“仅安装数据库软件”,但考虑到教程完整性,这一步建议选第一项。
- 系统类:选“服务器类”。桌面类只是简化了部分配置,实际部署基本都用服务器类。
- 安装类型:选“企业版”。Standard Edition、Standard Edition One功能受限,Enterprise Edition功能全,虽然License问题暂不讨论,但学习用企业版最合适。
- 安装位置:Oracle基目录填
/u01/app/oracle,软件位置会自动带出/u01/app/oracle/product/11.2.0/dbhome_1,不用改。 - 产品语言:把“简体中文”和“英语”都选中,后面客户端连接时字符集支持更好。
- 数据库版本:选“企业版”,这一步和前面的安装类型其实是对应的。
- 配置类型:选“典型安装”。如果你想手动指定SGA大小、字符集、示例方案,可以选“高级安装”,但新手阶段典型安装完全够用。
- 数据库标识符:全局数据库名和SID默认是
orcl,可以改成你想要的,但建议保持一致,后面环境变量好配。字符集这里默认即可,如果想数据库存中文不乱码,可以手动改成ZHS16GBK或AL32UTF8,后面细说。 - 管理口令:设置SYS、SYSTEM、DBSNMP用户的密码。注意Oracle对密码复杂度有校验,必须是字母数字混搭且满足一定长度,比如
Root_123456。这个密码后面要用,别设置完就忘。
设置完这些,安装程序会进入“先决条件检查”页面。这里大概率会看到一堆Warning甚至Error。我的经验是:
- Error级别的项必须处理,比如
/dev/shm不足、磁盘空间不够; - Warning级别的项可以放心点“忽略”,比如某些依赖包的版本比要求的还新,属于误报。
检查列表底部有一个勾选框“忽略所有先决条件检查”,如果你确认依赖包都装过了,可以直接勾上再点Next。但我不建议一上来就无脑忽略,万一真的是内存不够,装到一半挂了更难受。
3.3 安装过程中的root脚本执行与数据库创建
点击Install之后,Oracle会进入安装主流程,进度条大致会走十几分钟,期间日志文件在/u01/app/oraInventory/logs里。如果你的CPU核数给够了,这个过程其实挺快的。
装到大约90%的位置,系统会弹出一个窗口,要求以root身份执行两个脚本:
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh这时候另开一个终端,切到root用户,依次执行这两条命令。注意root.sh执行过程中会询问是否把oracle用户加入dba组,输入y即可。执行完回到安装窗口,点击OK继续。
脚本执行完后,安装程序会自动调用DBCA(Database Configuration Assistant)创建数据库实例。这个过程大概也要5到10分钟,期间控制台日志会显示ORA-....之类的信息,看到错误别慌,大部分只是DBCA在检查过程中的正常输出。
等到最终页面显示“Completed”并且给出EM管理地址(一般形如http://localhost:1158/em),就说明安装成功。这里可以顺手验证一下:
ps -ef | grep smon如果能看到一个名为ora_smon_orcl的进程,说明数据库实例已经在跑了。
4. 安装后的初始化配置与验证
4.1 配置oracle用户环境变量
安装完成不代表万事大吉,如果你直接重启虚拟机,再执行sqlplus会发现命令都找不到。原因很简单:Oracle的安装目录没有加进PATH环境变量。
编辑oracle用户的家目录下的.bash_profile,把下面内容追加进去:
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH然后执行source ~/.bash_profile让它立即生效。这几个变量的含义非常简单:
ORACLE_BASE是Oracle基础目录;ORACLE_HOME是数据库软件的安装位置;ORACLE_SID是你要连接的实例名,这里对应安装时的orcl。
不配置环境变量的话,每次登入都要手动写一长串绝对路径去执行sqlplus,烦都烦死。
4.2 监听器与数据库实例的启停
监听器(Listener)是数据库对外服务的大门,客户端连接数据库时先通过监听器找到实例。11g里监听器默认已经在安装时配置好了,可以通过命令查看:
lsnrctl status如果显示Service "orcl" has 1 instance(s)之类的信息,说明监听正常。如果因为某种原因没起来,启动命令是:
lsnrctl start数据库实例本身的启动停止比较直观:
sqlplus / as sysdba进入SQL*Plus后:
SQL> startup SQL> shutdown immediateshutdown immediate会等待当前事务结束然后快速关闭,是最常用的关闭方式,不要习惯性地用shutdown abort,除非实例真的卡死了连immediate都关不掉。
另外还有一个细节:重启虚拟机后,监听器和数据库默认都不会自动启动,需要你手动执行lsnrctl start和startup。如果想省事,可以把/etc/oratab里的orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N改成Y,这样dbstart命令就能用了。不过在学习环境里,我更推荐自己手动启停,顺便加深对组件之间关系的理解。
4.3 客户端连接验证与图形工具推荐
数据库装完了,怎么确认它真的能用?最简单的验证方式是在本机用SQL*Plus连接:
sqlplus system/Root_123456@orcl能进入SQL提示符,就说明实例和监听都正常。
如果你想从Windows本机通过Navicat、PL/SQL Developer这些工具连接虚拟机里的Oracle,需要注意几点:
- 虚拟机网络模式用NAT或桥接都行,但要保证Windows能ping通虚拟机IP;
- 数据库监听默认端口是1521;
- 连接时服务名填
orcl,不是SID名对应,很多人用PL/SQL Developer时把Database字段填成orcl反而连不上,这个字段填的是服务名,通常与SID一致所以容易混淆。
我个人现在推荐用Oracle官方的SQL Developer,完全免费,不需要破解,JDBC直连也不依赖Oracle Client,对新手上手友好。下载后配置连接时选“基本连接”,主机填虚拟机IP,端口1521,服务名填orcl,用户名密码填system和安装时设置的密码就能连上。
5. 常见安装问题与排查经验
5.1 先决条件检查报错的典型处理
把常见的报错和处理方法整理成一张表,遇到问题直接对号入座:
| 报错现象 | 原因 | 解决办法 |
|---|---|---|
| 物理内存不足 | 虚拟机内存小于1GB | 给虚拟机加到2GB以上 |
| Swap空间不足 | swap分区过小 | 加大swap或用swap文件补充 |
| 缺少gcc、libaio等包 | 依赖包未安装 | 按2.2节yum命令补齐 |
| /dev/shm小于建议值 | 默认只有内存一半 | mount -o remount,size=2G /dev/shm |
| 无法解析主机名 | /etc/hosts缺少映射 | 补上IP 主机名映射 |
| compat-libstdc++-33缺失 | CentOS 7默认源没有 | 忽略该项或第三方源安装 |
这里面最常见的场景就是Swap不足。很多人在VMware里建虚拟机时只分了1GB内存,Swap默认也只有1GB,Oracle一检查,Swap不满足两倍内存的要求,直接给个Error。最简单的解决办法是在控制台先关机,把虚拟机内存调到2GB,然后进入系统用dd创建一个大文件作为swap补充:
dd if=/dev/zero of=/swapfile bs=1M count=4096 mkswap /swapfile swapon /swapfile这样临时补充swap,不用重新分区,就能骗过Oracle的检查。
5.2 图形界面启动失败的坑
远程连接Linux运行./runInstaller时,最常见的报错是:
DISPLAY not set. Please set the DISPLAY variable or use the -silent option这是因为你没有配置X11转发。如果是MobaXterm用户,新建SSH会话时左侧会话设置里勾上“X11-Forwarding”,然后重新连接,执行export DISPLAY=:0.0后再运行安装程序就能看到界面了。
如果是Xshell用户,需要先在Windows端安装Xmanager,然后运行Xmanager中的Xstart或Xshell会话属性里勾选“转发X11连接”,方法类似。装了Xmanager之后,DISPLAY一般设成localhost:0.0或:0.0。
还有一个容易被忽略的坑:切到oracle用户后,发现sudo权限没有配置,导致没法临时切回root执行脚本。建议在配置用户阶段就用visudo给oracle用户加一行oracle ALL=(ALL) NOPASSWD:ALL,后面执行root脚本方便很多。
5.3 安装完成后运行报错速查
安装完成不代表从此高枕无忧,实际使用中还有一批高频报错,我遇到过无数次,这里一并记录:
ORA-01031: insufficient privileges执行sqlplus / as sysdba报权限不足,说明当前操作系统用户不在dba组里。检查id oracle是否包含dba,没有就执行usermod -aG dba oracle,然后重新登录。
ORA-01034: ORACLE not available / ORA-27101: shared memory realm does not exist通常发生在实例没有启动时。进入SQL*Plus执行startup,如果提示无法连接,先确认环境变量ORACLE_SID是否设置正确。
ORA-28001: the password has expired11g的默认密码策略是180天过期,很多实验库放两三个月再连就连不上了。解决办法是登录后改掉密码策略:
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; ALTER USER system IDENTIFIED BY 新密码;开发环境我一般都顺手把密码有效期改成无限,少给自己找麻烦。
ORA-12514: TNS listener does not currently know of service requested in connect descriptor这是开发环境最常遇到的一个。原因大概是数据库实例没有向监听器动态注册,或者数据库刚启动监听还没刷新。可以先执行lsnrctl services看看有没有对应服务,没有的话重启一下监听:
lsnrctl stop lsnrctl start如果还不行,检查$ORACLE_HOME/network/admin/listener.ora里的监听配置是否正常。
ORA-12541: TNS: no listener这个就纯粹是监听没起来,或者你连的IP/端口不对。执行lsnrctl status确认监听进程存在,并且确认连接串里的主机是虚拟机的实际IP。
5.4 安装包与解压环节的独家提醒
再分享两个和安装介质有关的经验,这些在官方文档里基本不会写:
第一,两个zip包解压时必须保持在同一目录层级,且磁盘剩余空间要足够。先解压1of2,再解压2of2,后者会自动往已有的database目录里补充文件,不会覆盖已有内容。如果你解压2of2时选择了不同的目录,安装时会报找不到某些组件。
第二,安装过程如果突然中断,再次运行runInstaller之前,建议先检查/u01/app/oraInventory里是否残留了上次的安装信息。最干净的办法是删掉oraInventory和/u01/app/oracle重新来,否则可能出现“Oracle实例已存在”的诡异提示。
6. 数据库使用中的实用配置建议
6.1 字符集到底怎么选:ZHS16GBK还是AL32UTF8
这个问题看起来小,但数据库一旦建完,字符集再想改就非常麻烦,大概率只能重建库。所以安装时就要想清楚。
如果你的业务系统主要面向国内用户,历史系统也以GBK编码居多,选ZHS16GBK兼容性最好,和旧系统的数据迁移基本无感。如果是新项目、涉及多语言或移动端,直接选AL32UTF8,这是Oracle目前主推的字符集,能存emoji和一些生僻字。
一条简单的判断标准:只要不确定,就选AL32UTF8。UTF8是趋势,现在新开发的系统基本都默认UTF8,GBK反而是为兼容老系统才选的。真到了和老库做DMP导入的时候再单独处理字符集转换也不迟。
6.2 内存管理:别让虚拟机吃掉整个物理机
Oracle 11g的典型安装会自动启用自动内存管理(AMM),它会在允许范围内动态调整SGA和PGA的大小。问题在于,如果虚拟机的内存只有2GB,Oracle可能默认分配了1GB左右给数据库,再跑Linux系统本身、SSH服务和其他进程,物理内存容易紧张,严重时会触发swap风暴,整个虚拟机卡成PPT。
我建议在安装前就规划好:虚拟机给4GB内存的话,可以在安装的“数据库配置”步骤里,把SGA大小手动限制在1.5GB以内,PGA限制在512MB。这样数据库能跑,宿主机也不会被拖垮。
当然,这属于学习环境的取舍。真生产环境里,内存规划要和业务并发量、缓存命中率一起评估,不是一两句话能说清的。
6.3 时隔多日再打开虚拟机,怎么快速恢复环境
练手机最尴尬的场景是:隔了两周再打开虚拟机,突然忘了数据库怎么启动。这里给一套固定动作,按顺序执行即可:
su - oracle export ORACLE_SID=orcl lsnrctl start sqlplus / as sysdba进入SQL*Plus后:
SQL> startup如果startup报错提示文件找不到,大概率是环境变量没加载,检查.bash_profile是否生效。如果想省事,可以把前面那几条启动命令写进一个脚本start_oracle.sh,每次开机直接跑脚本就行。
另外,我强烈建议在虚拟机安装完Oracle并且验证无误后,立刻给虚拟机拍一个干净快照。以后装实验数据搞坏了库,直接回滚快照,十分钟恢复初始状态,比什么都强。
7. 从安装到掌握:我的一点实操心得
最后,我想结合自己装过的几十次Oracle经历,说几句掏心窝的话。
Oracle安装这件事,难点从来不在“点Next”上,而在于安装前那半小时的系统准备。依赖包、内核参数、用户目录、资源限制,每一步看起来都像在“走形式”,但少了任何一环,后面都可能以最诡异的方式翻车。我见过太多同学卡在验证阶段,对着报错一头雾水,最后发现是/etc/hosts缺了一行。
如果这篇教程你只记一个要点,我想说:安装前老老实实把第2章的所有配置过一遍,不要跳步。哪怕你觉得某些参数无所谓,也照着配了再说。等你装过两三遍、对整个体系有了感觉,再回头看哪些可以精简也不迟。
还有一个经验是这个教程没有细讲的:装完之后赶紧学会看日志文件。Oracle的运行日志在$ORACLE_HOME/cfgtoollogs/dbca和$ORACLE_HOME/log里,遇到问题先看日志再决定怎么处理。比起在搜索引擎里无头苍蝇一样翻帖子,直接看日志往往能少走很多弯路。
最后给你留一个小练习:装完数据库后,尝试用sqlplus system/密码@orcl连接一次,再用SQL Developer连接一次。能通过两种方式都连上,就说明监听器、实例、网络、认证这条链路已经完整打通了。这一步通了,后面学表空间、用户权限、备份恢复才会顺畅。