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文件过去】