连接Oracle时碰到的两个错误:ora-12514和ora-12547

先注明两个错误的描述:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
ORA-12547: TNS: 丢失联系
英文描述就不转了。
解决过程如下:
1.先切换到oracle用户下,尝试用sqlplus连接:

suse172:~>su - oracle
oracle@suse172:~>sqlplu /nolog
oracle@suse172:~>connect sys as sysdba

可是输入密码报错:ORA-12547: TNS: 丢失联系
2.会不会是监听器的问题,因为用的是vnc连接,所以要设置一下DISPLAY变量,
又vnc连接的是suse172:2,DISPLAY要有所改变,操作如下:

suse172:~>export DISPLAY=:2.0
suse172:~>xhost +
suse172:~>su - oracle
oracle@suse172:~>export DISPLAY=:2.0
oracle@suse172:~>netca
oracle@suse172:~>lsnrctl status

重新配置一下监听器Listener,还是不行
3.那用企业管理器看看?先打开企业管理器:

oracle@suse172:~>emctl start dbconsole

启动失败,注意到出现了不少这样的提示:bash: /dev/null: Permission denied
4.那先查看下/dev/null的属性,

suse172:~>ls -l /dev/null
crw-r----- 1 root root 1, 3 Feb 24 2009 /dev/null

普通用户没了写的权限,重新创建:

suse172:~>rm /dev/null
suse172:~>mknod -m 0666 /dev/null c 1 3

5.重新用sqlplus连接,操作如1,发现可以连上了,启动数据库,操作如下:

SQL>startup

启动正常,再用PL/SQL Developer连接,也可以了。

后记:
1.一直对oracle的管理都只停留在表面几个命令上,需要加深。
2.另外查了下/dev/null的用途,转载如下:
把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.如:
禁止标准输出.

1 cat $filename >/dev/null
2 # 文件内容丢失,而不会输出到标准输出.

禁止标准错误

rm $badname 2>/dev/null

这样标准错误就被丢掉了
3.发现一个很简单好用的端口扫描工具:ScanPort,用来判断端口1521是否开放。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值