Oracle 19c 安装教程:Windows 与 Linux 环境准备及避坑指南
1. 为什么还要写一份 Oracle 19c 的安装教程Oracle 19c 是很多企业生产环境里跑得最稳的一版数据库版本号 19.3.0.0长期支持到 2027 年往上。虽然现在云数据库满天飞但本地部署的需求一点没少——开发自测、内网隔离环境、老系统迁移、教学实验都绕不开自己装一套。我前后在 Windows Server 和 CentOS 7.9 上装过不下二十次踩过的坑从“先决条件检查失败”到“监听起不来”再到“EM Express 打不开”基本能凑一本错题集。这篇东西就是把这些年攒下来的实操经验一次性倒出来。Windows 和 Linux 两条线都覆盖重点放在安装前的环境准备和安装后的验证上因为这两块才是真正卡人的地方。中间那些“下一步下一步”的截图式步骤网上到处都是我就不重复了只挑关键决策点和容易翻车的地方讲。适合谁看如果你是第一次装 Oracle 的开发者、运维或者之前装过但总在某个环节卡住这篇能帮你省下至少一个通宵。如果你已经是老手也可以看看我在参数计算和排查思路上的整理说不定有能直接抄的。提示Oracle 19c 的安装介质分 Windows 和 Linux 两个平台下载时注意选对版本。Linux 下还要区分是单实例还是 RAC这篇只讲单实例RAC 的复杂度完全是另一个量级。2. 安装前的整体思路与环境规划2.1 先想清楚装在哪、给谁用装 Oracle 之前第一件事不是下载安装包而是想清楚这套库的用途。用途决定了你选 Windows 还是 Linux也决定了资源怎么分。纯开发自测Windows 最省事图形化安装一路点下去装完就能用 SQL Developer 连。缺点是 Windows 上 Oracle 的服务会吃掉不少内存笔记本上跑建议至少 8GB 内存最好 16GB。模拟生产环境必须上 LinuxCentOS 7.9 是主流选择和大多数企业内网环境一致。好处是资源占用可控坏处是安装过程全是命令行对新手不太友好。教学或实验建议用虚拟机VMware 或 VirtualBox 都行装完可以随时快照回滚。虚拟机配置建议 4 核 CPU、8GB 内存、100GB 磁盘起步磁盘类型选厚置备别用精简置备否则后期扩容麻烦。我个人的习惯是Windows 上装一套用于日常开发Linux 虚拟机里装一套用于测试和演练。两套环境的安装介质是分开的Windows 是.zip压缩包Linux 是.zip也是压缩包但里面的安装程序完全不同。2.2 版本号里的门道Oracle 19c 的版本号格式是19.x.x.x比如19.3.0.0是基础版后面还有19.25.0.0.241015这样的补丁版本。基础版安装介质在官网可以下载补丁版本需要支持账号才能获取。这里有个坑基础版装完之后很多新特性是没有的比如某些安全补丁和性能优化。如果只是学习基础版够用如果是生产环境一定要打补丁到最新。补丁的安装方式有两种OPatch 和 datapatch后面会细说。注意Oracle 官网下载需要登录账号注册是免费的。下载页面里选“Database 19c”然后根据平台选对应的 zip 包。Linux 下还要额外下载“Oracle Database 19c Grid Infrastructure”吗单实例不需要只有 RAC 才需要 Grid。2.3 资源规划的核心参数不管哪个平台下面这几个参数必须提前算好否则装到一半报错再回头改非常折腾。参数Windows 建议值Linux 建议值说明内存8GB 以上4GB 以上Linux 下 SGA 和 PGA 加起来别超过物理内存的 80%交换分区物理内存 1.5 倍物理内存 1.5 倍Linux 下 swap 不够会导致先决条件检查失败磁盘60GB 以上60GB 以上实际安装完约 10GB但归档日志和临时文件会涨/tmp 空间不适用至少 1GBLinux 下 /tmp 太小会直接报错内核参数不适用shmmax 等后面会给出具体计算方式Linux 下的内核参数计算有个简单公式shmmax至少设为物理内存的一半shmall设为shmmax / 4096。比如 8GB 内存shmmax 4294967296shmall 1048576。这些参数写在/etc/sysctl.conf里用sysctl -p生效。3. Windows 环境下的完整安装流程3.1 安装前的系统准备Windows 上装 Oracle 19c第一步是确认系统版本。官方支持 Windows 10、Windows Server 2016/2019Windows 11 也能装但没在官方列表里实测没问题。家庭版可以装但有些企业级功能用不了建议用专业版或服务器版。接下来是几个必须做的准备工作关闭杀毒软件和防火墙安装过程中会写注册表、创建服务杀毒软件很容易误拦。装完再开。设置虚拟内存如果物理内存小于 16GB建议把虚拟内存设到 16GB 以上否则安装时可能报内存不足。创建安装目录不要装在C:\Program Files下路径里不要有空格和中文。我一般用C:\app\oracle。以管理员身份运行安装程序右键setup.exe选“以管理员身份运行”否则创建服务会失败。还有一个容易被忽略的点Windows 的计算机名不要带下划线或特殊字符纯字母数字最好。Oracle 的监听器配置对主机名很敏感带特殊字符会导致监听起不来。3.2 图形化安装的关键步骤Windows 下的安装是图形界面大部分步骤直接下一步就行但有几个地方必须停下来想清楚。第一步配置选项。选“创建并配置单实例数据库”不要选“仅安装数据库软件”。后者只装软件不建库适合后续用 DBCA 单独建库的场景但新手容易搞混。第二步系统类。选“桌面类”还是“服务器类”桌面类会自动分配较小的内存参数适合开发机服务器类让你手动指定内存和字符集适合生产。我一般选服务器类因为可以自己控制 SGA 大小。第三步字符集。这是最容易埋雷的地方。默认是AL32UTF8如果你要存中文必须选这个。如果选了WE8ISO8859P1之类的后面存中文会乱码改起来非常麻烦。记住字符集在创建数据库时确定后期修改几乎等于重建。第四步口令。Oracle 12c 之后有个“口令复杂度”要求如果设得太简单会报错。建议用大小写字母加数字加特殊符号的组合比如Oracle_19c。如果不想被复杂度限制可以在安装前设置环境变量oracle_install_ignore_prereqs但不推荐。第五步先决条件检查。这一步会检查内存、磁盘、系统版本等。如果报错不要急着点“忽略”先看错误信息。常见的错误有内存不足关掉一些程序或者调大虚拟内存。磁盘空间不足清理磁盘或者换安装路径。操作系统版本不支持Windows 11 会报这个点“忽略”即可。安装过程大约 20 到 40 分钟取决于机器性能。装完后会自动创建数据库实例默认实例名是orcl。3.3 安装后的验证与配置装完不代表能用必须做几项验证。验证监听器打开命令提示符输入lsnrctl status。如果看到LISTENER的状态是READY说明监听正常。如果报TNS-12541说明监听没起来用lsnrctl start启动。验证数据库实例输入sqlplus / as sysdba如果能进入 SQL 提示符说明实例正常。再输入select status from v$instance;返回OPEN就对了。验证网络连接用sqlplus system/Oracle_19clocalhost:1521/orcl连接如果能连上说明监听和实例都正常。配置 EM ExpressOracle 19c 的网页版管理工具叫 EM Express默认端口是 5500。用exec dbms_xdb_config.sethttpport(5500);设置端口然后浏览器访问https://localhost:5500/em。注意是 HTTPS不是 HTTP。实操心得Windows 下 Oracle 的服务默认是自动启动的开机后要等一两分钟才能连。如果不想让它开机自启可以把OracleServiceORCL和OracleOraDB19Home1TNSListener改成手动启动用的时候再开。4. Linux 环境下的完整安装流程4.1 CentOS 7.9 的系统准备Linux 下装 Oracle 19c我一般用 CentOS 7.9因为它的内核版本和 Oracle 的兼容性最好。Ubuntu 也能装但有些依赖包名字不一样新手容易卡住。第一步安装依赖包。用 yum 装下面这些yum install -y binutils compat-libcap1 compat-libstdc-33 gcc gcc-c glibc glibc-devel ksh libaio libaio-devel libgcc libstdc libstdc-devel libXi libXtst make sysstat unixODBC unixODBC-devel这些包缺一不可尤其是compat-libstdc-33CentOS 7 默认没有必须手动装。第二步创建用户和组。groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracleoinstall是安装组dba是数据库管理组。oracle用户必须属于这两个组否则安装时会报权限错误。第三步创建目录并授权。mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1 mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01 chmod -R 775 /u01目录结构建议按 OFA 标准来/u01放软件/u02放数据文件。如果只有一块盘都放/u01也行。第四步修改内核参数。编辑/etc/sysctl.conf加入fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 1048576 kernel.shmmax 4294967296 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生效。注意shmmax和shmall要根据实际内存调整上面是 8GB 内存的配置。第五步修改用户限制。编辑/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 hard stack 32768这些限制不设的话安装时可能报“无法创建进程”或“文件句柄不足”。4.2 静默安装还是图形化安装Linux 下有两种安装方式图形化和静默。图形化需要 X11 转发如果你在 Windows 上用 Xshell 或 MobaXterm 连 Linux可以开 X11 转发然后运行./runInstaller。静默安装则是用响应文件全程命令行适合脚本化部署。我一般推荐先图形化装一遍熟悉流程后再用静默。图形化安装的步骤和 Windows 类似但有几个 Linux 特有的点先决条件检查Linux 下检查更严格/tmp空间、swap 大小、内核参数都会查。如果报错按提示改改完点“再次检查”。安装类型选“仅安装数据库软件”因为 Linux 下建库用 DBCA 更灵活。装完软件后再用dbca建库。操作系统组oinstall和dba要选对否则后面权限有问题。静默安装的响应文件在安装介质的response目录下db_install.rsp是装软件的dbca.rsp是建库的。改几个关键参数就行oracle.install.optionINSTALL_DB_SWONLY UNIX_GROUP_NAMEoinstall INVENTORY_LOCATION/u01/app/oraInventory ORACLE_HOME/u01/app/oracle/product/19.3.0/dbhome_1 ORACLE_BASE/u01/app/oracle oracle.install.db.InstallEditionEE oracle.install.db.OSDBA_GROUPdba oracle.install.db.OSOPER_GROUPdba然后运行./runInstaller -silent -responseFile /path/to/db_install.rsp -ignorePrereq-ignorePrereq是忽略先决条件检查不建议一开始就用先让检查跑一遍把该改的改掉。4.3 用 DBCA 建库的关键参数软件装完后用dbca建库。图形化dbca和 Windows 下类似静默模式用响应文件。建库时几个关键参数数据库名全局数据库名比如orcl。SID 和它保持一致。字符集必须选AL32UTF8和 Windows 下一样。内存分配选“典型”还是“自定义”典型会自动分配自定义可以手动设 SGA 和 PGA。我一般选自定义SGA 设 2GBPGA 设 1GB8GB 内存的机器够用。归档模式生产环境必须开归档开发环境可以不开。开归档后要设db_recovery_file_dest_size默认 4GB 可能不够。建库过程大约 15 到 30 分钟。建完后用sqlplus / as sysdba验证。4.4 安装后的环境变量与开机自启Linux 下装完 Oracle必须配置环境变量否则每次都要手动 source。编辑oracle用户的.bash_profile加入export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.3.0/dbhome_1 export ORACLE_SIDorcl export PATH$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:/lib:/usr/lib export NLS_LANGAMERICAN_AMERICA.AL32UTF8NLS_LANG很重要设错了会导致中文乱码。AL32UTF8和数据库字符集保持一致。开机自启用systemd或rc.local。CentOS 7 推荐用systemd创建/etc/systemd/system/oracle.service内容参考官方模板。简单点的话在/etc/rc.d/rc.local里加su - oracle -c lsnrctl start su - oracle -c dbstart别忘了给rc.local加执行权限。注意dbstart需要先修改oratab文件把orcl:/u01/app/oracle/product/19.3.0/dbhome_1:N最后的N改成Y否则dbstart不会启动实例。5. 常见问题与排查技巧实录5.1 先决条件检查失败的几种典型情况先决条件检查是安装过程中最容易卡住的地方Windows 和 Linux 都会遇到。下面整理了几种最常见的报错和解决方法。报错信息原因解决方法内存不足物理内存或虚拟内存不够关掉其他程序调大虚拟内存或 swap/tmp 空间不足Linux 下 /tmp 小于 1GB清理 /tmp 或重新挂载更大的空间内核参数不满足shmmax 等参数太小按公式重新计算并修改 sysctl.conf操作系统版本不支持Windows 11 或 CentOS 8点“忽略”继续或换支持的版本缺少依赖包Linux 下缺 compat-libstdc用 yum 安装缺失的包主机名解析失败/etc/hosts 没配在 /etc/hosts 里加上主机名和 IPLinux 下还有一个隐蔽的坑SELinux 没关。SELinux 会阻止 Oracle 写某些目录导致安装失败。安装前先setenforce 0临时关闭或者改/etc/selinux/config永久关闭。5.2 监听器起不来的排查思路监听器是 Oracle 网络连接的核心起不来的原因很多但排查思路是固定的。第一步看日志。监听器的日志在$ORACLE_HOME/network/log/listener.log里面会写具体错误。第二步检查 listener.ora。文件在$ORACLE_HOME/network/admin下确认HOST写的是主机名还是 IP。如果写主机名/etc/hosts里必须有对应的解析。第三步检查端口占用。用netstat -tlnp | grep 1521看 1521 端口是不是被别的程序占了。如果被占改listener.ora里的端口。第四步检查权限。监听器是以oracle用户运行的如果$ORACLE_HOME的权限不对会起不来。用chown -R oracle:oinstall $ORACLE_HOME修复。Windows 下监听器起不来常见原因是服务没启动。打开“服务”管理器找到OracleOraDB19Home1TNSListener手动启动。如果启动报错看 Windows 事件查看器里的应用程序日志。5.3 中文乱码的根因与解决中文乱码是 Oracle 使用中最常见的问题之一根因是客户端和服务器端的字符集不一致。服务器端字符集在建库时确定用select value from nls_database_parameters where parameterNLS_CHARACTERSET;查看。如果是AL32UTF8说明服务器端没问题。客户端字符集由NLS_LANG环境变量控制。Windows 下在注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB19Home1里Linux 下在.bash_profile里。必须设成AMERICAN_AMERICA.AL32UTF8和服务器端一致。如果已经出现乱码先确认是存储乱码还是显示乱码。存储乱码是数据写进去的时候就错了很难恢复显示乱码是客户端字符集不对改NLS_LANG就能解决。实操心得用 SQL Developer 或 Navicat 连接时也要注意客户端的字符集设置。SQL Developer 在“工具-首选项-环境-编码”里设成 UTF-8Navicat 在连接属性里设成 UTF-8。5.4 补丁安装的注意事项Oracle 19c 的基础版是 19.3.0.0生产环境建议打补丁到最新。补丁安装分两步OPatch 打软件补丁datapatch 打数据库补丁。OPatch 打补丁$ORACLE_HOME/OPatch/opatch apply /path/to/patch打之前先opatch lspatches看当前补丁列表打完再opatch lspatches确认。datapatch 打数据库补丁cd $ORACLE_HOME/OPatch ./datapatch -verbose这一步必须在数据库启动状态下运行而且要先关掉所有应用连接。补丁安装最容易出的问题是OPatch 版本太旧。Oracle 19c 基础版自带的 OPatch 可能不支持新补丁需要先下载最新 OPatch 替换。替换前备份原来的 OPatch 目录。6. 双环境对比与选型建议6.1 Windows 和 Linux 的差异对比装过两套环境后我把主要差异整理成表方便你根据场景选。对比项WindowsLinux安装方式图形化简单图形化或静默稍复杂资源占用较高服务多较低可控稳定性一般适合开发高适合生产字符集设置注册表环境变量开机自启服务自动需配置 systemd 或 rc.local补丁安装图形化或命令行命令行远程连接需配置监听和防火墙需配置监听和防火墙学习成本低中如果只是学习 SQL 和 PL/SQLWindows 足够。如果要模拟生产、做性能测试、学 RAC必须上 Linux。6.2 虚拟机安装的额外注意事项很多人用 VMware 装 Linux 虚拟机来跑 Oracle这里有几个坑要避开。磁盘类型选厚置备不要选精简置备。精简置备的磁盘会随着使用逐渐膨胀但 Oracle 的数据文件是预分配的精简置备会导致性能下降。内存分配虚拟机内存不要超过物理内存的 70%否则宿主机和虚拟机都会卡。8GB 物理内存的机器虚拟机最多给 4GB。网络模式选 NAT 或桥接。NAT 模式下虚拟机可以上网但宿主机访问虚拟机需要端口转发。桥接模式下虚拟机和宿主机在同一网段访问方便。快照装 Oracle 之前先打一个快照装完再打一个。这样装坏了可以快速回滚不用重装系统。共享文件夹如果要在宿主机和虚拟机之间传安装包用共享文件夹比 SCP 方便。但注意共享文件夹的权限oracle用户可能读不了。6.3 安装介质下载与校验Oracle 19c 的安装介质在官网下载Linux 下是LINUX.X64_193000_db_home.zipWindows 下是WINDOWS.X64_193000_db_home.zip。下载后一定要校验 MD5 或 SHA256否则安装到一半报“介质损坏”很麻烦。Linux 下用sha256sum校验Windows 下用certutil -hashfile校验。官网会提供校验值对比一下就行。提示下载页面里有个“See All”按钮点开才能看到所有平台的下载链接。别只下第一个那个可能是 Exadata 版本。7. 装完之后还能做点什么装完 Oracle 19c 只是开始后面还有一堆可以折腾的。比如配置 RMAN 备份、开归档模式、调优 SGA、建表空间和用户、配 Data Guard。这些内容每一个都能单独写一篇这里就不展开了。我个人在实际操作中的体会是安装本身不难难的是环境准备和问题排查。把先决条件检查当回事把日志看仔细大部分问题都能自己解决。另外装之前一定要打快照或备份装坏了重来的成本太高。最后再分享一个小技巧如果你在 Linux 下用静默安装可以把响应文件里的密码用oracle_install_ignore_prereqs跳过复杂度检查但生产环境千万别这么干。开发环境图省事可以生产环境必须用强密码。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →