我得到了一台装有ubuntu 16.04的linux服务器,并成功地在上面安装了oracle 11gR2。在系统引导之后,我可以使用下面的代码启动oracle并执行一个简单的查询:
db@dbpc:~$ sudo lsnrctl start
db@dbpc:~$ sqlplus /nolog
SQL> conn / as sysdba
SQL> startup
SQL> select * from scott.dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON然而,我无法通过IP登录,例如,如果我使用以下命令:(在启动孔服务之后)
db@dbpc:~$ sqlplus scott/123456@192.168.1.100:1521/orcl它将显示:
SQL*Plus: Release 11.2.0.4.0 Production on Thu Dec 31 12:58:42 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Process ID: 0
Session ID: 0 Serial number: 0下面是我的设置文件:
db@dbpc:/home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin$ cat listener.ora
# listener.ora Network Configuration File: /home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
)
)
ADR_BASE_LISTENER = /home/rogear/tools/oracle11g
db@dbpc:/home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /home/rogear/tools/oracle11g/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.100)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)怎么了?
发布于 2020-12-31 22:54:23
第一个错误是Oracle没有经过认证,也从来没有为Ubuntu设计过。Ubuntu来自linux家族的一个完全不同的分支。让甲骨文在它上面工作是一种黑客行为,除此之外,什么都不能保证。
还要注意,您的连接字符串(sqlplus scott/123456@192.168.1.100:1521/orcl)从不使用您的tnsnames.ora。要使用tnsnames.ora,您的连接字符串应为:
sqlplus scott/123456@orcl其中'orcl‘是tnsname中条目的名称。
第三,我们不知道数据库实例的名称。我希望看到以下命令的输出
ls -l | grep pmon第四,即使在支持的操作系统上,Oracle11也很旧,不再受支持。
如果您使用Ubuntu机器(使用Ubuntu的事实告诉我这是一台用于自学或在校的个人pc ),您最好的选择是安装Oracle VirtualBox,然后使用它创建一个运行最新版本的Oracle Linux的虚拟机,并在其上安装最新版本的Orcle。我在https://edstevensdba.wordpress.com/category/personal-test-systems/上有一篇关于这方面的文章,现在有点过时了
https://stackoverflow.com/questions/65521451
复制相似问题