1

我们运行 Oracle 服务器 (12C)。我们要测试异构服务。

我使用生产服务器的备份创建了一个新的虚拟机,给它一个新的 MAC 地址和 IP 地址。我在 中更新了 mac 地址/etc/sysconfig/network-scritps/ifcfg-eth0,然后做了start_udeva service network restart。这给了我网络。

我给它一个主机名 myServerName-test.local,以及一个相同地址的 DNS 条目。

然后,我更改$ORACLE_HOME/network/admin/tnsnames.ora为拥有更新的主机。

env 变量ORACLE_SID没有设置任何东西,虽然运行 aset ORACLE_SID="RECORDSDB"不会改变它,我认为这对我来说是个问题。

我启动./bin/lsnrctl并运行了一个reload命令,尽管它仍在尝试连接到生产服务器。更改此配置选项的方法是什么?

当我尝试./bin/sqlplus使用正确的用户名和密码运行时,它显示 - "ERROR: ORA-12162: TNS:net service name is incorrectly specified"

我的行动方针是什么来解决这个问题?我也重新启动了很多,所以这无济于事。谢谢,哈利。

编辑:添加我的 tnsnames.ora 文件;

RECORDSDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = myHostname-test.ap.local)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = recordsdb.local)
    )
)

编辑 2:添加了 tnsping 输出

[oracle@ap-ora-records-test dbhome_1]$ ./bin/tnsping 192.168.1.150

TNS Ping Utility for Linux: Version 12.1.0.1.0 - Production on 20-AUG-2014 10:11:54

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

Used parameter files:
/u01/app/oracle/product/12.1.0/dbhome_1/network/admin/sqlnet.ora

Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.150)(PORT=1521)))
TNS-12541: TNS:no listener

我记得读过一个实用程序,我可以用它来排序这样的东西,它叫做 netmgr,虽然它需要一个我没有安装的 xserver。这对解决问题有帮助吗?

编辑 3:lsnrctl 状态输出

[oracle@ap-ora-records-test dbhome_1]$ ./bin/lsnrctl status

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 21-AUG-2014 11:34:44

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myProductionServer.local)(PORT=1521)))
TNS-01189: The listener could not authenticate the user

TWO_TASK没有设置,所以我也将它设置为RECORDSDB,这改变了我在尝试使用 sqlplus 时的错误ORA-12541: TNS:no listener

编辑4:

所以我最初更改了主机名,$ORACLE_HOME/network/admin/tnsnames.ora但不是/u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora因为我没有意识到它存在。这是的输出lsnrctl reload

[oracle@ap-ora-records-test dbhome_1]$ ./bin/lsnrctl reload

LSNRCTL for Linux: Version 12.1.0.1.0 - Production on 21-AUG-2014 11:41:25

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=myDevMachine.local)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
   Linux Error: 111: Connection refused

所以我仍然得到一个没有监听器的错误,但现在我得到了两次?

尝试连接时,sqlplus我静止不动ORA-12541: TNS:no listener

编辑5:

我以为重新加载它会启动它,我猜不是。那只是重新加载配置吗?

正在启动 /u01/app/oracle/product/12.1.0/dbhome_1//bin/tnslsnr:请稍候...

TNSLSNR for Linux: Version 12.1.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.1.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/12.1.0/dbhome_1/log/diag/tnslsnr/ap-ora-records-test/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ap-ora-records-test.ap.local)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.1.0.1.0 - Production
Start Date                21-AUG-2014 13:00:24
Uptime                    0 days 0 hr. 0 min. 0 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/ap-ora-records-test/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ap-ora-records-test.ap.local)(PORT=1521)))
The listener supports no services
The command completed successfully

见下文,我的 TNSNAMES.ora 和 LISTENER.ora 配置文件,但是我没有删除实际的主机名,这是我一直在使用的。

TNSNAMES.ora 和 LISTENER.ora 配置文件

4

2 回答 2

1

您尚未更改listener.ora. 完成后,您需要使用lsnrctl start. 然后,您可以验证它是否以lsnrctl status.

侦听器启动后,数据库可能需要一段时间才能注册自己。你可以用alter system register. 如果它不会注册,那么检查您是否local_listener设置了数据库参数,如果是,是否到生产地址/端口。如果是,那么您也需要使用alter system.

于 2014-08-21T12:04:19.853 回答
0

我有同样的问题,问题是hosts文件中定义的IP有问题。检查 listener.ora 中定义的主机名是否可达。

于 2016-06-19T08:30:42.997 回答