这个周末学习了一些后端的技能,折腾了好久 Oracle 数据库,总算安装上了。

本文记录的东西非常粗浅,仅限于探索如何使用的层面上,因此文中描述的各种观点可能有所错误,欢迎读者批评纠正。

基本环境和工具

  • 基于 Parallels Desktop 10 的 windows 10 操作系统;
  • JDK 1.8;
  • Oracle 11g。

其中, Oracle 11g 的下载地址是 win64_11gR2_database_1of2.zipwin64_11gR2_database_2of2.zip

第一次安装

第一次安装,当然是处于非常的纯净的 windows 10 系统上面,基本没有任何干扰,按照安装说明一步一步往下走,很简单,很轻松,大多数参数都按照默认配置来。这样一路配置下来的话,连接 Oracle 的 URL 就会是 jdbc:oracle:thin:@10.211.55.4:1521:orcl (如果使用 Oracle Thin Driver 来连接的话,当然我也不知道是否还存在其他的 Driver )。

后续可能会遇到一个问题:如何在一个局域网内连接这台 Oracle 服务器上面的数据库呢?默认情况下,用前面所示的 URL 并不能成功连接上,那么,首先就应该去检查连接是不是被 windows 10 的防火墙阻止了,排除了这个原因之后,再去看看 listener 服务有没有启动。

如果使用 PLSQL Developer 这种 GUI 工具连接 Oracle 服务器的话,会有个很蛋疼的问题,就是要关联一个 Oracle 的 client ,这玩意儿在 windows 系统下面可能要容易点,在 OS X 下面坑特别多。稍微列举一些坑:

  • client 要分 32bit 和 64bit ,这个好像要和具体的 GUI 工具对应上?不太记得了,后续有时间补上吧!
  • 在 OS X 下面要手动配置各种环境变量。

第二次安装(卸载重装)

某一天,我一不小心删掉了手动创建的数据库文件(*.pdf),这下就完蛋了,不能正常工作了:数据库文件丢失。

网上搜了一些资料,没找到正确的处理方式,于是决定重装。

重装的第一步是卸载。

卸载

很常规的,先跑到 windows 标准的应用程序卸载那里看了下,发现根本没有 Oracle ,看起来无法从这里卸载。

于是 Google 了一下,发现 Oracle 的卸载好麻烦:手动停服务、删文件、删注册表,这种方式肯定是逗逼方式。

后面鼓捣了会儿,发现“所有程序”里的 Oracle 项目下,有个 Universal Installer 工具,很多应用的安装程序和卸载程序不都是一体的么!抱着试一试的心态,点开了这个程序,果不其然,里面有卸载功能。点击“卸载”按钮,发现只能删除一些目录,果断删除,但是却不能删除主目录,必须要运行主目录下面的 deinstall/deinstall.bat 来卸载。好了,这个程序看起来只是删除目录而已,那么相关的服务可能还得自己手动删除,此处使用了 sc delete serviceName 命令删除服务。

这样鼓捣一圈下来之后,发现还有很多 Oracle 目录,感觉只能手动清除掉了。果断使用鼠标右键->删除的方式,结果发现被占用了,无法删除,此时可以到资源监视器 -> cpu 标签 -> 关联的句柄里面搜索,搜索关键词是文件名,然后找到哪些进程占用了文件,果断结束掉,这样一来,就可以成功删掉这些文件了。

这样卸载完之后,就开始安装了。

重装

按照第一次的安装流程来,一步一步的,比较顺利。

但是,在创建数据库的时候,老是说 local_listener=LISTENER_ORCL 这玩意儿配置错误, Goolge 了很多资料,基本都不是说的重装遇到的问题。唉,纠结了半天不知道为啥,只好跳过这个创建数据库的步骤,直接安装完成了。

后面仔细一想,从字面猜测应该是 listener 的名字没有和服务里面 listener 的名字对应上,抱着试一试的心态,去 /app/yibuyisheng/admin/orcl/pfile/init.ora 里面做了修改,然后运行 DBCA 重新创建数据库。事实证明,还真是这样的。

总结

  • 这是一次未知领域的探索过程,其中看似简单的每一步,都花费了不少时间,各种 Google 查资料,全方位面向搜索引擎解决问题。
  • 相对于 MySQL ,Oracle 入门配置真特么麻烦。
  • 做政府、国企软件项目基本要选用 Oracle 数据库,这些不懂技术的鸟人,真把程序员坑死了。