ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Oracle 11g开发环境搭建:JDK+PLSQL Developer+SQL Developer配置指南

Oracle 11g开发环境搭建:JDK+PLSQL Developer+SQL Developer配置指南 搞Oracle 11g这套环境说难不难说简单也真不简单。我最早接触它是在维护一个老ERP系统的时候那时候最痛苦的还不是数据库本身而是装一套能连上库的开发环境。网上搜“Oracle 11g安装教程”能出来几十页但基本都只讲了服务端装完就结束等你要用PLSQL Developer连库、用SQL Developer跑脚本的时候又得重新踩一遍坑。更别提JDK版本不对导致SQL Developer起不来或者PLSQL Developer装完打开就闪退这类问题每一个都够折腾半天的。这篇文章就是把我这些年安装Oracle 11g PLSQL Developer SQL Developer JDK的完整过程整理出来从下载到配置再到常见问题的排查链路一次性讲透。适合刚入行的开发、运维也适合那些只是临时要连一套老库、不想在环境搭建上浪费太多时间的人。1. 这套工具组合到底解决什么问题很多新手会问装一个Oracle客户端不就行了吗为什么还要折腾JDK和两个开发工具要回答这个问题得先把这四个组件各自的分工搞清楚。Oracle 11g是数据库服务端它负责真正存储数据、处理SQL、管理事务。开发机和测试机一般装的是客户端或者完整版服务端。生产环境通常只装服务端不会装这些开发工具。JDK是Java运行环境。SQL Developer是拿Java写的离开JDK跑不起来这是很多人第一次安装时最容易忽略的点。PLSQL Developer虽然主要用C/C写的但它调用Oracle客户端接口时某些内部功能也会间接依赖Java环境所以JDK在这套组合里是基础中的基础。PLSQL Developer是第三方开发的Oracle开发工具在国内用得非常多。它的优势是轻量、启动快、写PL/SQL块舒服支持调试存储过程、查看表结构、执行计划这些高频操作。SQL Developer则是Oracle官方的免费工具功能更加全面最新版支持了JSON、REST、Data Miner等一堆功能但对老旧的11g库来说有时候反而显得笨重。我个人的习惯是日常写SQL、改数据用PLSQL Developer做数据库管理、导入导出、看AWR报告用SQL Developer。两个工具各有不可替代的场景所以建议一起装上别二选一。注意如果你只是临时连一次库装一个即时客户端加命令行工具就够用了。但如果你是长期要跟Oracle打交道那这套四件套还是老老实实都装齐后面省心很多。2. JDK安装与环境变量配置最容易被绊倒的第一关JDK看起来最简单其实坑最多。最大的坑就是版本选择。Oracle 11g是2010年前后的产品到12c才有的官方认证JDK版本会高一些。对于11g这套组合JDK 8是最稳妥的选择也就是Java 1.8。很多新人贪新装了JDK 17甚至JDK 21结果SQL Developer要么启动慢得离谱要么直接报“Unable to find a Java Virtual Machine”。不是新版本Java不好而是11g生态的组件太老对新版JDK的支持并不好。有很多人在热词里搜“jdk降级到17”其实就是装了新版后发现不兼容被迫换回老版本的。2.1 JDK 8的下载来源Oracle官网的JDK 8下载页面现在已经变了它把8u191之前的版本和之后的版本拆成了两套后面的版本要登录Oracle账号才能下。我一般建议用下面几个渠道Oracle官方下载页适用于8u202及之后的版本需要Oracle账号。清华TUNA镜像站提供Adoptium原AdoptOpenJDK的JDK 8路径一般是mirrors.tuna.tsinghua.edu.cn/adoptium/8/jdk/x64/下载linux和windows版本都方便。阿里云开发者社区镜像也有OpenJDK 8的存档速度很快。对Oracle这支产品线我的建议是别纠结OpenJDK还是Oracle JDK功能上几乎没有差别。真正要注意的是位数。SQL Developer和PLSQL Developer都有32位和64位之分而Oracle 11g的客户端接口OCI在Windows下默认是32位的所以JDK装32位版本更稳妥。64位不是不行但你后面配置PLSQL Developer的OCI库时会遇到各种奇怪问题。2.2 一步步安装JDK安装过程没有技术含量重点在环境变量。安装目录建议不要带中文名和空格比如直接用D:\Java\jdk1.8.0_202或者C:\Java\jdk1.8.0_202。我看到过有人装在Program Files目录下后面配环境变量和写脚本时都得处理空格麻烦。装完后配置三个环境变量JAVA_HOME C:\Java\jdk1.8.0_202 PATH %JAVA_HOME%\bin;%PATH% CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarPATH和CLASSPATH在Windows的“系统属性-环境变量”里设置。JDK 9之后的版本已经不需要CLASSPATH了但JDK 8的某些老工具和组件仍会读取它所以还是配上的好。配完后验证方式很关键。重新打开一个CMD窗口运行java -version javac -version echo %JAVA_HOME%三个命令都有正确输出才算成功。第一个看到的是java运行版本第二个是编译器版本第三个确认环境变量路径没写错。2.3 环境变量配置失败的常见原因我在实践中见过三类高发问题几乎占了“jdk环境变量配置失败”搜索量的九成第一类是配完后没重开CMD。Windows的环境变量读取时机是进程启动时老CMD窗口里读不到新加的变量关掉重新开一个就好。第二类是JAVA_HOME路径末尾多写了分号。很多人复制粘贴时会把网上教程里的分号一起粘过来在JAVA_HOME的末尾留下一个分号看起来没毛病但某些Java工具解析时会出现路径拼接错误。JAVA_HOME的值应该是一个纯路径不要带分号。第三类是装了JDK但系统里还有别的JRE导致PATH里先找到旧版本。我在一些机器上遇到过Oracle安装包自带的JRE把PATH污染了的情况运行java -version发现版本不对执行where java看实际路径才能定位。解决办法是把%JAVA_HOME%\bin放到PATH最前面或者直接删掉其他Java相关的PATH条目。3. Oracle 11g服务端安装版本选择与系统准备Oracle 11g有两个大版本11g Release 111.1和11g Release 211.2。现在能下到的基本都是11.2版本具体版本号到11.2.0.4之后就不再更新了这是11g的最终打包版本。下载时注意一个关键细节Windows 64位版Oracle 11g的安装包被拆成了两个zip文件分别是1of2和2of2两个都要下载缺一个解压都不完整。3.1 下载前先确认硬件和系统Oracle 11g对内存的最低要求是1GB但实际跑起来2GB以下会卡得怀疑人生建议至少4GB。磁盘空间要求大概在5GB左右这个基本都能满足。系统方面Oracle 11g官方认证的是Windows Server 2003到2008 R2。在Windows 10/11上安装时比较稳妥的做法是右键安装程序选择“以管理员身份运行”如果遇到兼容性问题可以设置成Windows 7兼容模式再跑。Windows 11上装11g会提示版本不兼容警告一般忽略也能过去但数据文件路径和监听配置一定要认真按向导走。主机名最好不要用中文路径也全部用英文。Oracle在安装时会读取主机名做实例注册中文主机名会导致监听和实例互相找不到。3.2 安装过程的步骤拆解解压两个zip到同一个目录后双击setup.exe会看到经典的黑底启动窗口。这个窗口在Windows 10/11上可能停留几分钟没反应属于正常现象Oracle在检查系统环境不要急着强制关闭进程。安装类型选择“创建和配置数据库”授权选择“企业版”。企业版包含了分区、OLAP、Data Mining等特性标准版在某些功能上是受限的。个人学习用装企业版也不会有额外负担后续不需要的功能不启用就行。数据库配置里有两个选项需要特别说明。SID默认是ORCL这个可以改但我建议保持默认因为后面PLSQL Developer、连接串、脚本里都会引用SID默认值最不容易出错。字符集选择ZHS16GBK。如果你选了AL32UTF8中文数据在旧版PLSQL Developer里可能显示成乱码而ZHS16GBK在国内工业界的存量系统里是最通用的选择。口令设置时系统管理员的密码有复杂度要求大小写加数字是最低标准。千万别设得太复杂然后自己忘了这比安装失败更折磨人。我见过太多人建完库当天晚上就打电话问密码是什么。安装过程大概20到40分钟视机器性能而定。快结束时Oracle会提示运行Database Configuration Assistant创建实例这个阶段如果弹出网络配置错误通常是防火墙拦截了本地端口1521导致的。要么把防火墙临时关闭要么在Windows防火墙入站规则里放行1521端口。3.3 安装完之后的验证安装完成后在Windows服务里应该能看到两个关键服务OracleServiceORCL数据库实例服务这是真正的数据库进程。OracleOraDb11g_home1TNSListener监听服务客户端连库时最先找的就是它。这两个服务把启动类型都设为自动。特别是监听服务有些机器上安装时默认是手动启动重启后客户端就连接不上然后满世界找原因其实只是服务没启动而已。命令行验证方式lsnrctl status sqlplus / as sysdbalsnrctl status看到“Listening Endpoints Summary”里有1521端口sqlplus能进去并执行select name from v$database;服务端就算装好了。4. PLSQL Developer安装与连接配置从闪退到正常登入PLSQL Developer不是一个免费软件但它有试用期策略官方发的试用版是可以正常使用的功能也不受限制只是启动时会有提醒。这个没毛病正规渠道下载试用就行不要用那些破解版很容易自带病毒木马。如果你确实要用它长期工作建议购买正版授权价格对于一个开发工具来说并不算离谱。4.1 版本选择与位数对齐PLSQL Developer现在最新版本是15左右但我建议装14或更低版本。原因很简单11g是2010年的产品PLSQL Developer的功能再新对老库用不上不说新版对系统的要求反而更高。更关键的是位数问题。PLSQL Developer必须和Oracle客户端位数保持一致一般来说两者都用32位。Oracle 11g的Windows客户端官方至今只提供32位版本虽然64位存在但是很少见且配置起来麻烦。所以在Windows平台用32位的PLSQL Developer搭配32位的Oracle客户端是默认配置。如果你装完连接时报“ORA-12154: TNS: could not resolve the connect identifier specified”八成是位数不匹配导致OCI库加载失败。4.2 安装与首次启动配置安装过程一路Next就行不需要在安装时做什么特殊配置。真正麻烦的是第一次启动。首次启动时PLSQL Developer会弹出一个登录框很多人走到这里就卡住了。地址库下拉框是空的也不知道怎么填数据库实例。其实这时不用急着登录点“取消”按钮先进入主界面。进入主界面后找到菜单栏的“Tools - Preferences - Connection”这里有两个输入框是整套配置的核心Oracle Home填写即时客户端或Oracle客户端的根目录比如D:\oracle\product\11.2.0\client_32。OCI library填写oci.dll的完整路径比如D:\oracle\product\11.2.0\client_32\bin\oci.dll。这两个字段填错是绝大多数连接问题的源头。Oracle Home是PLSQL Developer找tnsnames.ora的地方OCI library是它加载Oracle客户端接口的入口。填好保存重启PLSQL Developer登录框里就能看到tnsnames.ora里配置的数据库连接名了。4.3 tnsnames.ora的配置方法tnsnames.ora文件位于Oracle客户端的network\admin目录下比如D:\oracle\product\11.2.0\client_32\network\admin\tnsnames.ora。它的内容格式如下ORCL (DESCRIPTION (ADDRESS_LIST (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) ) (CONNECT_DATA (SERVICE_NAME orcl) ) )HOST改成数据库服务器的IP地址SERVICE_NAME不一定是ORCL得看服务端建库时给的服务名是什么。默认情况下SERVICE_NAME和SID同名都叫orcl但某些生产环境会自定义服务名这时候要以服务端配置为准。配置好tnsnames.ora后运行tnsping ORCL能输出OK说明这个名字解析成功连接逻辑上通了。不能的话检查文件存放位置和名字是否拼对尤其是后缀名是不是被Windows改成了tnsnames.ora.txt。4.4 “闪电消失”问题的解决办法热搜词里有一条是“plsql developer闪电消失怎么办”说的是PLSQL Developer工具栏上的闪电图标登录按钮突然不见了。这个问题我碰到过两次一次是误改了工具栏布局一次是偏好设置文件损坏。解决办法很简单在菜单栏任意位置右键勾选“SQL Window”工具条或者直接执行“Tools - Preferences - User Interface - Toolbar”重置布局。如果右键菜单里没有相关选项可以删除PLSQL Developer安装目录下的PLSQLDeveloper.prefs配置文件重启软件一切恢复默认。还有一个小技巧登录时按快捷键CtrlL可以调出登录框即使闪电图标消失也不影响登录。“闪电图标消失”本质上就是登录入口找不到快捷键是最高效的兜底方案。4.5 中文显示乱码连上库后中文显示成问号或方块是另一个高频问题。这通常是因为PLSQL Developer的字符集和数据库字符集不一致。解决方案是在环境变量里新增一个NLS_LANGNLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK这个环境变量的格式是语言_地区.字符集。SIMPLIFIED CHINESE_CHINA是简体中文的语言和地区标识ZHS16GBK是字符集与前面数据库建库时指定的字符集保持一致。改完后重启PLSQL Developer中文就能正常显示了。5. SQL Developer安装与JDK绑定问题SQL Developer是Oracle官方出的免费工具对比PLSQL Developer它的优势在于跨平台、免费、项目管理方便、执行计划可视化做得好。缺点是启动速度不如PLSQL Developer快内存占用高。5.1 版本选择SQL Developer的版本要和JDK匹配。老版本如4.x需要JDK 8新版本如21及以上版本内置了JDK下载下来解压就能跑不需要单独配置JDK路径。如果你已经按前面步骤装好了JDK 8用4.x系列版本更轻量也不会和PLSQL Developer抢资源。从Oracle官网下载SQL Developer Windows 64位版解压到英文路径比如D:\sqldeveloper运行sqldeveloper.exe即可。5.2 首次启动的JDK选择首次启动时SQL Developer会询问JDK路径。如果它识别不到你装的JDK 8会弹出一个文件选择框让你指定java.exe的位置。找到JDK安装目录下的bin\java.exe选中确认。一个常见的坑是系统里同时装了多个JDK版本SQL Developer检测到了高版本JDK启动时会加载它然后报一堆模块访问错误。这时可以在SQL Developer安装目录下的sqldeveloper\bin\sqldeveloper.conf文件里手动指定Java路径SetJavaHome C:\Java\jdk1.8.0_202保存后重启SQL Developer。这个配置文件是绕过自动检测最可靠的方式适合多JDK环境下的强制绑定。5.3 新建数据库连接的参数SQL Developer新建连接时需要填的参数和PLSQL Developer稍有不同。在“视图 - 连接 - 新建连接”里连接名随意填比如local_orcl。用户名system口令你建库时设置的密码主机名localhost端口1521SID或服务名orcl注意SQL Developer新版本里区分了SID和服务名两种模式。Oracle 11g默认用SID模式填orcl就行。如果你填服务名模式报错换成SID模式试一下。这两种模式的差别在于SID对应数据库实例名服务名对应数据库对外提供的网络服务名两者大部分时候一样但偶尔有不一样的时候用错了就连接不上。5.4 SQL Developer的优势场景虽然PLSQL Developer在存储过程开发调试上更顺手但SQL Developer有两个不可替代的优势一是它的Explain Plan可视化程度更高能直观看到全表扫描和索引查找的区别二是它自带的DBA面板可以查看数据库会话、锁等待、表空间使用率这些功能在PLSQL Developer里要么没有要么很隐蔽。我实际工作中经常用SQL Developer查AWR报告。AWR报告是Oracle性能分析的核心工具SQL Developer能直接把awrrpt.sql生成的HTML报告打开图表渲染效果比浏览器还好。这类进阶功能遇到性能问题时会非常有用。6. 三件套协同工作的验证清单装完不是结束验证才是开始。很多人在配置阶段觉得很顺利结果一连接就各种报错根本原因就是没有按照从底层到上层的顺序逐一验证。我的经验是所有Oracle客户端连接问题都可以用下面这个顺序排查。6.1 层层验证的排查链路先验证数据库进程本身。Windows服务列表里看OracleServiceORCL是否在运行SQL*Plus连进去执行一条简单SQL确认库是活的sqlplus system/密码localhost:1521/orcl select * from dual;再验证监听器。命令行执行lsnrctl status看服务是否正常监听1521端口并注册了orcl实例。如果监听没起来客户端工具报的错五花八门但源头其实都在这。接着验证名字解析。tnsping orcl确认tnsnames.ora能正确解析连接串。最后才是打开PLSQL Developer或SQL Developer测试登录。前面每一步都通过后如果客户端工具仍然连接失败才需要考虑工具本身的配置问题。6.2 常见报错对照表报错信息含义常见原因ORA-12154: TNS:could not resolve the connect identifier specified连接标识符无法解析tnsnames.ora路径不对或内容拼写错误ORA-12514: TNS:listener does not currently know of service requested in connect descriptor监听器不认识请求的服务SERVICE_NAME填错或监听未注册实例ORA-12541: TNS:no listener没有监听监听服务未启动或端口被占用ORA-12560: TNS:protocol adapter error协议适配器错误实例服务未启动或位数不匹配ORA-10134: ORACLE not initialized数据库未初始化OracleService服务未启动这张表我基本每次都贴给同事看因为90%的连接问题都能在这里找到对应项。尤其是ORA-12560在Windows平台上几乎就是服务没启动不是网络问题不是配置问题就只是服务忘了开。6.3 SQL Developer和PLSQL Developer连不上的差异化排查两个工具的报错信息虽然有差异但排查逻辑一致。SQL Developer遇到“Status: Failure - Test failed: ORA-12541”PLSQL Developer则会弹一个英文对话框说“TNS:no listener”本质上都是监听问题。唯一的区别在于PLSQL Developer配置了独立的环境变量NLS_LANG和OCI库如果连不上且报的是CLI相关错误比如“ORA-12154”前面加了个“Initialization error”那多半是OCI库路径配错了。SQL Developer不依赖OCI它用的是纯JDBC驱动所以不会有这类问题但它的JDK绑定错误会体现在启动阶段还没到连接步骤。我建议两台工具至少留一个能用再装另一个。最稳妥的做法是先把SQL Developer连通了再去折腾PLSQL Developer因为SQL Developer的配置项更少排查链路更短。6.4 端口和防火墙的终极检查如果前面所有检查都通过但连接就是不成功那最后一招是检查防火墙。Oracle监听器和实例之间的通信除了1521端口外还会动态分配一个端口用于数据会话。某些安全防护软件会拦截动态端口导致客户端连上监听但无法建立会话。遇到这种情况最简单的办法是在防火墙里把1521端口放行并把Oracle安装目录加入信任区。或者用netstat -ano | findstr 1521确认监听确实在监听。如果监听显示是127.0.0.1而不是0.0.0.0或本机IP说明监听地址配置只绑定了本地回环地址外部IP连不上需要改监听配置里的HOST为机器名或具体IP。7. 实操中值得注意的几个细节和小技巧到这里整套环境安装与配置的核心流程就走完了。最后分享几个我实际操作中踩过之后才深刻记住的小细节。第一个是安装顺序问题。我一般严格按照JDK → Oracle 11g → SQL Developer → PLSQL Developer的顺序来装。先装JDK是因为Oracle安装程序检测环境时需要Java组件某些功能如OUI图形界面的运行依赖于JDK先装SQL Developer再装PLSQL Developer是因为前者配置完成后能验证JDK和网络是否正常等确认基础环境没问题再去碰后者排查起来更轻松。第二个是临时关闭杀毒软件和UAC。Oracle安装程序会大量读写注册表和系统服务某些安全软件会把它的注册表操作当作可疑行为拦截。Windows的UAC弹窗如果选择“否”安装就会中途失败。我在个人电脑上安装时会临时关掉安全软件的实时监控装完重启后忘了开也没关系系统重启后一般会自动恢复。第三个是备份Oracle安装包和JDK安装包。Oracle官方下载链接的访问权限偶尔会变化尤其是旧版本。我把11.2.0.4的安装包和JDK 8的安装包都存了一份在网盘和移动硬盘里公司在给客户部署老系统时会经常用到。这东西不占多少空间但临时要装的时候找不到才是真正的麻烦。第四个是SQL Developer的自动更新问题。SQL Developer默认开启自动更新连上网络后可能提示你升级到新版本或者自动下载最新版JDK。这对老环境来说不是一个好主意。建议在菜单栏“帮助 - 检查更新”里取消自动更新避免某天打开软件发现它偷偷升级成了不兼容的版本。第五个是妥善保管密码。Oracle安装时设置的SYS和SYSTEM密码建议写在你常用的密码管理器里。不要只放在安装截图里或者聊天记录里。这个密码忘了轻则重装数据库重则影响整个项目进度。8. 这套环境装完之后能做什么四个组件全部安装并验证通过后你相当于搭建了一套完整的Oracle开发环境。在这套环境上你可以做的事情包括但不限于学习Oracle数据库的日常管理启动和关闭实例、查看告警日志、管理表空间、监控会话。开发与调试PL/SQL程序存储过程、函数、触发器、包PLSQL Developer的调试器非常经典。做SQL性能分析用SQL Developer的执行计划窗口分析慢SQL的执行路径结合AWR报告做整体优化。实践数据迁移和备份恢复用expdp/impdp做逻辑备份用RMAN做物理备份。开发Java应用连接Oracle数据库JDBC连接串、连接池配置、MyBatis框架对接等都可以在这套环境上测试。对我个人来说这套环境最大的价值不在于工具本身的优越性而在于它的稳定性和兼容性。10年前的老系统要维护新系统有时也要兼容旧的数据库结构一套装好能跑多年的开发环境本身就是效率。
返回列表