Oracle的网络管理
Oracle11g以后的监听程序放在grid_home目录中
查看我们的监听文件在哪个位置,lsnrctl status
Listener Parameter File
/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
我们此oracle有一个实例instance,实例名是ora12c,状态是ready也就是说监听先启动了,我数据库一启动pmon进程就把实例动态注册到监听,状态显示ready时说明是动态注册,如果是unknown说明是静态注册,需要我们人为的去注册。
要建立客户机或中间层连接,Oracel
Net要求客户机了解下列事项:
1、 运行监听程序的主机
主机名或者ip必须知道
2、 监听程序监视的端口
3、 监听程序使用的协议
目前使用的都是tcp/ip
4、 监听程序处理的服务名
这个监听程序处理的服务名具体是什么呢?我们登录到数据库查看下
show parameter service
Services_name是什么呢?vlaue的值就是我们的服务名,如果我们配置了域名那么services_name就是da_name+db_domain,如果我们不知道可以查
show parameter db_name,
show parameter db_domain,
我们的service_name
就等于我们的global_name,我们客户机连接oracle时使用的是我们的service_name,而非我们oracle的SID,实例名,因为在国内我们的数据库没有域名,导致这三个一样,一旦有域名那肯定使用其他不可能连接成功。
保证网络是通的客户端告诉监听我要连接哪个实例,监听会核实下对比下,我们有没有这样一个实例,如果有的话就把你提供的用户名和密码转发给数据库验证下。如果连接验证成功,oracle开启一个server
process也叫前台进程给我们客户端服务。
一旦我们连接成功,那么监听就不起作用,监听关闭也好不影响我们的连接,所以监听就是在我们连接oracle的时候才起作用。
Lsnrctl这个程序的可以启动监听也可以关闭监听,我们看下lsnrctl的其他参数。
Lsnrctl stop 停止监听,正常情况下我们先停实例后停监听,启动的时候先启动监听,在启动实例。如果我们要让实例动态注册进来执行alter
system register;这样就可以了。
我们已经有了对应的本主机名和1521端口的监听,那如果我们还想创建第二个监听呢?我们任何一台服务器上都可以有多个监听,但是监听的端口号必须不一样,因为你已经有了一个1521的端口监听。
我们输入netmgr命令,选中监听,然后点+号,取个名字,然后添加一个地址,要么我们的主机名唯一,要么我们的端口号唯一,此时我们选择1522端口。然后保存退出!
我们启动这个LISTENER2监听程序,lsnrctl
start
LISTENER2,虽然这个监听程序可以正常启动成功,但是无法提供服务。是因为我们这个监听没有注册进来实例,而我们的pmon进程默认注册进来的是1521端口。
如果要我们的pm进程动态注册到其他端口号,我们要修改一个参数,登录数据库,show
parameter
local_listener;我们这个local_listener的值为空意思就是默认的1521端口。我们尝试简易登录下system账户使用1521,可以连接到数据库,1522端口不可以。
sqlplus system/oracle@bosenrui:1521/ora12c
sqlplus 用户名/密码@主机名:端口/实例名
我们修改一个参数:
alter system set
local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bosenrui)(PORT=1522)))','(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=bosenrui)(PORT=1521)))';
此时我们查看LISTENER2的状态,lsnrctl
status LISTENER2
发现已经动态注册进来实例。那么我们使用连接串连接数据库,经过测试我们马上从1522端口通过别名登录进来。
我们每次通过客户端登录数据库很麻烦,sqlplussystem/oracle@bosenrui:1521/ora12c
sqlplus
用户名/密码@主机名:端口/实例名
那么我们想把@后面的这部分用别的东西代替了,这就是我们的客户端TNS_NAME,这个文件是我们客户端配置的文件,也存放在/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/目录下,我们可以用vi编辑这个tnsnames.ora文件,别名随便取,但是里面包含客户端连接主机的4个要素,也可以用上面的图形话工具创建这个别名连接串,在连接类型时必须选专用模式dedicated
server。