ARTICLE DETAIL

资讯详情

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

Oracle 19c保姆级安装配置教程:从下载到跑通一次讲透

Oracle 19c保姆级安装配置教程:从下载到跑通一次讲透 Oracle 19c 保姆级安装配置教程从下载到跑通一次讲透说实话每次我帮同事或朋友装 Oracle内心都是又爱又恨。爱的是 19c 作为 Oracle 长期支持版本稳定性和性能确实没得挑恨的是但凡有一小步没弄对后面就是一连串的报错什么 INS-30131 安装挂起、ORA-12541 监听起不来、ORA-12154 无法解析服务名……新手很容易在这一堆英文报错里直接劝退。这篇文章我尽量把每一个细节都讲到包括很多人容易忽略的“安装前检查”“目录权限”“字符集设置”以及装完之后必须做的环境变量和监听配置。不只是把安装截图和默认选项罗列一遍我会把每一步“为什么要这样选”“选错了会有什么后果”也解释清楚。如果你是第一次接触 Oracle 19c跟着这篇文章一步步走基本上是能一把跑通的。文章面向的读者很明确准备在自己的电脑或服务器上安装 Oracle 19c 做开发测试、学习研究的人或者公司需要你搭一套 19c 环境、但没人带你、只能自己摸索的初级 DBA 和运维同学。不管你是 Windows 还是 Linux思路大致相同这篇文章以 Windows Server 环境为主因为问的人最多、坑也最多但涉及的概念和配置逻辑通用。不说废话了直接开始。Oracle 的安装最忌讳“看着教程盲点下一步”我们要先搞明白它到底在装什么、有哪些关键选择。1. 准备工作下载、版本选择与安装前检查1.1 到底该下载哪个版本别被“最新版”忽悠了先说版本。Oracle 19c 是 Oracle Database 12c 系列之后的长期支持版本Long Term Release官方支持周期长所以很多人把它作为生产环境的首选。但“19c”这个叫法下面还细分好几个版本号比如 19.3、19.16、19.22 等。这些版本号其实是 PSU补丁更新或者叫 Release Update功能上 19.3 和 19.22 核心没区别但 19.22 包含更多 bug 修复和安全补丁。如果你是第一次安装不建议直接去网盘、论坛或什么“Oracle 19c 一键安装包”下载原因很简单你没法确定这些文件是不是被修改过也不确定是不是完整。官方下载地址在 Oracle 官网的 Software Delivery Cloud需要注册一个 Oracle 账号搜索 Oracle Database 19c 即可。这里有个很多人没注意的点Windows 版本和 Linux 版本的安装文件不一样下载时一定要看清楚平台。另外19c 对操作系统版本有要求。以 Windows 为例至少要 Windows Server 2016 或 Windows 10 1809 以上版本老旧的 Windows 7 和 Windows Server 2012 并不在官方支持列表里虽然能强装但很容易出莫名其妙的问题。我见过有人强装成功但运行一段时间后实例崩溃排查起来非常痛苦。1.2 硬件要求别让安装倒在第一步Oracle 19c 官方建议的最低配置是 2GB 内存、10GB 磁盘但这只是“能装”的门槛不是“能用”的门槛。我个人的经验是如果你用 Windows 本机安装内存至少 8GB磁盘预留 20GB 以上比较稳妥。因为 Oracle 安装完基础软件约占 6~8GB创建数据库实例后数据文件、控制文件、在线日志、闪回区这些加起来非常容易超过 10GB。磁盘方面还要特别注意Oracle 的安装目录和数据文件目录不要选在 C 盘系统盘尽量用独立的数据盘。原因很简单数据库在运行时会持续写入重做日志、归档日志和审计日志如果系统盘空间被日志写满整个 Windows 系统都会卡死。配置检查的操作步骤打开“此电脑”右键 → 属性查看系统版本和内存大小。打开“任务管理器”→“性能”确认磁盘剩余空间。如果打算装完数据库后做大量测试建议把至少 4GB 内存分给 Oracle 实例使用。还有一个非常隐蔽的检查项关闭 Windows 防火墙或者至少放行 Oracle 的端口。很多人装完数据库后本地连接一切正常但局域网内其他电脑怎么都连不上十有八九就是防火墙在作怪。Oracle 19c 默认监听端口是 1521需要在防火墙入站规则中允许 TCP 1521 端口。1.3 安装前的系统环境准备在正式双击安装程序之前有几项系统配置必须提前处理我以前跳过这些步骤走了不少弯路。主机名和 hosts 文件配置。Oracle 把主机名解析看得非常重如果你电脑的主机名包含特殊字符或者 hosts 文件没有本机映射Oracle 安装程序经常会在“执行配置脚本”这一步报错。配置方法用管理员身份打开记事本编辑C:\Windows\System32\drivers\etc\hosts在文件末尾加上一行127.0.0.1 localhost 本机IP地址 你的主机名如果你的机器没有固定 IP也可以写成127.0.0.1 你的主机名。这一步是很多人忽略的坑——明明什么都正常但安装到最后就是报错或挂起。我建议大家在安装前先把这一步老老实实做了。关闭 Windows UAC用户账户控制。虽然 Oracle 19c 安装程序会自动申请管理员权限但 UAC 会拦截一些静默操作导致权限不足。最稳妥的方法是临时把 UAC 拉到从不通知装完数据库之后再恢复。清理已安装的 Oracle 组件。如果电脑上以前装过 Oracle 10g/11g/12c或者装过一次 19c 但失败了建议先用官方卸载工具清理干净再重启电脑最后手动删除残留的 Oracle 目录比如C:\app、C:\Oracle。关于卸载和注册表清理的详细内容我在第 6 章会专门展开讲。注意不要用 360 或各种电脑管家“一键卸载” Oracle这会留下大量注册表和残留目录往往比不卸载还麻烦。要用手动清理或者官方 Oracle Universal Installer 卸载。2. 容器数据库与非容器数据库安装前必须搞懂的关键选择2.1 CDB 和 PDB 到底是什么安装 Oracle 19c 过程中你会遇到一个灵魂拷问要不要创建为容器数据库如果这里没搞清楚后面使用起来会非常迷糊。简单来说容器数据库CDBContainer Database就像一栋写字楼里面可以划分出很多间办公室PDBPluggable Database。每一间办公室都是独立的数据库拥有自己的数据、用户和表空间但它们共享楼栋的水电和物业即 CDB 的系统资源。非容器数据库Non-CDB则是独栋别墅一个数据库就是一个完整独立的王国没有 PDB 的概念。19c 官方主推的是容器数据库架构因为它在迁移、备份、资源隔离方面都有明显的优势。实际运维中你可以在一个 CDB 里创建多个 PDB每个 PDB 就像一个独立的数据库开发环境可以同时挂多个 PDB 而不需要起多个实例。2.2 推荐选哪种我的建议可能和很多教程不一样如果你去 Oracle 官网看文档官方会推荐你选容器数据库因为这是未来的趋势12c 之后的版本非容器数据库一直在“去支持化”。但从新手学习测试的角度我其实建议你在自己的电脑上先用非容器数据库Non-CDB入手。原因有两点。第一网上大量现成的 SQL 教程、备份恢复教程、运维脚本很多都是基于非容器数据库写的。新手用非容器数据库能直接对照教程操作减少“为什么我的 SQL 和教程不一样”的困惑。第二非容器数据库的连接和概念更贴近大家熟悉的 MySQL、SQL Server只需连接一个服务名就能用不需要先接触 PDB 的概念。当然如果你的学习目标是奔着生产环境管理去的或者公司明确要求使用 CDB/PDB 架构那直接选容器数据库也行。操作差别其实不大就是在创建数据库的时候多选一个选项、多设一个 PDB 名称而已。具体的创建流程我会在第 4 章中分别说明。2.3 我先选了 CDB后面想用普通数据库怎么办装完 CDB 之后你仍然可以连接到 PDB 使用。连接方式上非容器数据库连接使用SERVICE_NAME orcl而容器数据库连接使用SERVICE_NAME orclpdbPDB 的名字。所以你在配置连接串的时候要想清楚连接的是哪个业务库。如果装完之后你后悔了想重来没有一键从 CDB 转成 Non-CDB 的办法只能重新建库。实际上也没有必要“选了 CDB 就跑 PDB、选了 Non-CDB 就直接用”就够了两者日常使用的核心语法差别不大没必要为了这个重装系统。3. Oracle 19c 完整安装主流程一步步跟着做3.1 解压安装包路径里绝对不能有中文和空格安装包下载完后第一步是解压。注意一定不要双击 ISO 或 ZIP 里的 setup.exe 直接运行而是要先完整解压到某个目录再运行安装程序。解压路径的规则非常严格不能包含中文、空格、括号或特殊字符。举个反面例子如果你解压到D:\数据库软件\Oracle 19c最新版\安装时大概率会报错提示路径无效或者找不到某些组件就是因为这个路径里有中文、空格和括号。正确的解压路径类似这样D:\oracle_install\19c。解压完成后打开目录找到setup.exe右键“以管理员身份运行”。如果弹出 UAC 用户账户控制窗口点击“是”继续。稍微等十几秒安装程序会进入图形化界面。3.2 配置安装选项邮箱和口令怎么填安装向导第一步是“配置安全更新”这里有个小技巧直接把“我希望通过 My Oracle Support 接收安全更新”的勾选去掉下面的邮箱栏留空点击“下一步”。系统会弹窗提醒你“未提供电子邮件地址”直接点“是”跳过即可。这一步走完后会让你选安装选项。有三个选项创建并配置单实例数据库含建库仅设置软件不建库之后手动建库升级现有数据库我的建议是如果是全新安装且想一把搞定选第一项“创建并配置单实例数据库”。如果你想快速验证软件层是否装好、之后再用 DBCA 精细控制建库参数可以选第二项。对于保姆级入门来说直接选第一项就好少走一步是一步。接下来是“系统类”和“Oracle 主目录用户”。系统类直接选“桌面类”这个类别会自动使用最小配置适合个人电脑。如果你是在服务器上安装可以考虑“服务器类”因为可以自定义更多数据库参数但初学阶段“桌面类”完全够用。数据库版本选“企业版”企业版功能最全而且授权费用我们暂时不用关心个人学习完全没问题。Oracle 主目录位置一般保持默认C:\app\用户名\product\19.0.0\dbhome_1或自定义到非系统盘同样注意路径不能有中文和空格。3.3 全局数据库名、口令设置和字符集选择这是新手最容易卡壳的地方。全局数据库名Global Database Name默认是orcl保持默认即可你也可以改成别的名字但建议只由字母、数字、下划线组成不要用短横线。数据库口令就是 SYS、SYSTEM 这两个超级管理员账号的密码必须牢记。这里单独说一下口令强度问题。Oracle 默认的口令策略比较严格要求口令至少 8 位包含大写字母、小写字母和数字。你设的密码一定要记牢忘了密码是非常痛苦的后面要修改得用ORAPWD工具或操作系统的os-authenticated方式本质上需要操作服务器权限。最好现在就按这个规范设置一个密码省得后面麻烦。字符集的选择很多教程根本没有拿出来讲但其实非常重要。在“从以下列表中选择字符集”这一步不要选默认的 AL32UTF8 之外的字符集除非你有明确的业务需求比如韩语、日语、阿拉伯语。AL32UTF8 是最通用的 Unicode 字符集支持多语言兼容性最好以后要处理中文字段也完全没有问题。3.4 管理员口令策略的坑角色分离和口令过期的坑在 Oracle 19c 安装过程中有一个步骤是让你设置 SYS、SYSTEM、PDB 管理员PDBADMIN的口令。这里有个细节容易被忽略系统默认把 SYS 和 SYSTEM 设为同一个口令如果你强制改了其中一个Oracle 会提示你密码不一致要你确认。我的建议是在“桌面类”安装中SYS 和 SYSTEM 使用同一个口令、PDB 管理员使用另一个口令然后两个口令都记在本地笔记里。同时要留意 Oracle 默认配置里的密码过期策略——默认的口令有效期是 180 天过期的结果就是应用连接报 ORA-28001。这个策略在生产环境是合理的但在学习环境就很烦人。装完之后可以用管理员身份登录执行以下 SQL 关掉密码过期ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;现在改好省得半年后突然连不上数据库的时候抓瞎。3.5 等待安装完成最容易出现“假死”的场景点击“下一步”之后安装程序会进入较长时间的安装过程通常 20~40 分钟。这期间屏幕上会有进度条和数据文件复制信息还有一行行的日志滚动。这里我要分享一个很多人踩过的坑安装过程中千万不要因为没动静就去关闭程序或者强制重启。Oracle 的安装过程会执行静默建库脚本、创建数据字典视图、编译系统存储过程有些步骤就是会长时间停留在某个百分比不动。尤其是打补丁期间一个脚本要跑十几分钟甚至半小时看起来像死机实际在正常执行。如果你怀疑安装进程卡死可以打开任务管理器查看是否有java.exe、oracle.exe、sqlplus.exe、cmd.exe相关进程在消耗 CPU——只要这几个进程在工作就说明安装还在正常进行你唯一要做的事就是继续等待。真正安装完成后界面会提示你“完成”并告诉你使用 Enterprise Manager 数据库控制台的地址。此时再点击“关闭”然后重启一次电脑再继续做后续环境配置。3.6 手动创建数据库如果你选择了“仅设置软件”的后续步骤如果你一开始选了“仅设置软件”那安装完 Oracle 软件后会没有数据库实例你需要手动打开“开始菜单”→ Oracle → 配置和移植工具 → Database Configuration AssistantDBCA。DBCA 启动后按向导操作选择“创建数据库”。选择“高级配置”或高级模式。这一步允许我们自定义存储位置、控制文件、字符集等。数据库类型选择“一般用途或事务处理”字符集务必改成 AL32UTF8。存储路径建议从C:\app\...\oradata改到其他磁盘目录但目录名不要用中文。记住全局数据库名和 SID通常都填orcl。设置 SYS 和 SYSTEM 密码。如果第一次创建时你选了容器数据库还会要求填写 PDB 名称比如ORCLPDB。点击“下一步”直到出现“创建数据库”按钮之后会有一段较长时间的自动创建过程。手动建库的好处是可以逐个参数明确设置不熟悉的参数在网上查也来得及。如果你是按第 3 章第一节的路线直接“创建并配置单实例数据库”那 DBCA 会在安装程序结束时自动执行效果一样。4. 安装完成后的关键配置环境变量、监听与服务4.1 环境变量配置为什么说从来不配的人很吃亏Oracle 安装完成后环境变量不是自动帮你全部配好的。最常见的必配项是ORACLE_HOME和PATH。ORACLE_HOME指 Oracle 软件的主目录比如C:\app\用户名\product\19.0.0\dbhome_1。所有 Oracle 程序都以它为基准寻找库文件、参数文件和消息文件。PATH要追加%ORACLE_HOME%\bin这样你在命令行里执行sqlplus、expdp、impdp、rman、lsnrctl等命令时系统才能找到这些可执行文件。配置步骤右键“此电脑”→ 属性 → 高级系统设置 → 环境变量。在“系统变量”中新建ORACLE_HOME变量值填你实际的 Oracle 主目录路径。然后找到PATH变量点击编辑新增一行%ORACLE_HOME%\bin。确认保存后重新打开一个命令提示符窗口旧的不会生效输入sqlplus / as sysdba如果能够正常进入 SQL*Plus 并连接到空闲实例那么恭喜你环境变量配置成功了。很多人在 cmd 里打sqlplus提示“不是内部或外部命令”就是没配置这一步。4.2 监听器配置本地能用、远程连不上的罪魁祸首Oracle 的客户端连接流程是这样的客户端 → 指定 IP 和端口 → 找到监听器 → 监听器把请求转发到对应数据库实例。所以监听器Listener配置是否正确直接决定了你能不能连上数据库。检查监听器状态的命令lsnrctl status正常情况下会输出监听程序的别名、监听协议、端口 1521以及下面列出的一些服务名。如果这里显示“No services”或者监听没起来要先用命令启动lsnrctl start如果你改了数据库的服务名或者创建了 PDB监听器没有自动注册新服务的话可以使用“静态监听”或执行ALTER SYSTEM REGISTER;强制注册。新手阶段建议先保证上面的状态命令能看到服务名再考虑修改监听文件。默认的监听配置文件是listener.ora位于ORACLE_HOME\network\admin\下。多数情况下不需要手动编辑Oracle 的 Net Configuration Assistant 已经帮你配置好了。4.3 数据库服务的自动启动设置Windows 上安装完 Oracle 19c 后系统服务里会增加几个以OracleServiceORCL、OracleOraDB19Home1TNSListener开头的服务。默认这些服务是“自动”启动状态但某些安全策略或精简系统会把它们设为“手动”。建议把以下两个服务的启动类型设为自动OracleServiceORCL数据库实例服务这个停了数据库就停了。OracleOraDB19Home1TNSListener监听器服务这个停了客户端就连接不上。操作方法Win R输入services.msc找到对应的服务右键 → 属性 → 启动类型改成“自动”然后点击“启动”。如果发现 Oracle 相关服务启动后立即停止最常见的原因是监听器端口 1521 被占用经常是其他程序占用了但当前 Oracle 进程因为权限不够创建失败。先用netstat -ano | findstr 1521查看端口占用情况再看解决方案。4.4 登录验证SQL*Plus 和 SQL Developer 双路径验证配置完成后最直观的验证方式是打开命令行执行sqlplus sys/你的密码localhost:1521/orcl as sysdba如果能打开 SQL*Plus 并显示连接到一个实例说明软件、监听、服务三大链路全部正常。如果你创建的是容器数据库连接字符串里 PDB 部分就是把orcl换成你创建的 PDB 服务名比如orclpdb。如果你不想用命令行工具可以安装官方免费工具 SQL Developer连接配置界面里填主机名为localhost、端口为1521、SID/服务名为orcl或 PDB 名、角色选 SYSDBA用户名密码就用 SYS 和你设的口令。SQL Developer 适合图形化操作日常查询、建表、调试都很方便。5. 常见问题与故障排查报错信息一网打尽5.1 安装阶段常见报错及对策很多人在安装过程中就会遇到问题我把最重要的几类问题和解决思路放在下面错误一INS-30131 执行配置脚本失败这个错误在 Windows 上极常见原因多半是主机名解析异常或权限不足。解决办法是手动检查 hosts 文件并补上本机主机名映射同时确保用管理员身份运行setup.exe。如果还是失败可以打开“甲骨文安装产品”日志目录Windows 下在%TEMP%\或者 ORACLE_HOME 中的cfgtoollogs目录查看详细日志通常能找到具体卡在哪一步。错误二INS-32013 / 提示“找不到 Oracle 主目录”这个一般是解压目录包含中文或空格或者安装程序读取不到ORACLE_HOME。重新解压到全英文路径并且不要解压到桌面桌面路径很可能包含用户中文名基本能解决。错误三安装到最后报 ORA-12560ORA-12560 在 Windows 上通常是“TNS: 协议适配器错误”意思是客户端能定位到监听、但监听无法连接到数据库实例。原因往往是实例没启动或者监听地址配置的是主机名但主机名解析不到正确 IP。优先检查服务是否启动然后检查tnsnames.ora和listener.ora里的主机名是否一致。还有一个常见原因你用的是 19c 客户端连 11g 数据库或者反之两个版本的协议不匹配导致连接报错。建议统一升级客户端到 19c 版本。5.2 连接阶段常见的 ORA 错误速查表下面这个表我整理了很久是新手装完 Oracle 之后最常遇到的几个问题建议收藏错误代码错误信息解读常见原因排查思路ORA-12154TNS无法解析指定的连接标识符tnsnames.ora中服务名写错了或者环境变量TNS_ADMIN指向错误目录检查连接串中的服务名是否和监听器注册的一致用tnsping 服务名测试解析ORA-12514监听器当前不知道连接描述符中请求的服务服务名未注册到监听器执行lsnrctl services看监听里有哪些服务执行ALTER SYSTEM REGISTER;强制注册ORA-01034ORACLE 不可用实例没启动或者服务没起来services.msc启动OracleServiceORCL然后sqlplus / as sysdba执行startupORA-28000账户已被锁定连续多次输错密码触发了账户锁定策略sqlplus / as sysdba执行ALTER USER sys ACCOUNT UNLOCK;ORA-28001口令已过期密码超过 180 天未过期策略ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;然后重置密码ORA-12541TNS无监听程序监听服务没有启动lsnrctl start或检查端口是否被占用ORA-12638找不到所请求的认证工具客户端和服务端加密/认证配置不一致调整SQLNET.AUTHENTICATION_SERVICESWindows 下建议设为 NTS5.3 连接正常但 SQL 执行很慢怎么办还有一种情况比较隐蔽能连上数据库但跑一条简单的SELECT 1 FROM DUAL都要等好几秒。这通常不是 Oracle 配置的问题而是 DNS 解析延迟。Windows 会尝试解析客户端机器的反向域名如果 DNS 没有正确记录等待超时就会产生明显延迟。一个简单有效的解决办法是检查%ORACLE_HOME%\network\admin\sqlnet.ora确保里面有SQLNET.AUTHENTICATION_SERVICES (NTS) NAMES.DIRECTORY_PATH (TNSNAMES, HOSTNAME)然后在 hosts 文件里把本机主机名都映射到 127.0.0.1就能消除大部分等待时间。另外确保 Oracle 安装目录所在的磁盘是 SSD机械硬盘在跑大量数据字典查询时会有明显的卡顿感这也会被误认为“数据库性能差”。6. 安装失败后的彻底卸载注册表与残留目录清理6.1 为什么卸载比安装还容易出问题有句话说得好Oracle 安装不成功的人有一半死在卸载之后。很多朋友安装失败后想重装直接用第三方软件把 Oracle 相关的目录删了、注册表随便清理一下结果重新安装时发现新的安装程序检测到已有 Oracle 组件怎么都装不进去或者装一半报错。正确地卸载 Oracle 的步骤是停止所有 Oracle 相关服务在services.msc里逐一停止。使用“开始菜单”中的 Oracle 安装产品下的 Universal Installer选择“卸载产品”勾选要移除的组件。如果安装失败导致这个卸载入口不见了就进入ORACLE_HOME\deinstall目录运行deinstall.bat按提示把主目录、监听、数据库实例的路径填写一遍它会自动清理大部分内容。删除环境变量里新建的ORACLE_HOME并清理 PATH 里的 Oracle 相关项。手动删除残留目录常见的有C:\app、C:\Oracle、%TEMP%\下的 Oracle 临时文件、C:\Program Files\Oracle等。清理注册表。6.2 注册表清理的实操记录关于 Oracle 的注册表清理很多教程会恐吓你说“注册表不能乱动删错系统会崩”——这个谨慎是对的但我们只需要删除明确属于 Oracle 的键值不碰系统相关的键风险完全可控。需要重点检查的位置有三个HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除 Oracle 开头的服务键 HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI删除 Oracle 相关的 ODBC 驱动项操作方法Win R输入regedit打开注册表编辑器用Ctrl F搜索关键字Oracle逐个找到并删除。搜索时注意区分大小写和无关联的第三方文件某些程序可能自带 Oracle 数据库组件别误删了。删除注册表的过程可能会比较慢因为 Oracle 在注册表里写入的项非常多有时一个键下面还有几十个子键。耐心一点逐个清理干净之后重启电脑新的安装程序就会把系统当成一台干净的机器来处理。注意注册表清理是我最不建议新手“闭眼操作”的一步。如果你没有把握宁愿重新做一遍系统或者用虚拟机快照回滚也别在注册表里乱删。经过多次实操我个人的习惯是安装 Oracle 前先给系统打一个还原点或者做一次快照这样万一装坏了直接恢复快照比卸载清理要快得多、也干净得多。7. 安装后的运维与版本迁移聊聊 sysaux 膨胀与备份兼容性7.1 sysaux 表空间占用率过高怎么处理装好数据库、测试跑了一段时间后很多人会发现SYSAUX表空间的使用率越来越高甚至在告警日志里看到类似“表空间 SYSAUX 使用率 90% 以上建议扩容”的提示。SYSAUX 是 Oracle 10g 之后引入的辅助表空间存放 AWR 快照、审计记录、优化器统计信息、EM 仓库等一堆内部管理数据。它膨胀的原因通常是下面几个AWR 快照保留时间太长默认保留 8 天如果数据库负载高、快照量大SYSAUX 会很快膨胀。审计信息积累过多。19c 默认启用统一审计审计日志会不断写入 SYSAUX。优化器统计信息历史表WRI$_OPTSTAT_HISTORY和 SQL 执行计划基线SQL_MANAGEMENT_BASE保存了大量历史记录。解决思路不是一上来就扩容而是先定位是什么占的空间。用 SQL 可以查SELECT occupant_name, space_usage_kbytes FROM v$sysaux_occupants ORDER BY space_usage_kbytes DESC;如果显示SM/AWR占用最大说明是 AWR 快照太多可以修改保留策略和采集间隔EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS(retention 43200, interval 60);如果占用最大的是SM/OPTSTAT说明是统计信息历史记录太多可以手动清理DBMS_STATS.PURGE_STATS(DBMS_STATS.PURGE_ALL);审计日志占用多的话清理统一审计记录BEGIN DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL( audit_trail_type DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED, container DBMS_AUDIT_MGMT.CONTAINER_CURRENT); END; /这些操作在运维阶段非常常用建议装完库后顺手检查一次SYSAUX的空间占用情况提前部署好维护窗口的定时清理任务避免表空间满导致数据库异常。7.2 19c 的备份文件能在 11g 上恢复吗在讨论这个问题之前我想先说明一个原则跨大版本的数据迁移从来就不是直接把备份文件拿来恢复这么简单。Oracle 官方的数据迁移方式是从低版本导出、高版本导入或者使用数据泵expdp/impdp进行逻辑迁移再或者是用 RMAN 的异构迁移需要UNPLUG等高级功能配合步骤复杂且受限。Oracle 的数据文件物理结构在不同大版本之间是不向下兼容的。19c 的 RMAN 备份集backup set和 11g 的 RMAN 备份集使用了不同的格式和元数据版本直接在 11g 上RMAN RESTORE大概率会报“不支持的备份集版本”或者恢复过程中直接失败。即使你把 19c 的数据文件拷贝给 11g数据库也无法识别控制文件和数据文件头部的版本号会直接拒绝启动。如果你真的要实现从 19c 降到 11g正确思路是用数据泵把 19c 里的数据和对象结构导出expdp然后在 11g 里创建空库后导入impdp。但是要注意schema 中如果使用了 11g 不支持的字段类型、分区特性或索引结构比如 19c 引入的一些新权限和高级特性导入时也会报错。所以最稳妥的做法是业务确认 19c 的测试库上没有使用太多新特性时再执行 expdp 导库。从实际操作的角度还有一个很多新手忽略的点即便同是 19c 版本生产库和测试库的补丁版本不一致也可能导致 RMAN 恢复时提示“RMAN-06432 备份集版本不匹配”。建议两边都升级到相同或相近的补丁级别尤其在跨机器恢复时先检查V$VERSION和补丁信息。7.3 日常巡检安装配置完成后还要做什么到这里Oracle 19c 已经能正常跑起来了。但“能跑”和“跑得稳”是两回事。我分享几个装完之后立刻可以做的小事能帮你省掉后面很多问题检查告警日志路径。Windows 上的告警日志通常在ORACLE_BASE\diag\rdbms\orcl\orcl\trace\alert_orcl.log发现有 ORA-xxxxx 告警要第一时间处理。确认归档模式。默认安装是非归档模式这在学习环境没问题但如果你想做备份恢复实验建议改成归档模式操作只需两条命令SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;为定期备份做准备。Windows 上可以用任务计划程序定时执行expdp导出成 dmp 文件。Oracle 的备份目录建议用CREATE DIRECTORY指定一个独立的大磁盘目录避免备份文件把系统盘空间占满。8. 写在最后的一点操作心得如果你是从零开始第一次完整跑通 Oracle 19c 的安装和配置我建议流程是下载官方安装包 → 检查系统环境和磁盘空间 → 解压到全英文路径 → 以管理员身份运行 setup.exe → 选创建并配置单实例数据库 → 选企业版和桌面类 → 设置好 SYS/SYSTEM 密码 → 选 AL32UTF8 字符集 → 等待安装完成并重启 → 配置环境变量 → 启动监听和实例服务 → 用 SQL*Plus 验证。这个过程熟练以后大概半小时能搞完第一次安装慢一点也不要急Oracle 的安装失败率高一个很重要的原因就是前面某个不起眼的环节没处理好。相比起其他数据库Oracle 确实显得笨重和繁琐但这个笨重换来的是数据管理层面极致的稳定与强大。把 19c 装明白至少未来三到五年内工作在数据库这块基本上不用担心落伍。最后再提醒两个小点。第一安装过程中弹出的任何警告框都先截图或记下错误码再操作方便事后搜索解决。第二如果你只是测试学习强烈建议装完 Oracle 后打一个系统快照或做一次完整备份这样万一后面把数据库玩崩了直接回滚快照比去卸载、清注册表、重装快得多而且能保护你辛苦搭好的环境。这套方法我用了很多年实测非常省心。
返回列表