sqlplus 命令支持名为@<connect_identifier> 的参数,链接数据库

最近遇到一个问题 我的数据库实例名是orc,有一个用户密码scott/tiger,fedora12 环境, 如果我直接用 conn scott/tiger,可以登录oracle,但是如果我加一个conn scott/tiger@orc 则会报错
ERROR: ORA-12154: TNS:could not resolve the connect identifier specified

然后用tnsping orc也报错
[oracle@dagu ~]$ tnsping orc

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 12-FEB-2011 09:01:49

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

Used parameter files:
/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

TNS-03505: Failed to resolve name

才想起应给没有配置服务名,于是通过netca 创建一个Net服务名orc链接数据库。再执行
[oracle@dagu ~]$ tnsping orc

TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 12-FEB-2011 09:03:57
Copyright (c) 1997, 2005, Oracle. All rights reserved.
Used parameter files:
/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orc)))
OK (0 msec)

也可以在/u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora($ORACLE_HOME/network/admin/tnsnames.ora)中直接添加
ORC =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orc)
)
)
也可以。

还有listener.ora------listener监听器进程的配置文件
listener进程是接受远程对数据库的接入申请并转交给oracle的服务器进程。所以如果不是使用的远程的连接,listener进程就不是必需的,同样的如果关闭listener进程并不会影响已经存在的数据库连接。
图形的配置工具来完成配置:netca 向导形式的 netmgr
其中netmgr中 profile 配置的是sqlnet.ora也就是名称解析的方式;
service name 配置的是tnsnames.ora文件;
listeners配置的是listener.ora文件,即监听器进程。
你输入sqlplus sys/oracle@orc的时候
1. 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME
2. 则查询tnsnames.ora文件,从里边找orcl的记录,并且找到主机名,端口和service_name
3. 如果listener进程没有问题的话,建立与listener进程的连接。
4. 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。
5. 这时候网络连接已经建立,listener进程的历史使命也就完成了。

几种连接用到的命令形式
1.sqlplus / as sysdba 这是典型的操作系统认证,不需要listener进程
2.sqlplus sys/oracle 这种连接方式只能连接本机数据库,同样不需要listener进程
3.sqlplus sys/oracle@orcl 这种方式需要listener进程处于可用状态。最普遍的通过网络连接。(应该是服务器端的listener进程必须要处于可用状态,才能为客户端提供服务)


也可以不用配置NET服务名,直接按照“conn 用户名/密码@ip:port/service_name”即可链接数据库。当连接的数据库监听端口是默认的1521则可以省略端口号,如:conn sl/sl@10.1.1.1/orc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值