0.同时修改了/etc/hosts 文件不知道是不是起了作用。
修改为如下:
192.168.1.168 cyerp.test.com cyerp
127.0.0.1 localhost.localdomain localhost
1.
echo $TNS_ADMIN
查看tns 路径的位置 。
一般那会涉及到三个文件 listener.ora tnaname.ora sqlnet.ora
这三个文件是干啥的自己在网上查找 。
2.
netstat -ntulp|grep 1521
查看某个端口的程序是不是被占用。
3.
修改这个文件 就可以了 ,注意下面的黑体部分 NETWORK\ADMIN中找到listner.ora文件,
::http://blog.sina.com.cn/s/blog_5ffd70480100dm8b.html 这个是原文的地址,
制定它的globle database name 和SID 都是testDB.
我又已system 登陆oracle 创建了一个anna的用户:
c:>sqlplus system/geh*****
sql>create user anna identified by geh*****;
sql>grant all privileges to anna;
接下来我以anna向登陆前面创建的testDB. 但是在输入
c:>sqlplus anna/geh*******@testDB
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBANAME = testDB)
(ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
(SID_NAME = testDB)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
)
在原始的文件中加入黑体字的部分,即将你创建的数据库的SID描述告知给监听器。保存文件。注意重新尝试登陆之前要按顺序重新启动一下SQLplus服务和TNSListner服务。然后重新登陆sqlplus,指定username为anna和它的密码,在hoststring处写入testDB,或在命令行中敲入
sqlplus anna/geh****@testDB
就可以连接入testDB database.
3.在做上面的步骤之前需要立马修改。sqlnet.ora 中的内容,不然客户端会爆 “TNS:连接已经关闭”的错误。
$ cat sqlnet.ora
NAMES.DIRECTORY_PATH=(TNSNAMES ONAMES HOSTNAME)
SQLNET.EXPIRE_TIME= 10
tcp.validnode_checking = yes
tcp.invited_nodes=(ERPTEST.domain)
到这问题差不多看出来了。注释掉最后两行。重新启动监听器,OK!问题解决。
重启监听:$ORACLE_HOME/bin/lsnrctl stop
$ORACLE_HOME/bin/lsnrctl start
注意:在启动的时候如果爆The listener supports no services_ 这样的错误不用管;
如果不修改步骤3 就会出现服务器连接被拒绝的问题,TNS:连接已经关闭。
如果不修改步骤2 就会出现 。
ora-12514 message 12514 not found; product =rdbms80
注意一些问题:就是启动oracle 服务的时候 最好都是用拥有权限的 用户来启动这个服务,如果没有权限也就不能启动这个服务。
查看数据库的命令:tnsping vis
查看当前状态的命令:lsnrctl status
network中还有日志文件。
转载:
http://guojie.blog.51cto.com/59049/49542/
最近,时间允许了,把Oralce的服务启动,但是,却遇到下面的问题,经过查资料和反复试验,终于搞清楚问题的原因。所以,想记录下来,以备将来遇到类似问题不再麻烦。