玩转Oracle服务器连接

本文详细介绍了Oracle服务器的本地和远程连接方式,包括实例已启动和未启动时的连接策略。本地连接无需侦听器,依赖$ORACLE_HOME和$ORACLE_SID。远程连接则必须启动tnslsnr,并依赖服务名。当实例未启动时,连接验证通过密码文件进行。文章还讨论了SYS账户的特性和连接验证流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Oracle服务器的两类连接方式

Oracle数据库连接有多种方式,按照客户端和服务器端是否同机运行可分成两大类,一是本地连接,二是通过网络连接。

  • 本地连接。顾名思义,就是客户端程序和服务器程序运行在同一台机器上。安装Oracle时,客户端程序sqlplus自动伴随安装在了服务器机器上,所以这种方式总是可用。
  • 远程连接。客户端程序和服务器端程序运行于不同的机器上。

另外,Oracle在连接方面还有一个独特的特点,那就是Oracle实例尚未运行时,仍然可以通过客户端连接。其中的原因在于,服务器端负责侦听的并不是Oracle实例本身,而是另一个独立的侦听器程序tnslsnr。

2 本地连接

本地连接不需要侦听器工作。本地连接可以连接到已经运行的实例,也可以连接到空实例(实例尚未运行)。本地连接时,sqlplus首先根据$ORACLE_HOME找到oracle可执行文件,然后启动一个专用服务器进程,并运行这个程序。然后依据$ORACLE_HOME和$ORACLE_SID这两个环境变量来确定要连接的实例,所以连接之前必须要设定号它们.

2.1 连接到已经运行的实例

目前一个SID为orcl12c的实例正在运行,此时sqlplus以ORACLE安装用户oracle运行,此用户属于OSDBA组,所以oracle不需要验证用户名密码。而 "as sysdba" 则会强制以SYS用户登录。

[oracle@centos192 ~]$ env | grep ORACLE
ORACLE_SID=orcl12c
ORACLE_HOME=/opt/app/oracle/product/12.1.0/dbhome_1
[oracle@centos192 ~]$ sqlplus / as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 01:55:33 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

SQL>

以sysdba身份连接时,ORACLE根本不理会命令行上提供的用户名和密码,而是直接以SYS账户登录。而此时又是oracle这个操作系统账户执行sqlplus,导致不需要验证密码,所以可以正常登录。如下所示:

[oracle@centos192 ~]$ sqlplus randomusername/randompassword as sysdba;

SQL*Plus: Release 11.2.0.3.0 Production on Fri Dec 5 02:28:03 2014

Copyright (c) 1982, 2011, Oracle.  All rights reserved.


Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Pro
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值