添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

一、 Oracle11g 至少启动的服务

1、如果通过网络访问数据库服务器,至少要启动OracleOraDb11g_home1TNSListener和OracleServiceORCL服务。

2、如果本地访问数据库服务器,至少要启动OracleServiceORCL服务。

二、网络配置:

1、服务器端监听控制:lsnrctl start|stop| status

2、图形界面配置监听:netca

3、编辑文件方式配置监听:编辑$ORACLE_HOME\NETWORK\ADMIN\listener.ora文件。

三、oracle 服务网络配置文件:

1、sqlnet.ora

<1> SQLNET.AUTHENTICATION_SERVICES (sys本地登录的区别)

(1)当用户登录到操作系统后,如果进而允许此用户登录数据库系统(sqlplus / as sysdba以sys权限登录,可以不用输入密码),则需要在sqlnet.ora中设置SQLNET.AUTHENTICATION_SERVICES= (NTS);

(2)如果设置为SQLNET.AUTHENTICATION_SERVICES= (NONE),则不允许登录到数据库系统中 (执行sqlplus / as sysdba以sys权限登录,必须输入密码)

注:在11g新版本11.2版本中,sqlnet.ora在默认位置($ORACLE_HOME\NETWORK\ADMIN)已经没有了,可以从$ORACLE_HOME\NETWORK\ADMIN\samples取过来,设置 SQLNET.AUTHENTICATION_SERVICES参数的值即可生效

<2>NAMES.DIRECTORY_PATH=(TNSNAMES,hostname) 客户端连接影响。 客户端连接服务器的简单连接方式,带IP地址,就可以直接访问oracle服务端

(1)简单连接方式:EZCONNECT或hostname(类似sqlplus scott/[email protected]:1521/orcl的连接方式,不需要客户端进行任何配置。)

此处的orcl代表的是实例名,

如果删除上面的hostname或ezcoonect(版本不同,参数不同),则无法使用这种简单方式连接外部的oracle服务

(2)TNSNAME,这个参数,表示必须要在客户端配置tnsnames.ora才可以进行访问

在此种方式下,需要配置tnsnames.ora才可以连接。

2、listener.ora

一个服务可以有多个监听,1521,1522,1523等。

# listener.ora Network Configuration File: /data/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  #用于监听tcp/ip过来的请求

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) #ORACLE调用C/C++/JAVA等提供的外部过程、函数

ADR_BASE_LISTENER = /data/u01/app/oracle

3、tnsnames.ora

tnsnames.ora的配置

使用客户端连接方式 :上述的orcl和test都是自定义的服务代表名称,此处@后面的orcl或test,代表的是自定义服务名称

如果把tnsnames.ora中自定义服务orcl名称改为orcl33,如果在用orcl登录,就不可以登录了,如下图

更换orcl为orcl33,可以正常登录

四、Oracle 11g的服务名的含义:

1、服务名,

(1) 服务名:服务名就是 连接字符串 ,可以通过它访问远程数据库,可以通过NETCA配置,配置时要指明远程数据库的主机名,网络协议用TCP/IP,配置完成后可以用如 下方式登陆:

(2)(以服务名orcl33为例)  sqlplus username/password@orcl33,也就是:是对数据库的一个标识,通过服务名可访问数据库 。

(3)测试服务能否连接上:tnsping  <服务名>; tnsping是Oracle提供的一个工具

(4)服务名和数据库,SID都是不一样的,它只是一个连接字符串

五、静态注册和动态注册

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

2、静态注册

在listener.ora中,如果有类似如下的配置 ,就是静态注册。实现静态注册,需要使用netmgr进行,或手动在listener中添加。

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = Orcl)

(ORACLE_HOME =   D:\app\Administrator\product\11.1.0\db_1)

(SID_NAME = ORCL)

3、动态注册

在listener.ora中,如果有类似如下配置,就是动态注册。

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = a84p1l1x02meo8p)(PORT = 1521))

动态注册的一个特点就是不需要LISTENER.ORA文件。默认情况PMON 向LSNRCTL 注册TCP/IP协议,PORT 为1521。

也就是说,如果删除了listener.ora,oracle在启动监听时,也可以自动进行动态注册,不需要listener.ora

在使用netca创建监听时,会自动创建listener.ora,但没什么实际用处,其实也并非无用,如下

(1)如果只使用动态注册,listener.ora可以不用

(2)如果只使用静态注册, listener. ora必须要有

(3)如果考虑使用静态注册和静态注册同时存在,listener.ora必须要有,并且里面包含动态注册和静态注册的配置。

4、静态注册与动态注册最直接简单的判定

(1)使用lsnrctl status查看某个服务是静态注册、还是动态注册;

如果是UNKNOWN,表示静态注册;

如果是READY,表示动态注册。

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

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

5、动态注册与静态注册的转换

方法一:直接编辑listener.ora文件,将静态注册的配置和动态注册的配置进行更换即可。如下图,我让静态和动态同时存在

启动监听效果:

6、动态注册与静态注册的使用场景

大部分情况下,动态注册和静态注册没什么区别,都可以使用。唯一不同场景是,oracle进行DataGuaid或ADG时,主机和备机需要进行静态注册,以便保持主机和备机的监听信息一致

六、Net Configuration Assistant(netca)和net manager(netmgr)的区别

1、netca 可以创建listener.ora、tnsnames.ora、sqlnet.ora

创建listener.ora,创建是动态注册的文件,但是动态注册用不到这个文件,所以这个功能没有任何意义。

创建sqlnet.ora

创建tnsnames.ora

2、netmanager

执行命令:[oracle@localhost admin]$ netmgr

netca
无法配置静态监听,可以配置listener.ora、tnsname.ora、sqlnet.ora
listener configuration:修改的是listener.ora文件
listener configuration有4个选项add\reconfigure\delete\rename
listener configuration(add\reconfigure): 只能对监听配置HOST、PORT 静态注册的监听需要的ORACLE_HOME、SID_NAME无法配置 ,可以简单理解为无法配置静态监听
listener configuration(reconfigure\delete\rename),当前监听正在运行,会提示需要关闭监听,配置完成后(reconfigure\rename),监听会自动启动,(delete)则不会再启动

naming methods configuration:修改的是sqlnet.ora文件
naming methods configuration没有其他选项, 只能修改sqlnet.ora文件的NAMES.DIRECTORY_PATH

local net service name configuration:修改的是tnsname.ora文件
local net service name configuration有5个选项add\reconfigure\delete\rename\test
local net service name configuration(add\reconfigure): 只能对tns配置SERVICE_NAME、HOST、PORT

netmgr
可以配置静态监听,可以配置listener.ora、tnsname.ora、sqlnet.ora
profile修改的是sqlnet.ora文件
naming可以修改NAMES.DIRECTORY_PATH值
general可以配置ADR_BASE路径、各种超时时间、允许或受限IP登录
oracle advanced security可以配置各种高级登录认证权限比如SQLNET.AUTHENTICATION_SERVICES值

service naming修改的是tnsname.ora文件
可以add、delete、reconfigure、rename
reconfigure可以配置SERVICE_NAME、HOST、PORT、INSTANCE_NAME、SERVER(SHARED or DEDICATED)、SID、GLOBAL_NAME、HS、LOAD_BALANCE、FAILOVER

listeners修改的是listener.ora文件
general parameters配置的是ADR_BASE_LISTENERNAME
listening location配置的是address如(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
database services配置的是静态监听信息,如SID_LIST_LISTENERNAME,只包含GLOBAL_DBNAME、ORACLE_HOME、SID_NAME
other services配置的也是静态监听信息,如SID_LIST_LISTENERNAME,还包含PROGRAM、ARGV0、ARGS、ENV

1、listener.ora 在动态注册中,是没有用的;在静态注册中需要增加配置

2、tnsnames.ora中,是本机连接外部连接时的配置文件,

(1)服务器本地,通过sqlplus / as  sysdba或 sqlplus system/oracle登录,都是登录的本地,通过sqlnet.ora的简单连接 NAMES.DIRECTORY_PATH=(TNSNAME, EZCONNECT ) 设置即可

(2)服务器通过tnsnames.ora登录,那么就需要: sqlplus system/oralce@test或 sqlplus system/[email protected]/test或 sqlplus system/[email protected]/test。其中test是自定义连接服务名,而不是SID。

test =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = kssyorclprd)

3、通过下列位置,可以跟踪tns监听信息:

$ORACLE_BASE/diag/tnslsnr/localhost/listener/alert/log.xml

4、 如果本地服务,全局服务为orcl,SID为kssyorclprd,如果在服务器本地使用tnsnames连接,自定义连接名只能为orcl

sqlplus mesprd/Mes1qaz#[email protected]/orcl可以连接

sqlplus

orcl =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = kssyorclprd)