day06_oracle监听+数据传输


  listener.ora

# listener.ora Network Configuration File: /oracle/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = ECOM)    【第二步:配置的监听的数据库,及实例名】
      (ORACLE_HOME = /oracle/app/oracle/product/10.2.0/db_1)
      (SID_NAME = ECOM)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.8.8)(PORT = 1521))   【第一步:TCP协议,监听的地址,监听的端口】
  )  

tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

DB150【传输文件名】 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.150)(PORT = 1521)) 【服务器端开放的IP和端口】
    )
    (CONNECT_DATA =
      (SERVICE_NAME = TEST) 【服务名】
    )
  )

测试监听监听效果:


监听示意图:


监听+传输文件:

oracle 数据库在最后面,公司没有发布数据库的吧,前端有中间件吧,外部请求通过web转给中间件,中间件再传给中间件,然后数据库再返回来!
那么中间件为什么能传给数据库呢?数据库得开放一个端口,这个端口就叫做监听端口。来接收外部的请求,这就是开启监听的目的。
所以说Oracle数据库必须要开启监听,要不没法与外界连接。【数据库之前连接也是通过监听】



【关闭防火墙和selinux】



开启监听2种方式:

1、图形化操作 【用oracle用户登录,不能用root,会有shell变量问题】

(1)netca

Litener configuration--->Add--->

(2)netmgr【进入oracle网络管理器】

Listeners---->新建--->添加LISTENER NAME--->

Listening Locations---->Add Adress Host:添加IP或主机名   Port:1521

服务器下可以有多个库吧,你要监听哪个库?多实例就多个库吗,

Database Services--->Add Database--->Golbal Database Name:TEST    SID:TEST ------>关闭、保存


2、直接修改配置文件(配置好一次,可以留下一份,下次再用时,直接copy修改一下就成)
$ORACLE_HOME/network/admin





监听器启动 【命令是安装Oracle时创建的,执行第2个脚本,就是将一些命令放到你的 /usr/bin下】
     $ lsnrctl start
停止监听器的命令为
     $ lsnrctl stop
监测监听器当前状态的命令为
     $ lsnrctl status




验证:服务器之间测试,两台oracle数据库

在本地创建一个 lipengfei表,然后在测试库上查询本地,然后再远程连接查看





二、传输文件(Tnsname文件,说明要连接哪个服务器,哪个端口)

Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。


tnsnames.ora主要记录了服务别名和对应的信息

例如 你要连接 pc1主机上服务端口为1521的prod数据库服务,那么你必要提供这些信息:

sqlplus 用户/密码@远端IP:1521/实例名 

为了方便和早期兼容性, 把这些信息 以服务别名的形式写入到tnsnames.ora里, 这样ORCL这个服务别名 就对应于 pc:1521/orcl  这些信息,在连接时你只需要提供这个服务别名:

sqlplus system@orcl





1、命令操作
netmgr

Service Naming--->新建--->Net Service Name--->DB160--->TCP/IP(internet protocol,第2个是加密的,咱们不用加密)
--->Host Name:192.168.18.160【对端】   Port Number:1521【对端】--->Service Name:TEST--->finish

关闭--->保存



2、直接修改配置文件(配置好一次,可以留下一份,下次再用时,直接copy修改一下就成)
$ORACLE_HOME/network/admin


【校验】

sqlplus sys/lipengfei@db160 as sysdba   【登录走的是传输文件,登录的是对端服务器】

select * from lipengfei; 【这是远端服务器独有的表】




【登录方式】

9i之前:
sqlplus /nolog

show user ;【空的,当前只是登录sqlplus工具】

conn sys/lipengfei as sysdba


10g后:
sqlplus sys/lipengfei as sysdba   






两方服务器互相连接如何?操作?【通过scp文件过去】















原文地址:https://www.cnblogs.com/xiaoxiao5ya/p/445a1fb259b182193744b80cde64f1af.html