Oracle网络配置(基础操作)

前言

Oracle产品安装完成后,服务器客户端都需要进行网络配置才能实现网络连接

windows自己配置了网络,但是Linux需要自己配置!

在这里插入图片描述

Oracle至少启动的服务

如果通过网络TCP/IP)访问数据库服务器,至少启动:

  • OracleOraDb11g_home1TNSListener服务

  • OracleServiceORCL服务

如果本地访问数据库服务器,至少启动:

  • OracleServiceORCL服务

在这里插入图片描述

两种访问

#@orcl代表着通过TCP/IP访问
#orcl是oracle服务器的一个服务名
sqlplus t1/t1@orcl

在这里插入图片描述
客户端服务器在一起

#访问本地数据库服务器
sqlplus t1/t1

在这里插入图片描述

在这里插入图片描述

sqlplus t1/t1@orcl

在这里插入图片描述

sqlplus t1/t1

在这里插入图片描述

Oracle网络配置

服务器端配置信息包括:

  • 监听协议
  • 地址
  • 其他相关信息

存放在listener.ora文件中,在安装服务器软件时自动配置一个监听器

客户端配置信息包括:

  • 服务器地址
  • 监听端口号
  • 数据库SID

存放在tnsnames.ora的文件中。

Oracle中的Net Configuration AssistantNet Manager工具来配置监听器网络服务名

监听状态

#查看监听状态
lsnrctl status

在这里插入图片描述

#启动监听
lsnrctl start

在这里插入图片描述

lsnrctl status

在这里插入图片描述

”三剑客“

G:\software\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

在这里插入图片描述

sqlnet.ora

sqlplus/nolog

conn / as sysdba

在这里插入图片描述

#为什么可以采用这种登录方式
#因为NTS
SQLNET.AUTHENTICATION_SERVICES = (NTS)
#修改成NONE
SQLNET.AUTHENTICATION_SERVICES = (NONE)

在这里插入图片描述

此时就会提示没有权限了!

简单连接

不需要客户端任何配置。

easy connect

SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH=(EZCONNECT)
#注意这里的wang是windows主机名!
SQL> conn t1/t1@wang:1521/orcl
Connected.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH=(TNSNAMES)
#此时连接采用的是TNSNAMES因此就报错了
conn t1/t1@wang:1521/orcl

在这里插入图片描述

SQLNET.AUTHENTICATION_SERVICES = (NTS)
#不会报错!
conn t1/t1@wang:1521/orcl

在这里插入图片描述

在这里插入图片描述

#查看sqlnet.ora文件

SQLNET.AUTHENTICATION_SERVICES= (NTS)
#系统又加上了两个配置
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
     #有两个监听 
     #调用外部过程:
     #C/C++/JAVA完成任务简单,但是Oracle PL/SQL自己完成,就很复杂。
     #Oracle调用C/C++ 或者 JAVA的程序。
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
     #在主机名为wang的机器上面 在1521端口使用TCP/IP协议
      (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))
    )
  )

添加监听

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
一直下一步就行!

监听程序可以不止一个

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

tnsnames.ora

本地命名

需要客户端配置一个本地命名解析文件,为tnsnames.ora

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

#ORCL1是刚刚指定的网络服务名称
ORCL1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
    #这里之前解释过了!
      (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))
    )
    (CONNECT_DATA =
    #这个是数据库的服务名
      (SERVICE_NAME = orcl)
    )
  )
#报错!
sqlplus t1/t1@orcl

在这里插入图片描述

#成功!
sqlplus t1/t1@orcl1

在这里插入图片描述

个人理解:
tnsnames.ora 配置了一个网络服务名,一个对应的数据库服务名。
我们访问网络服务名就相当于访问数据库服务名。可以这样简单理解

Oracle服务名意义

在这里插入图片描述

服务名是对数据库的一个标识,通过服务名可以访问数据库

tnsping

在这里插入图片描述

静态注册/动态注册

注册就说把数据库作为一个服务注册监听程序,在数据库服务器启动的过程中,数据库服务器会向监听程序注册相应的服务

#称之为静态注册!
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = G:\software\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:G:\software\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )
#称之为动态注册!
#默认是PMON,想LSNRCTL注册一个TCP/IP协议,端口为1521!
  LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

那么到底是静态注册还是动态注册

lsnrctl status

如果是UNKNOWN,表示静态注册

如果是READY,表示动态注册

在这里插入图片描述

READY的服务是由PMON进程动态的注册到监听器,因此PMON进程所在的数据库一定处于打开状态,所以说这些服务名所对应的实例已经准备好(READY)接受用户的连接请求。

UNKNOWN的服务通过编辑listener.ora静态的注册服务名,监听器并不知道该服务名对应的实例是否打开了,所以用UNKNOWN表示。

测试动态注册

lsnrctl stop

在这里插入图片描述

lsnrctl start

在这里插入图片描述

等待PMON进程动态注册监听。

在这里插入图片描述

监听文件也没了!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试静态文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击保存

在这里插入图片描述

lsnrctl stop

lsnrctl start

在这里插入图片描述

服务也就是UNKOWN,把该文件删除掉又变为动态监听

end~

ORA-12545、ORA-12154、ORA-12541、ORA-12514报错

其实出现该问题就是监听或者服务没有配好。

G:\xiaowangzhenshuai\software\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = G:\xiaowangzhenshuai\software\Oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:G:\xiaowangzhenshuai\software\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))
    )
  )
  
ADR_BASE_LISTENER = G:\xiaowangzhenshuai\software\Oracle

host = wang在这里查看
在这里插入图片描述

G:\xiaowangzhenshuai\software\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN

tnsnames.ora
ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = wang)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

查看SERVICE_NAMEselect INSTANCE_NAME from v$instance;
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值