网络配置网络组建分为:客户端、服务器、监听(会工作在知名端口,让客户端方便找到自己)三者怎样建立连接:首先确保服务器和监听是正常启动的,服务器启动后每一分钟会向监听注册,客户端连接服务器先要连接监听,连接监听是要提供数据块的标识,告诉监听客户端要访问哪个服务器,监听会把连接请求给服务器,服务器会创建一个进程通过1521端口和客户端主动连接,监听到此工作接结束了。数据库,实例,服务,单实例环境下三者不做区分查看会话建立过程:$netstat-tlnp|grep1521$splplussys/password@orclassysdba$netstat-tnp|grepsqlplus$kill-9....杀死维护sqlplus的进程监听的配置:配置文件:$vi$ORACLE_HOME/network/admin/listener.ora通过netca(网络配置向导)添加新的监听服务通过netmgr配置高级选项通过lsnrctl命令来启动、停止、查看、重载监听客户端连接服务器,要配置监听,即使是本机连接也要用监听,监听器和实例必须要在一台机器上,实例必须要向监听进行注册,让监听知道有实例的存在,客户端才能通过监听连接数据库实例。监听器的配置文件:$ORACLE_HOME/network/admin/listener.ora监听默认的端口是1521,如果使用的是默认端口,监听器的配置文件是可以不需要的,因为数据库的实例是每隔一分钟动态去监听器上的默认端口(1521)注册的,数据库实例只能向一个监听注册。监听端口不能重复。默认配置host使用的是主机名,如果更改过主机名,监听启动会失败,ip地址更改过,在host文件中更改;如果主机上有多个网卡,则在每个网卡上都开启1521端口,如果只使用一个端口监听,主机名更改成ip地址即可;每次监听启动时候是根据该配置文件初始化配置的;如需要修改监听可以直接更改配置文件,oralce配置文件对格式要求特别的严格,建议考虑使用扩展工具快捷的修改;更改数据库实例的注册监听:1、可以直接修改配置文件(不建议直接修改配置文件)2、可以通过网络配置助手netca来配置(图形化)$lsnrctlstatus查看默认的监听状态,复杂的选项使用netca是无法配置的,对监听和后台服务做复杂的调整;netca可以快速配置一个监听,基于java开发的图形化工具,ssh远程不能打开;监听端口只要是60000以内的都可以;如果有多个监听可在后面加上监听的名字。3、通过命令$netmgr来配置(图形化)控制监听:lsnrctlstart|stop|status启动|停止|运行状态4、lsnrctl命令行工具;help分工:监听的启动,停止--lsnrctl;简单的配置---netca;复杂的配置—netmgr;网络环境变化,需要检查listener.ora和/etc/hosts文件;数据库实例注册的方式(监听的扩展属性):1、动态注册:系统中的PMON进程每一分钟动态的把实例的信息向前台监听注册,还会刷新服务的状态,会把实例名和服务名两个参数注册给监听,可以反映出数据库的真是信息。showparameterservice_name;查看服务名;showparameterinstance_name;查看实例名;showparameterlocal;查看pmon进程把实例名和服务名注册到哪个监听。后端实例如何找到监听:1:本地监听1521,监听和服务器在一台服务器上,完全自动;本地非默认端口,需要管理员手动配置数据库,让数据库知道在哪里找到监听;远程监听,监听数据库不在一台服务器,需要管理员手动配置数据库,让数据库知道在哪里找到监听。Showparameterlocal_listener每次数据库启动时会读这个参数2、静态注册:在监听的配置文件中明确指定,数据库的哪个实例注册到哪个监听上,语法较为复杂。由管理员手动添加后台数据库的信息。虽然准确但不能准确的反映出后台数据库的信息。重新加载监听配置文件:$lsnrctlrload修改listener.ora配置文件,添加如下静态注册信息SID_LIST_LISTENER=(SID_LIST=(SID_DESC=(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)(SID_NAME=ora11g)))重新加载后,状态总是显示未知的,当有请求时,监听器才去确认数据是否存在。本地非默认端口配置:查看默认监听showparameterlocal_listener如果值为空就是默认监听。1、用altersystemsetlocal_listener=监听名可以更改数据库实例默认注册的监听,但前提是在tnsnames.ora中可以解析到要更改的监听的ip以及相应的端口,在listener。ora中给监听起个别名,在tnsnames.ora中展开。强制数据库实例注册:altersystemregister;写入监听的别名:修改$ORACLE_HOME/network/admin/tnsnames.oralistener15210=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=node1.test.com)(PORT=15210)))在之前,已经用netca创建一个监听,监听名字为listener15210,端口为15210。清楚配置:。altersysremsetlocal_listener='';2、用$netmgr,在服务名中更改给监听加密:修改sqlnet.ora这个文件,在其中加入TCP.VALIDNODE_CHECKING=YES开启访问控制;TCP.INVITED_NODES=(允许连接监听的IP);TCP.EXCLUDED_NODES(不允许连接的IP)。客户端配置客户端需要知道监听所在主机的主机名服务名,后端数据库所提供的一个服务透过监听找到服务客户端连接到监听后,就会和自己服务的列表进行对比;客户端两种连接数据库的方式:1、轻松连接,不许要做任何准备工作,之需在连接中写入数据库的具体信息,只用来临时连接,不保存,不安全,没有更多的功能。easyconnect:connuser/password@监听的ip或主机名:port/orcl(数据库服务名)assysdba2、本地命名(客户端的本地),配置文件$ORACLE_HOME/network/admin/tnsnames.ora,tnsnames:connuser/password@oracl(主机连接字符串,和数据库名实例名是一样的,不是必须的)是一个客户端的工具。解析顺序:配置文件$OEACLE_HOME/network/admin/samples/sqlnet.ora在其中出现的解析方式,会按顺解析,没有的不解析。删除监听:Altersystemsetlocal_listener=''Altersystemregister;删除tnsnames.ora的listener.ora的别名netca删除15210的服务Servicename数据库的名字,hostname监听的名字及监听的端口测试连接,提示invaliduser/password使用sys用户的默认口令,但是默认口令已经无效了没有办法写assysdba,可以不用管,或者changelogin更改成可以登录的帐号测试连接;oralce提供的tnsping不需要数据库的帐号信息,测试监听是否正常Tnsnames.ora有点像系统中的/etc/hosts文件的,有解析数据库信息$tnsping192.168.0.1:1521/orcl$tnspingorcl测试使用oracle共享服务器体系结构专有服务器体系:来连接的每个客户端会话都会给他们单独分配一个服务器进程和PGA,持续连接,会把会话的信息记录在PGA中,用户在PGA中所占用的内存空间叫UGA,客户端连接较少的。共享服务器体系:由少量的服务器进程给更多的用户提供服务,每个会话共享服务器进程和PGA,高并发,连接时间短,好处:保证每个用户有个专有的进程为其服务,oracle客户端的连接比较少的时候使用专有模式;高并发的短连接用专有模式会特别耗费服务器资源;如:2000个并发的连接,不会创建2000个服务器进程,会逐步建立连接,数据库会花费大量的资源创建服务器进程和销毁服务器进程;有两个队列:公共请求队列和响应队列。查看共享服务器体系selectdistinctserverfromV$session;查看当前有多少连接进程:selcetcount(*)fromv$process;工作方式:用户连接到监听,有监听转发给一个调度程序,调度程序会把这些请求放在调度队列里,当服务器进程处理完一个请求就会在队列中取下一个;服务器会表每个请求的处理结果放在响应队列中排队,由响应队列将结果返回给用户。在共享模式中,一个工作可能会分拆成若干个步骤,这些若干个步骤变成一个个请求,在队列中排队;在共享模式下SGA中的内存分配方式也会有所调整。共享模式下,请求可能会拆分成多个服务器进程来处理,增删改查,一个会话做若干件事情,零散的步骤会作为一个一个的请求,为该会话服务的服务器进程可能不只一个所以共享模式下内存分配有所调整,把uga放在sga的largepool中,实现了用户信息的共享,每个服务器进程都知道该会话的信息;工作中更改共享模式时,pga和sga的分配要所调整(10g以前需要调整);11g以后都自动管理,sga和pag的比例都自动调整了,不需要更改;两种配置共享服务器体系的方法:如何开启共享模式Showparameterdispatcher如果数据库的dispatcher参数有设置是共享模式,没有设置是在专有模式下;主的开关参数,共享模式还有许多辅助的参数;可以使用dbca调整模式Dispatcher页面下设置,都有默认值protocol—主要用tcpNumberofdispatcher—如果设置成2,则初始调度程序为2个;general页面有设置最大的Sharedserver数据库初始时设置几个共享服务器,Maximumconnectionsperdispatcher该页面的配置都会在初始化参数文件中还可以设置一些共享的选项;如上配置需要重启数据库;建议使用dbca数据库修改连接方式的时候不是二选一的,要不是专有模式,要不只有专有和共享都打开由用户来选择;是在专有模式上增加了共享模式,那么客户端如何选择?命令行更改:server=dedicated客户端的tasnames.ora中进行的配置;使用netmgr:配置连接方式的选择使用图形化界面连接类型选择时注意;数据库里面只有专有模式:数据库默认是专有专有模式+共享模式:数据库模式模式是共享tnsname.ora上没有写明连接方式则使用的是默认模式;一般更改服务器模式时,客户端不要做任何的更改;服务器默认模会更改,则客户端连接的是默认会随之变更;1、修改参数:altersystemsetshared_servers=6;设置共享服务器进程数为6个;查看共享服务器进程:selectprogramfromv$processwhereprogramlike‘%s00%’;showparametershared_server修改调度进程为4个(主开关参数):altersystemsetdispatchers=”(PROTOCOL=TCP)(dispatchers=4)(SERVICE=orcl)”;查看调度进程:selectprogramfromv$processwhereprogramlike‘%D00%’;2、也可用$dbca命令来调整。数据库在选择连接方式是:1、只有专有模式2、专有和共享都打开,默认为共享模式,让用户选择怎么连接,连接数据库时时用共享服务器为体系还是专有服务器体系是有客户端决定的,要在客户端的配置文件tnsnames.ora中修改,修改对