我有一个rails应用程序,使用oracle作为数据库。
我曾经在我的旧机器上使用oracle virtualbox和Oracle Developer Day套件运行它。 oracle提供的包包括Oracle数据库11g 现在我有一台新的笔记本电脑,需要重新安装一切,这很顺利,但现在oracle pack'OTN dev day'使用的是oracle数据库12g。
在以完全相同的方式设置所有内容后,我在通过oci8测试我的连接时遇到此错误:
1.9.3-p327 :001 > require 'oci8'
=> false
1.9.3-p327 :002 > c= OCI8.new('me', 'mypassword', '//localhost:1521/orcl')
OCIError: ORA-12537: TNS:connection closed
from oci8.c:267:in oci8lib_191.bundle
from (irb):2:in `new'
from (irb):2
from /Users/stephanethomas/.rvm/gems/ruby-1.9.3-p327/gems/railties-3.2.14/lib/rails/commands/console.rb:47:in `start'
from /Users/stephanethomas/.rvm/gems/ruby-1.9.3-p327/gems/railties-3.2.14/lib/rails/commands/console.rb:8:in `start'
from /Users/stephanethomas/.rvm/gems/ruby-1.9.3-p327/gems/railties-3.2.14/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
在我的虚拟机中,如果我检查听众,我的一切工作正常:
LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 09-MAR-2014 20:26:17
Copyright (c) 1991, 2013, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date 09-MAR-2014 19:56:48
Uptime 0 days 0 hr. 29 min. 28 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/12.1.0/dbhome_1/log/diag/tnslsnr/localhost/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=80))(PROTOCOL_STACK=(PRESENTATION=HTTP)(SESSION=RAW)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=21))(PROTOCOL_STACK=(PRESENTATION=FTP)(SESSION=RAW)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "pdb1" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
12到11之间是否有任何重大变化?或者我在安装时错过了什么?
提前致谢!
答案 0 :(得分:0)
通常对于ora-12537,您应该收到一堆错误消息。以前的错误消息更重要,它看起来像ruby抑制它们(不好)。
您是否在计算机上禁用了防火墙?
否则发布listener.ora,sqlnet.ora和protocol.ora文件。
答案 1 :(得分:0)
原来我错误配置了VM,我的监听器没有正确定义。 如果你遇到了,我就是这样修理的:
在虚拟框应用程序首选项中&gt;网络。单击仅限主机网络。 添加一个,保留所有默认值。
如下设置网络:
Adapter 1:
- Bridge Adapter
- en0: Wi-Fi
- Premicious mode: deny
Adapter @:
- Host-only Adapter
- vboxnet0
- Allow All
在服务器上,使用一行命令检查连接:
$> sqlplus system/oracle@orcl
在下面安装宝石之后,你应该使用它进行连接 以下内容:
OCI8.new('me', 'mypassword', '//localhost:1521/orcl')
此外,经过一段时间后,服务器大小无法启动数据库,阻止迁移或重新启动服务器错误,如果您遇到这种情况,请尝试进入服务器上的以下目录:{ {1}}
并查找非常大的/u01/app/oracle/oradata/ORCL/datafile/
文件(10G),销毁它并重新启动服务器。