我们运行 Oracle 服务器 (12C)。我们要测试异构服务。
我使用生产服务器的备份创建了一个新的虚拟机,给它一个新的 MAC 地址和 IP 地址。我在 中更新了 mac 地址/etc/sysconfig/network-scritps/ifcfg-eth0
,然后做了start_udev
a 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 配置文件,但是我没有删除实际的主机名,这是我一直在使用的。