ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Oracle 19c安装全攻略:从下载、配置到排错一站搞定

Oracle 19c安装全攻略:从下载、配置到排错一站搞定 Oracle数据库的下载安装网上教程一大把但大多数都是“截图命令”的流水账跟着走一遍容易遇到问题还是懵。我最早接触Oracle的时候光一个监听服务起不来就折腾了两天后来才慢慢摸清楚里面的门道。所以这篇不打算只给你贴步骤我会把版本选择、账号注册、安装前检查、静默安装、环境变量、监听器这些关键环节背后的原理和坑都讲清楚尽量让哪怕零基础的小白也能搞明白“为什么要这么做”而不只是“照着做就行”。先说清楚这个教程适用的人群刚接触Oracle数据库的学生、想在自己电脑上装一套环境练手的开发人员以及工作需要搭建本地测试库的运维新手。如果你是想在生产环境部署Oracle或者需要处理RAC集群这种复杂架构那建议直接去找官方文档或专业的DBA帮忙我这边讲的是“个人电脑/单机环境跑起来”这条最稳妥的路径。1. 下载Oracle前的关键准备1.1 先搞清楚你要装哪个版本Oracle数据库的版本命名和选择逻辑这几年变化挺大很多人一上来就在官网迷路就是因为版本太多不知道选哪个。目前主流的版本大概分三档老而弥坚的11g、使用范围最广的19c、以及Oracle重点推广的最新版21c/23ai。11g是很多老系统还在用的版本网上搜“oracle 11g 下载资源”的热度至今不减。但这里我要先劝一句除非你是为了适配公司老项目否则新装环境就别碰11g了它已经过了官方标准支持期安全补丁不再更新而且在新操作系统上安装会遇到各种兼容性问题需要手动改很多参数折腾半天装好了还容易出隐患。我推荐个人学习或开发环境优先考虑19c。原因是19c是长期支持版本Oracle说它是“Long Term Support”版本稳定性和兼容性都经过了充分验证网上遇到问题也容易搜到解决方案。21c和23ai功能更新但很多特性在实际项目中还没普及教程资源相对少一些。1.2 确认你的电脑配置是否达标Oracle算是数据库里比较“吃”资源的选手虽然不像有些人说的那么恐怖但配置太差确实跑不动。最低要求是8GB内存、50GB硬盘空间这个只是跑起来的最低门槛。实际体验下来16GB内存跑得比较舒服开发环境至少给Oracle留4GB内存空间不然建库的时候动辄报ORA-04031共享池内存不足或者机器卡成PPT。操作系统方面官方支持Windows Server和主流Linux发行版RHEL、CentOS、Oracle Linux等。Windows 10/11的个人版系统装上也能跑只是官方文档不推荐我实测过Windows 11家庭版装19c没有太大问题顶多安装过程中提示一两个兼容性警告点“继续”就行。硬盘必须是NTFS格式FAT32不行因为Oracle的数据文件动辄几个GBFAT32单文件4GB上限直接卡死。虚拟内存页面文件建议设置成物理内存的1.5倍以上别问为什么后面建库时你就知道了。1.3 提前注册好Oracle账号官网下载必须要登录Oracle账号注册是免费的但过程有点繁琐。打开Oracle官网点右上角的人头图标进入注册页面会让你填一堆信息邮箱一定要填常用的因为要收验证邮件。这里有个小技巧注册时地区选择“中国大陆”会遭遇验证码加载半天的情况我当时是换了浏览器才搞定后来发现用Edge浏览器成功率更高Chrome有时候会被页面的自动化检测拦下来。账号注册完成后建议顺手把账户信息记在备忘录里因为Oracle账号和云服务账号是打通的以后你可能会用到Oracle Cloud的免费资源或者去Oracle Support论坛提问都用同一个账号。2. 官网下载全流程2.1 打开下载页面登录账号后在官网导航菜单找到“Downloads”入口或者在浏览器直接输入Oracle数据库软件下载地址。进入后你会看到一排版本列表点击你想下载的版本比如19c然后在页面里选择操作系统平台。这里有个细节要注意Oracle的下载页面区分“Installation”和“Grid Infrastructure”两种文件如果你只装数据库单机版下载第一个“Database”的zip包就行别手抖把Grid Infrastructure也下载了那是给集群环境用的单机装了纯属浪费时间和硬盘空间。2.2 选择适合的安装包Oracle 19c的Windows版本只有一个zip安装包大约2GB左右Linux版本则分成两个zip一个是数据库软件本身另一个是兼容包或补丁。下载时看清楚文件名不要只看标题。下载过程中网速如果很慢不要反复刷新或者重试Oracle的下载是支持断点续传的找个好用的下载工具挂上就行。有个小经验如果官网老是下载中断可以试试在下载链接前加上Oracle的CDN节点前缀或者换网络环境比如用手机热点试试实测有时候换IP段比一直死磕同一个链接更有效。2.3 下载文件的完整性校验安装包下载完之后强烈建议先做一次校验和比对避免文件损坏导致安装到一半报错。Windows下用命令提示符运行certutil -hashfile 文件名 SHA256Linux/macOS用sha256sum然后把输出的哈希值和官网上公示的哈希值对比完全一致再继续。这一步虽然多花两分钟但能帮你避开很多莫名其妙的安装问题。我之前帮同事排查过一个安装到46%就报错的情况最后发现就是zip包损坏导致的重新下载一次就好了。3. Windows环境安装实操3.1 安装前的系统调整在Windows上装Oracle 19c之前有几个系统层面的设置建议提前做好不然装到一半可能让你崩溃。首先是关闭UAC用户账户控制安装过程中如果频繁弹出权限确认框很容易打断安装程序的状态流转。打开电脑设置搜索“UAC”把滑块拉到“从不通知”装完再拉回来记得重启一次。然后是以管理员身份运行安装程序。右键点击安装包解压后的“setup.exe”选择“以管理员身份运行”没有这一步后面创建数据库时大概率会报“权限不足”之类的错。还有一点Windows防火墙最好临时关掉或者在防火墙规则里放行Oracle的安装程序和一些关键端口1521最常用。不关的话有时候安装程序启动监听服务时会莫名其妙失败你排查半天也找不到原因其实是防火墙在后面拦着。3.2 安装向导各步要点Oracle的安装向导虽然是一路“下一步”但中间有几个配置项必须认真对待。配置安全更新的页面把“我希望通过My Oracle Support接收安全更新”这个勾选框取消掉这个就是注册时的邮箱你不取消它后面每次启动数据库都会去连Oracle的服务器检查更新既慢又烦。“安装选项”选“创建和配置数据库”默认如果你只是先装软件不建库后面手动建库会很麻烦小白不建议选。“系统类别”选择“桌面类”因为你在个人电脑上学习用没必要选“服务器类”那种复杂的配置。“Oracle基目录”和“软件位置”建议直接用默认路径不要放在中文目录下这一点特别重要Oracle对中文路径的支持一直有坑装了之后各种奇怪报错。我的习惯是统一用C:\app\oracle这种全英文路径。“数据库版本”选择“企业版”没问题即使你只是学习企业版功能全以后想尝试什么特性都能玩。全局数据库名和SID建议都用orcl这是最通用的配置以后看到网上教程里的命令示范多数默认这个名称匹配起来少踩坑。管理口令就是数据库超级管理员sys的密码这个一定要设一个你能记住且复杂度够的密码比如包含大小写字母和数字。Oracle对密码强度有要求弱密码会在最后一步建库时报错。3.3 安装过程卡住怎么办安装过程中出现卡顿或者长时间停在某个百分比先不要急着强制终止。Oracle安装有很多步骤是要执行脚本的有些脚本执行时间本来就长尤其“链接数据库”这一步在配置较低的电脑上可能卡上十几分钟。判断是否真的死掉的办法是观察CPU和磁盘I/O如果任务管理器显示磁盘或CPU仍然有活动就耐心等如果完全没有任何活动且持续时间超过半小时那就要检查是不是某个服务进程崩了。遇到这种情况最稳妥的办法是结束安装进程清理注册表和残留文件后重新来别硬等。3.4 安装完成后的目录结构装完之后C盘会多出一个app目录里面是你Oracle的环境根目录ORACLE_HOME核心内容都在app\oracle\product\19.0.0\dbhome_1下。这个路径里能看到bin可执行文件、network网络配置文件、database参数文件等标准目录记住这个目录后面配置环境变量和排查问题都用得到。4. Linux环境安装要顺手很多4.1 为什么Linux下安装其实更简单很多人以为Linux装Oracle很难其实恰恰相反只要前置依赖包补齐了Linux下安装比Windows更稳定产生的后续问题也少。而且生产环境基本都是Linux运维习惯Linux也更符合实际工作需求。我自己的经验是在CentOS 7或Oracle Linux 7/8上装19c跟着官方文档走成功率相当高。难点只在于需要配置好内核参数和安装一堆依赖库但这些都是有标准答案的。4.2 内核参数与依赖检查安装前需要配置的内核参数包括共享内存、信号量、进程数限制等这些参数写在/etc/sysctl.conf里重启后长期生效。有个偷懒的方法是直接参考Oracle官方给出的推荐值不需要死记硬背。比如kernel.shmall、kernel.shmmax这两个参数直接给个较大的值就行因为现在服务器内存普遍很大。依赖包方面不同的Linux发行版名称会有差异但大体上都包含binutils、glibc、libaio、libgcc、libstdc、make、gcc这些。最简单的做法是拷贝官方文档里的依赖列表写成一串yum命令一次性装好省得装到一半报缺少库再回来补。4.3 静默安装方案命令行环境或远程服务器上装Oracle不可能像Windows那样点图形界面所以必须用静默模式。方法是先准备一个响应文件response file把安装过程中要回答的问题全部写在这个文件里然后通过一句命令执行安装./runInstaller -silent -responseFile /path/to/your_response_file.rsp响应文件里最重要的参数包括oracle.install.optionINSTALL_DB_SWONLY只装软件不建库或者选择同时建库、UNIX_GROUP_NAMEoinstall、INVENTORY_LOCATION、ORACLE_HOME、ORACLE_BASE等。这些参数如果写错安装会直接报错退出所以写完后建议通读检查一遍再执行。4.4 root脚本的执行时机静默安装进行到后半段终端会提示你“需要用root权限执行两个脚本”分别是在$ORACLE_HOME/root.sh和/u01/app/oraInventory/orainstRoot.sh。这一步千万别跳过很多人安装成功但启动不了数据库就是因为漏了root脚本。执行完root脚本再回到终端按“Enter”继续整个安装才算真正结束。在Windows上也有类似的操作但没有这么明显所以很多小白在Linux下装到这一步就愣在那里。5. 安装后的环境变量与配置5.1 Windows环境变量配置详解装完Oracle后为了让命令行的sqlplus、lsnrctl这些工具在任何目录下都能直接运行需要配置环境变量。Windows系统下按WinR打开运行窗口输入sysdm.cpl进入系统属性“高级”选项卡里找到“环境变量”。在系统变量里新建ORACLE_HOME值填你的Oracle安装路径比如C:\app\oracle\product\19.0.0\dbhome_1。再把%ORACLE_HOME%\bin追加到Path变量里。环境变量生效需要新开一个命令行窗口旧窗口不会自动刷新。配置完可以在命令行敲sqlplus / as sysdba试一下如果出现SQL*Plus的命令提示符说明配置成功。如果提示“sqlplus不是内部或外部命令”回去检查Path是否写对、ORACLE_HOME路径是否真实存在。5.2 Linux环境变量配置Linux下的环境变量写在用户主目录的.bash_profile或.bashrc里内容大致是export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/19.0.0/dbhome_1 export PATH$ORACLE_HOME/bin:$PATH export ORACLE_SIDorcl注意ORACLE_SID这个变量是Linux下独有的关键环境变量它决定了你连接本地数据库实例时默认用哪个库Windows下SID是写在注册表里的不需要专门设环境变量。5.3 配置监听服务监听器Listener是Oracle数据库对外提供服务的“门卫”客户端连数据库首先要连到监听器再由监听器把请求转发给数据库实例。安装完成后Windows下的监听服务一般会自动启动任务管理器里能看到一个叫“OracleOraDB19Home1TNSListener”的服务。但有时候这个服务就是启动失败原因可能是端口被占、配置文件错误、或者路径权限问题。排查顺序如下先用netstat -ano | findstr 1521看1521端口有没有被其他进程占用如果没有再检查listener.ora配置文件确认监听地址和端口是否正确。最后一点经验之谈如果你改过主机名监听配置里可能还残留旧主机名也会导致启动失败。Linux下启动监听用lsnrctl start命令查看状态用lsnrctl status。如果启动不了日志在$ORACLE_HOME/network/log目录下打开listener.log看最后几行就能大概定位问题。6. 创建数据库实例全流程6.1 数据库实例和软件是两回事这里要先理清一个概念装好的Oracle软件只是一个“空壳”真正能用的是“数据库实例”也就是你通过配置创建的、包含数据文件的数据库环境。就好比装好了Word软件但你得新建一个文档才能打字。安装向导如果选择了“创建和配置数据库”那Oracle在安装结束时就已经帮你建好了一个实例如果你只装了软件就需要手动用DBCADatabase Configuration Assistant来建库。Windows下从开始菜单找“Database Configuration Assistant”打开或者命令行直接输入dbca。Linux下是在命令行敲dbca。6.2 DBCA建库参数详解DBCA向导中“数据库操作”选“创建数据库”“创建模式”选“高级配置”才能手动控制参数。这一步我多说两句小白可能会觉得“典型配置”更省事但我建议至少要明白高级配置里的几个关键参数是什么意思。内存分配是容易出问题的环节。Oracle 19c默认使用自动内存管理AMM理论上它会根据系统负载动态调整SGA和PGA大小但有时候它调整的速度跟不上实际需求尤其是并发大的时候。我的习惯是直接手动指定SGA共享内存区大小比如SGA2G、PGA1G这样行为更可预期。字符集选择也同样关键。如果你的业务需要存储中文选AL32UTF8这是最通用的UTF-8编码兼容各种客户端如果只处理简体中文也可以选ZHS16GBK存储占用更小。字符集建库后修改很麻烦所以这里一定要想清楚。存储类型、闪回区、归档模式这些如果只是本地测试环境保持默认即可不用追求和正式生产一样。6.3 建库后立刻要做的事建库完成后第一件事是检查数据库进程是否正常。打开命令行执行sqlplus / as sysdba进入SQL*Plus后输入select status from v$instance;如果返回OPEN说明数据库正常运行。第二件事是创建一个业务账号别用什么sys或者system直接干业务。生产环境这种“最小权限原则”的习惯从你第一天学数据库就应该养成。创建命令很简单CREATE USER dev_user IDENTIFIED BY dev123456; GRANT CONNECT, RESOURCE TO dev_user;这样你就有一个可以日常连库操作的账号了。7. 常见报错与排查技巧7.1 监听服务无法启动这个报错应该能排进Oracle新手常见问题前三名。我见过太多人卡在这一步。症状是在服务管理器里点“启动”OracleOraDB19Home1TNSListener服务过几秒提示“本地计算机上的OracleOraDB19Home1TNSListener服务启动后停止”。排查第一步用刚才说的netstat -ano | findstr 1521查端口占用第二步查listener.ora文件路径在$ORACLE_HOME\network\admin下看看HOST配置里的主机名是否和当前机器名一致第三步看listener.log日志。大多数情况都是这三类原因按顺序排查基本能解决。还有一个冷门的坑Windows的hosts文件里如果配置了不正确的映射比如把localhost解析成了不存在的IP监听也会启动失败。打开C:\Windows\System32\drivers\etc\hosts确认里面有127.0.0.1 localhost这一行。7.2 ORA-12541: TNS无监听器这个错误几乎每个用过Oracle的人都遇到过。它表示客户端尝试连接数据库时在指定地址找不到监听器。可能的原因有两种监听服务没启动或者客户端配置的连接地址和监听器实际监听的地址不一致。排查和上面的步骤类似先确认监听服务状态再用tnsping命令测试连接。如果tnsping通了但客户端仍然报错检查tnsnames.ora里的主机名和端口写没写对。另外如果服务器有多个IP地址监听器默认可能只绑定了一个IP用lsnrctl services查看当前监听器接受哪些地址的请求。7.3 ORA-12514: TNS服务不存在这个错误往往让人摸不着头脑因为监听器是通的但报错说服务不存在。原因是数据库实例注册到监听器的名称和你要连接的服务名对不上。在tnsnames.ora文件里写的服务名必须是数据库实际注册的名称。数据库实例启动时会把它的服务名和实例名注册到监听器用lsnrctl services就能看到注册了哪些服务。你要做的就是让tnsnames.ora里SERVICE_NAME的值和lsnrctl services显示的Service名称保持一致。这个问题在数据库服务名比较特殊时容易出现比如带域名的库名。7.4 密码忘记怎么处理Sys密码忘了不要想着重装系统有更简单的方法。在数据库所在服务器上使用操作系统认证方式登录sqlplus / as sysdba进入后执行ALTER USER sys IDENTIFIED BY new_password;就能重置密码。Windows下要先确保当前Windows用户对Oracle有管理员权限或者在sqlnet.ora里配了操作系统认证。7.5 内存相关报错ORA-01034和ORA-27101这两个错误组合出现通常表示实例没有启动。最常见的触发原因是上次关机时数据库没有正常关闭。Windows服务模式下数据库一般是随服务启动自动开始的但如果之前你用命令行手动关闭过重启后没有手动启动就会报这个错。解决办法是先启动监听器然后用startup命令拉起数据库实例。如果startup报内存不足或ORA-00845多半是/dev/shm容量不够Linux下或者虚拟内存设置太小Windows下扩容后重试。8. 卸载Oracle的正确姿势8.1 Windows卸载容易踩的坑很多人装完Oracle发现不对劲想卸载直接到“控制面板-程序和功能”里点卸载结果卸载一半报错然后系统里一堆残留文件和注册表项后续想重装都装不干净。这就是因为Oracle不像普通软件那么简单。正确做法是先用“Universal Installer”的“卸载产品”功能把Oracle软件卸载干净然后手动删除C:\app目录接着清理注册表运行regedit删除HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE下的相关项以及HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services里以Oracle开头的服务项最后检查服务管理器里还有没有残留的Oracle服务有的话用管理员命令行执行sc delete 服务名删除。8.2 Linux卸载相对清爽Linux下卸载Oracle要简单得多主要就是删目录、删配置、删用户# 停库、停监听 sqlplus / as sysdba EOF shutdown immediate; EOF lsnrctl stop # 删除ORACLE_HOME和ORACLE_BASE rm -rf /u01/app # 删除oracle用户和组 userdel -r oracle groupdel oinstall groupdel dba # 清理环境变量配置 # 手动编辑 /etc/profile 或 /home/oracle/.bash_profile删除Oracle相关行还有一点检查/etc/oratab文件把里面Oracle相关行删掉否则重启系统时可能报莫名其妙的警告。9. 安装日志的妙用9.1 日志在哪看安装过程遇到问题第一反应不应该是百度报错信息而是先看日志。Oracle的安装过程每一步都有日志记录Windows下日志在C:\Program Files\Oracle\Inventory\logs目录Linux下在/u01/app/oraInventory/logs。日志文件命名规则大概是installActions*.log和oraInstall*.err安装失败时最后的错误信息都会写到里面比报错弹窗给出的信息详细得多。我记得有一次安装失败弹窗只显示一个笼统的警告日志里面却明明白白写着哪个依赖包缺失照着日志去装依赖问题立刻解决。9.2 怎么看日志打开日志后直接翻到最后面几十行看错误标记。常见的ERROR级别记录才是问题关键。遇到看不懂的报错把关键错误信息复制到搜索工具上比直接搜整个报错弹窗准确率高很多。日志里如果有“INFO: 某某文件不存在”之类的提示通常直接去找那个文件比猜问题快得多。10. 本地环境快速自测10.1 验证安装成功的标准流程安装配置完成之后用一套固定流程快速验证环境是否健康。依次执行# 1. 检查监听状态 lsnrctl status # 2. 登录数据库 sqlplus / as sysdba # 3. 查看实例状态 SELECT status FROM v\$instance; # 4. 查看数据库open状态 SELECT open_mode FROM v\$database; # 5. 测试业务账号 sqlplus dev_user/dev123456localhost:1521/orcl SELECT 1 FROM DUAL;如果以上步骤全部通过说明你的Oracle环境已经能用可以正常开发和学习。10.2 做一个简单的可用性测试大部分Oracle安装教程到“能登录”就结束了但实际使用中还会遇到很多问题。我建议在刚开始学习时就把几个常见的坑提前体验一遍比如用客户端连接测试、导入导出练习、数据泵备份等这些操作能帮你更快熟悉Oracle的工作方式。还有个经常被问到的问题Oracle里执行select 1 from dual;时dual表到底能存多少数据。其实dual是Oracle内部提供的一个单行单列表专门用来做不涉及实际表的运算它本身不支持存大量数据也不应该拿来当业务表使用。类似的还有trunc(sysdate)取当天零点、case when条件判断、分页的rownum或FETCH FIRST写法都是初学者会反复用到的基础知识点建议有空把这些语法过一遍。另外给用数据库导出数据的人提个醒如果身份证号导出到Excel后变成科学计数法通常是client工具把长数字识别成了数值并且精度丢失。解决办法是在导出时就设置字段为文本格式或者用SQL查询时拼接一个不可见字符强制转成字符串例如select col1 || chr(9) from table导出的数据就不会被自动转成科学计数法了。安装Oracle这件事说难也难说简单也确实简单关键是理清几个核心概念软件、实例、监听器各自是什么角色下载哪个版本目标路径选哪里。把这些想明白了安装过程就是一路顺水推舟。我在实际安装过程中最大的体会是大部分失败都不是Oracle不好装而是提前准备没做好——系统配置没调好、依赖少了包、或者路径带中文。花十分钟把前面的准备工作做扎实后面能节省好几个小时的排错时间。最后再分享一个小技巧安装前一定记下你下载的版本号和安装路径后续和同事、网友交流时直接抛出版本号和操作系统别人才能给你准确的建议。如果你在安装的过程中还遇到了我这里没讲到的问题欢迎在评论区留言带上你的版本号、操作系统和完整报错信息我看到了会尽量回复。
返回列表