应用程序jdbc连接linux上oracle,报错TNS:listener does not currently know of service requested in connect descriptor
jdbc.url=jdbc:oracle:thin:@hostIp:1521:service_name
找资料,改listener.ora和tnsnames.ora。
出现Error: ORA-12542 / TNS-12542 Text: TNS:address already in use --------------------------------------------------------------------------- Cause: Specified listener address is already being used. Action: Start your listener with a unique address.
改正
结果又出现:
ORACLE not available
shared memory realm does not exist
No such file or directory
查,http://www.itpub.net/thread-1023066-1-1.html
最终发现应该把service_name改为oracle_sid(虽然一般service_name==oracle_sid,但也不一定)
将有关linux oracle 命令记录如下:
oracle启停:
su - oracle
sqlplus / as sysdba
startup--开启
shutdown immediate --关闭
监听:
lsnrctl start\stop\status
查看oracle配置:env | grep ORA(切换到oracle用户)
查看oracle_sid
1、windows 下查看注册表
开始 输入regedit 查看
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1\ORACLE_SID就是
2、linux或者unix下可以
echo $ORACLE_SID (env | grep ORA 也可以查看)
注意:ORACLE_SID要大写
3、在sql命令下可以查看
连接后查询:
SQL> select instance_name from v$instance;