ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Oracle 11g保姆级安装指南:从解压到监听配置全程避坑

Oracle 11g保姆级安装指南:从解压到监听配置全程避坑 先说一个略微得罪人的共识Oracle 11g 属于那种“装一次记一辈子”的软件。网上劝退声一片绝大多数人的崩溃瞬间都是从双击 setup.exe 开始的。这篇保姆级指南不整玄的直接带你走一遍安装 Oracle 11g 的完整路径顺手把新手最容易翻车的监听配置、实例启动、密码锁账户这些坎也拆清楚。适合刚接触 Oracle 的在校学生、即将接手老项目的开发新人以及所有被领导一句话“你把Oracle装一下”砸懵的朋友。我见过太多人卡在奇怪的地方有的装了三个小时最后发现两个压缩包只解压了一个有的装完用 SQL*Plus 登录报一个 ORA-12541 就彻底放弃还有的在“口令管理”界面手一抖把 SYS 密码设错了后面所有操作全停摆。这篇文章就是把这类“教材里不写但真实会发生”的坑都捞出来按顺序摆平。1. 为什么“从入门到放弃”这句话偏偏被 Oracle 11g 占了1.1 三大劝退点安装、监听、实例先说个现实MySQL 装完默认就能用SQL Server 装完也有个图形界面带你建库但 Oracle 11g 不一样。它一上来就给你三座大山每一座都能让新手原地爆炸。第一座是安装本身。Oracle 11g 的安装包动辄 2GB 起步下载后是两个压缩包很多人栽在第一关两个包没有解压到同一个目录导致安装过程提示找不到文件。安装过程中又有一堆名词——Oracle Base、Oracle Home、Inventory 目录、全局数据库名、SID、字符集——每一个都像是天书。第二座是监听器。Oracle 采用客户端/服务器架构客户端连数据库必须先经过监听器。新手装完库满心欢喜打开 SQL*Plus 准备登录结果报 ORA-12541: TNS:no listener瞬间血压拉满。这其实是 listener 服务没起来或者没有监听对应端口。但新手哪知道这些只会以为是自己装坏了。第三座是实例。数据库装完不等于能用。你还要理解什么是实例、什么是数据库SGA 和 PGA 有什么区别为什么启动的时候要读参数文件为什么 shutdown 之后又要 startup。这些都搞不清楚后面写 SQL 也会一头雾水。1.2 认知门槛从 MySQL 思维切换到 Oracle 思维如果你之前只玩过 MySQL那么第一次接触 Oracle 11g最直观的冲击就是“怎么这么多概念”。MySQL 里一个库就是一个 schemaMySQL 的 user 可以直接授权访问某个库但 Oracle 里一个实例下面有多个表空间表空间里放段段里有区区里有块。还有 schema 和 user 基本一一对应很多时候你建了用户就等于有了一个 schema但要做权限控制的时候又是一套完全不同的语法。这种认知门槛不是靠背命令能解决的。我见过不少写过几年 SQL 的人第一次在 Oracle 里查 v$视图、看执行计划、调 shared pool整个人是懵的。所以如果你是从 MySQL 转过来建议先放下“应该差不多”的心态把 Oracle 的体系结构图找出来看三遍搞清楚 server process 和 background process 的区别搞清楚 redo log 和 undo 的关系。这些底子打好了再回来看安装和配置你会突然发现原来很多报错都能解释得通。2. 装前必看搞清楚你下载的到底是个什么东西2.1 版本选择11g 家族的常见版本对照Oracle 11g 这个叫法其实覆盖了一整个系列。它最早是 11.1后来是 11.2其中最经典也最普及的应该是 11.2.0.4。很多企业生产环境到现在还在跑这个版本所以网上搜教程、搜问题命中率最高的就是它。建议新手直接选这个版本不要碰早期的 11.1因为相关的补丁、资料都更少遇到问题也难搜到答案。从功能包来说你可能会看到 Standard Edition、Enterprise Edition 之类的词。新手一般选 Enterprise Edition因为功能最全网上教程默认也是基于企业版写的。还有一个细节Windows 版和 Linux 版是两套完全不同的安装包不要下错。如果你只是在个人电脑上学习Windows 版就够了图形界面安装最省心如果你是想模拟真实服务器环境那建议上 Linux但学习成本会高不少这篇文章先以 Windows 为主。版本适用场景新手推荐度备注11.1.0.6老古董仅存量系统不推荐资料少兼容性差11.2.0.1早期 11g一般有部分已知 bug11.2.0.4最常见生产环境大量存在强烈推荐教程多补丁全2.2 硬件与系统环境准备Oracle 11g 虽然是十几年前的产品但现在的新电脑装它也没问题。内存建议至少 4GB实际安装时 Oracle 会检查物理内存低于 1GB 会直接拒绝安装。不过别以为内存大就万事大吉Windows 10/11 上装 11g 常见的问题是某些动态库缺失或权限不足所以安装前最好关闭杀毒软件、关闭 UAC用户账户控制用管理员身份运行 setup.exe。硬盘空间要注意安装过程解压临时文件很占空间建议 C 盘预留 10GB 以上。数据库文件默认也会放在 Oracle Base 目录下这个路径后面改起来很麻烦建议一开始就选一个有足够空间的盘并且路径里不要出现中文或空格。我看到很多人踩过这个坑路径带中文装完各种报错搞了一天最后重装系统才解决。还有一个小环境检查Windows 的“网络发现”“文件和打印机共享”等网络服务会影响监听器绑定如果之前改过系统的网络配置建议把“本地连接”属性恢复默认。我自己第一次装的时候就是因为手动优化“系统服务”把某些依赖服务关了导致监听器一直起不来。2.3 安装前必须想清楚的三个参数启动安装之前有几个参数你必须先想好否则走到某一步会犹豫不决甚至装到一半想回头。第一个是全局数据库名。它的格式通常是“数据库名.域名”比如 orcl.example.com。新手直接填 orcl 就行域名可以留空。全局数据库名里的前半部分就是 SIDSID 是操作系统层面识别实例的名字后面连接数据库的时候要反复用到所以最好起一个简单好记的比如 orcl。第二个是字符集。国内新手建议选 ZHS16GBK因为 GBK 对中文的支持很成熟很多老系统都是这个字符集。如果你有国际化需求再考虑 AL32UTF8。但这里要特别提醒建库之后字符集基本不能再改改字符集比重装还麻烦所以一定要在建库那一步想清楚。第三个是内存管理方式。新手不要折腾太多直接选“典型”安装就行Oracle 会自动分配内存。等后面熟悉了再手动调 SGA 和 PGA 也不迟。要是你一上来就自定义内存内存分配不合理很可能导致实例起不来那真的是“入门即放弃”了。3. 保姆级实操从解压到建库的完整安装记录3.1 解压与安装前处理拿到两个 zip 包以后先不要急着双击。第一步是把它们放到同一个目录下比如D:\oracle_install\然后解压第一个包它会自动把第二个包的内容也释放到同一目录。这里最关键的细节是两个包必须放在同一个目录再解压分开解压到不同文件夹后面 setup 一定会报“找不到某个文件”。解压完成之后找到解压目录里的setup.exe右键“以管理员身份运行”。弹出的命令行窗口会先做环境检查这时候如果报“未通过操作系统认证”之类的提示不要慌勾选“忽略”就能继续。但有些硬性检查不能忽略比如内存不足、临时目录空间不足这种必须提前清理。安装类型选“创建和配置数据库”这样才能装完直接有一个能用的实例。如果你是只想装软件、后面再手动建库那选“仅安装数据库软件”也可以但新手建议直接创建数据库省得后续还要摸 DBCA。3.2 图形化安装的关键步骤进入图形界面后先设“Oracle 基目录”Oracle Base和“软件位置”Oracle Home。Oracle Base 是数据文件、配置文件、诊断日志的根目录Oracle Home 是安装程序所在目录。新手一般默认就行但如果你 C 盘不大记得把 Oracle Base 改到 D 盘或 E 盘。在“先决条件检查”这一步可能出现一个“正在检查网络配置”的提示不用管它。到“数据库标识符”界面时全局数据库名填 orclSID 会自动带出 orcl保持默认即可。“数据库文件目录”一般会自动继承 Oracle Base 下的 oradata 目录。到“恢复配置”时新手直接用“快速恢复”默认开启也行不过我建议如果只是为了学习可以关闭快速恢复区省一点磁盘空间。但要注意这是个人学习选择生产环境不建议关。内存选项卡里选“自动内存管理”就行。字符集选 ZHS16GBK 或 AL32UTF8按我前面说的来。在“示例方案”那一步如果磁盘够建议勾选安装示例方案这样后面练手有现成的表和数据比如经典的 scott 方案下的 emp、dept 表学习 SQL 的时候非常方便。最后一步是设置口令。SYS 和 SYSTEM 是超级管理员账户密码一定要记住建议设置成自己常用的复杂密码比如 Oracle123456。系统会提示密码强度不够但学习环境可以忽略。这里还有一个关键点“口令管理”按钮里可以解锁 scott 用户顺手把它解锁了最好不然以后要自己动手解锁往往还会碰上密码过期问题。3.3 安装完成后的三个确认动作安装进度条走完系统会提示“数据库创建完成”。这时候先别急着庆祝打开 Windows 服务管理器services.msc确认至少有两个 Oracle 开头的服务存在一个是OracleServiceORCL对应数据库实例另一个是OracleOraDb11g_home1TNSListener对应监听器。如果这两个服务没起来后面一切白搭。然后把监听器启动一下。打开命令行输入lsnrctl status如果看到The command completed successfully说明监听正常。如果没起来就用lsnrctl start手动启动。这个过程我建议新手至少做一次因为很多人的电脑重启后服务没有自动启动导致第二天完全连不上数据库。最后测试 SQL*Plus 能不能登录。在命令行输入sqlplus sys as sysdba会提示输入密码输入密码后如果进入 SQL 提示符说明安装成功了。然后执行select status from v$instance;如果返回OPEN说明实例正常。到这一步你已经完成了 90% 的“入门”。3.4 监听配置与客户端连通性测试很多人以为装完了就完了其实“能连上”才是关键。这里要区分两个角色本机连接和远程连接。如果是本机连接用 SQL*Plus 一般没问题因为默认会用本地命名解析。但如果你的同事要远程连你的库或者你自己用 PL/SQL Developer 连接就需要确认tnsnames.ora文件内容是否正确。这个文件一般在$ORACLE_HOME\network\admin\tnsnames.oraWindows 下默认是D:\app\oracle\product\11.2.0\dbhome_1\network\admin\之类的路径。打开后会看到类似这样的内容ORCL (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST localhost)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl) ) )这里 HOST 如果是 localhost那远程连的时候必须改成你电脑的实际 IP。新手最容易忽略这个点本机能连同事连不上就是 HOST 没改。SERVICE_NAME 要和建库时填的全局数据库名一致默认是 orcl。测试连通性用tnsping orcl。这个命令会显示尝试连接的服务器地址和端口如果能通会返回类似OK (0 msec)的提示。如果tnsping通了但 SQL*Plus 还是报错一般就是用户名密码或者权限问题往那个方向查。监听配置文件listener.ora一般不需要动默认就能监听 1521 端口。真遇到端口被占用的情况再考虑改端口但新手不建议自己乱改改错一个括号整个监听起不来。3.5 你可能会用到的几条基础命令安装配置完成以后新手只需要记住几条命令就足够撑过第一个星期了。第一条是lsnrctl status查看监听状态第二条是lsnrctl start/lsnrctl stop启动和停止监听第三条是sqlplus / as sysdba用操作系统认证登录到数据库本体——这个登录方式不需要密码前提是你当前用户属于 ORA_DBA 组Windows 安装时通常会自动把当前用户加进去。还有几条 SQL 命令值得背下来。想知道当前版本执行select * from v$version;想看数据库是否可读执行select open_mode from v$database;想启动数据库在 SQL*Plus 里执行startup想关闭执行shutdown immediate。这几条命令基本涵盖了你日常的启动关闭操作。4. 常见问题与排查实录4.1 新手高频报错速查表我统计了一下平时帮人看问题遇到最多的情况整理成下面这张表基本覆盖了安装配置阶段 80% 的报错。报错信息可能原因解决办法ORA-12541: TNS:no listener监听器服务未启动执行lsnrctl start或到服务管理器启动监听服务ORA-12154: TNS:could not resolve the connect identifiertnsnames.ora 里没有配置对应的服务名检查 tnsnames.ora 中的别名是否与连接字符串一致ORA-01017: invalid username/password用户名或密码错误确认输入的用户身份正确sys 登录要加as sysdbaORA-01034: ORACLE not available实例未启动执行startup启动实例ORA-12505: TNS:listener does not currently know of SID请求的 SID 与监听登记的 SID 不一致检查监听状态确认 SID 是否为 orcl服务中找不到 OracleServiceORCL安装失败或服务被停止到服务管理器确认服务是否存在必要时使用 ORADIM 重建服务这个表里的前三个错误我几乎每次带新手都会碰到。尤其是 ORA-12541基本就是监听没启动。很多人的电脑开机后服务没有自动启动所以一重启就连不上这个现象特别普遍。4.2 忘记密码和账户锁定的应急通道新手最容易遇到的情况是装的时候随手设了个密码第二天忘得干干净净或者 scott 用户被锁定了想解锁又不会。这里给一个万能解法。在命令行执行sqlplus / as sysdba这种登录方式走的是操作系统认证不需要数据库密码。进去以后如果是忘记 sys 或 system 密码可以执行alter user sys identified by 新密码; alter user system identified by 新密码;如果是 scott 账户被锁执行alter user scott account unlock;如果连 scott 的密码也想重置顺手执行alter user scott identified by tiger;这套流程是我个人觉得最值得新手中的新手掌握的。因为哪怕你后面把库搞崩了只要这个“后门”还在你就有机会救回来。这也提醒一件事不要把sqlplus / as sysdba的权限随意给别人这台机器上谁拿到了操作系统管理员权限谁就等于拿到了数据库的 root 权限。4.3 图形界面安装失败后的另一个办法静默安装有些人的电脑比较特殊图形界面装到一半就卡死或者点击 setup.exe 以后完全没有反应。这时候不用慌Oracle 11g 支持静默安装也就是通过命令和响应文件完成安装。这个过程虽然对新手不太友好但作为一个备选方案值得了解。你需要在解压目录的 response 文件夹里找到db_install.rsp编辑它填入 ORACLE_HOME、ORACLE_BASE、SID 等信息然后执行命令setup.exe -silent -responseFile D:\oracle_install\response\db_install.rsp安装程序会进入无人值守状态日志输出到指定文件。这种方式的好处是不会被图形界面的某个交互卡住适合批量部署坏处是如果哪一步配置有误报错信息比较生硬不太适合完全没有经验的人排查。不过我想说的是新手遇到图形界面装不上的情况先别急着上静默安装。95% 的图形界面问题都出在权限不足、杀毒软件拦截、解压不完整这三点上。把这三点依次排查完图形界面安装基本都能顺利跑起来。5. 给新手的几条实在建议装通只是一个开始真正痛苦的是装完之后不知道干什么。我给几个自己当年踩过坑之后的总结供参考。第一先别急着写业务 SQL花一个下午把 Oracle 的体系结构搞明白。你不用背出每一个进程的名字但至少要理解用户连接是一个会话会话执行 SQL 会经过解析、执行、获取结果解析可能用到共享池修改数据会写 redo。有了这个框架以后看任何报错你都能大概猜到是哪个环节出了问题。第二保持一个稳定可复现的环境。很多人学 Oracle先折腾 Windows再折腾虚拟机再折腾 Linux最后环境搞了一堆每个都装了一半。我建议新手在 Windows 上把一个实例装好、配置好、能跑起来然后用这个实例去学 SQL、学 PL/SQL、学备份恢复。一个干净的、你能完全掌控的环境比装十个不稳定的环境有用得多。第三要敢于看官方文档和视图。市面上 Oracle 的教程多如牛毛但很多都过时了。遇到问题先执行select * from v$parameter where name like %xxx%看看参数再查v$session、v$process、v$lock这些视图它们才是 Oracle 实时状态的真相。文档的话官方 Concepts 和 Reference 是两本大部头但任何概念不懂时去翻 Concepts 总没错。安装 Oracle 11g 这件事本质上是把你从一个只会“下一步”的操作者逼成一个愿意查日志、看视图、思考进程的人。这个转型过程确实有点痛但只要你迈过安装这道坎后面学习知识的速度会快很多。说句实在话当年我第一次装完看到 SQL*Plus 里能跑出查询结果的时候成就感还是很强的。你也一样耐住性子走完这套流程后面就都是坦途了。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进