从零到一:Windows环境下Oracle19c的完整部署与实战配置
2026/5/13 15:51:37 网站建设 项目流程

1. 环境准备:搭建Oracle19c的Windows温床

第一次在Windows上装Oracle数据库就像给新房子铺水电——基础没打好,后面全是坑。我见过太多人因为忽略环境检查,导致安装到一半报错重来的惨剧。这里分享几个实测有效的准备工作:

硬件配置是地基。Oracle19c对资源需求不低,建议至少准备:

  • 4核CPU(i5十代或同等性能以上)
  • 8GB内存(16GB更稳妥)
  • 50GB可用磁盘空间(系统盘外的分区更好)

注意:千万别用C盘!我有次偷懒装C盘,结果系统更新后监听服务直接罢工,最后只能重装。

软件环境要特别注意三点:

  1. 关闭杀毒软件实时防护(安装完成再开启)
  2. 确保.NET Framework 4.8已安装
  3. 系统用户名不要用中文(会导致安装日志乱码)

我习惯在D盘创建专用目录结构:

D: ├── Oracle │ ├── InstallPackage # 存放安装包 │ └── Oracle19c # 安装目标目录

2. 安装实战:避开那些隐藏的坑

官网下载是个技术活。最新版Oracle19c的下载页面像迷宫,我去年带新人时,10个人里有6个会点错链接。正确路径是:

  1. 访问Oracle技术网-数据库下载页
  2. 选择"Oracle Database 19c for Microsoft Windows x64"
  3. 勾选接受许可协议后下载约2.8GB的ZIP包

解压时有个玄学问题:直接用Windows自带解压可能会报错。推荐用7-Zip右键"解压到当前文件夹",比安装失败后再排查省心得多。

安装向导的五个关键选择:

  1. 配置类型:新手选"桌面类"(自动内存管理)
  2. 安装位置:指向预先创建的D:\Oracle\Oracle19c
  3. 数据库标识
    • 全局数据库名填orcl(行业惯例)
    • 管理口令要包含大小写+数字(如Oracle123)
  4. 容器数据库:取消勾选(除非需要多租户)
  5. 字符集:保持默认AL32UTF8

实测发现42%卡顿是正常现象,我的ROG笔记本等了23分钟。这时候去泡杯茶比强制结束明智。

3. 网络配置:让数据库开口说话

装完Oracle不会配服务命名,就像买了手机没插SIM卡。新版Net Manager的界面反人类,我整理了更直观的操作流:

-- 先验证监听状态 lsnrctl status -- 如果监听未启动 lsnrctl start

创建服务命名的正确姿势:

  1. 打开Net Manager后别被界面吓到
  2. 服务名填ORCL(与安装时一致)
  3. 主机名用localhost比IP更可靠
  4. 测试连接时如果报错ORA-12514:
    • 检查监听程序是否包含SID_LIST
    • 修改listener.ora添加:
      SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = D:\Oracle\Oracle19c) ) )

有个冷知识:Windows服务里有个OracleOraDB19Home1TNSListener,把它设为自动启动能省去很多麻烦。

4. 用户管理:解锁经典测试环境

Oracle19c默认不装scott用户这事挺坑,但解决方案比想象简单。除了执行scott.sql,还可以直接克隆模板:

-- 创建自己的测试用户 CREATE USER mytest IDENTIFIED BY test123 DEFAULT TABLESPACE USERS TEMPORARY TABLESPACE TEMP; -- 复制scott的权限和表结构 GRANT CONNECT, RESOURCE TO mytest; ALTER USER mytest QUOTA UNLIMITED ON USERS; @D:\Oracle\Oracle19c\rdbms\admin\utlsampl.sql

实测发现直接解锁scott用户有时会遇到密码策略限制,我的备用方案是:

  1. 用system登录SQL*Plus
  2. 执行:
    ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK;

5. 日常维护:防患于未然

数据库装好只是开始,这几个维护命令建议收藏:

-- 查看表空间使用情况 SELECT tablespace_name, round(used_space/1024/1024,2) "已用空间(MB)", round(tablespace_size/1024/1024,2) "总空间(MB)" FROM dba_tablespace_usage_metrics; -- 检查无效对象 SELECT owner, object_name, object_type FROM dba_objects WHERE status = 'INVALID';

定期备份可以用这个批处理脚本(保存为.bat):

@echo off set BACKUP_PATH=D:\Oracle\Backup set ORACLE_SID=ORCL expdp system/密码@orcl directory=DATA_PUMP_DIR dumpfile=full_%date:~0,4%%date:~5,2%%date:~8,2%.dmp logfile=expdp_%date:~0,4%%date:~5,2%%date:~8,2%.log full=y

遇到服务崩溃时,先尝试这个重启序列:

  1. 停止OracleServiceORCL服务
  2. 停止OracleOraDB19Home1TNSListener服务
  3. 删除D:\Oracle\Oracle19c\diag\rdbms\orcl\trace下的alert日志
  4. 按顺序重新启动服务

6. 性能调优:给数据库装上涡轮

Windows上的Oracle默认配置很保守,这几个参数调整能让性能飞起:

修改D:\Oracle\Oracle19c\database\SPFILEORCL.ORA:

*.processes=300 *.sessions=335 *.transactions=301 *.memory_target=4G # 不超过物理内存70%

对于开发机,建议关闭审计减少I/O压力:

-- 查看审计配置 SELECT * FROM dba_audit_trail; -- 关闭数据库审计 NOAUDIT ALL; AUDIT_TRAIL=NONE

如果经常遇到ORA-12560错误,在注册表添加:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDB19Home1 新建字符串值:USE_SHARED_SOCKET=TRUE

最后分享个诊断技巧:当SQL*Plus连接缓慢时,在sqlnet.ora中加入:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) SQLNET.AUTHENTICATION_SERVICES=(NTS) DIAG_ADR_ENABLED=OFF

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询