今天被oracle老师扣平时分了,忧伤(╯﹏╰),还是好好学吧。
实际上,在安装完oracle11g时候,就已经配置监听器了。
不信?cmd 中 输入services.msc, 打开服务会看到OracleOraDb11g_home1TNSListener。
下面是默认配置文件信息
如上图,配置和移植工具->Net Manager。
在该对话框中可以进行数据库服务器的网络配置,包括查看概要文件、服务命名、监听程序的配置信息;同时还可以进行概要文件、服务命名、监听程序的配置、以及测试与数据库的连接情况。
一、配置监听器
监听程序(监听器)是Oracle基于服务器端的一种网络服务。监听程序创建在数据库服务器端,主要作用是监听客户端的连接请求,并将请求转发给服务器。Oracle监听程序总是存在于数据库服务器端,因此在客户端创建监听程序毫无意义。
(1)启动netcat(Net Configuration Assistant)
方法:
1.netcat
2.window菜单 应用里直接打开Net Configuration Assistant
(2)步骤二
为什么是添加呢?
因为安装oracle11g后,就已经有默认配置了。
如图所示:
listener.ora——listener监听器进程的配置文件
LISTENER :监听名称,可以配置多个监听,多个监听的端口号要区分开来。
GLOBAL_DBNAME :全局数据库名。通过select * from global_name; 查询得出
ORACLE_HOME :oracle软件的根目录
SID_NAME :服务器端(本机)的SID
PROTOCOL:监听协议,一般都使用TCP
HOST:本机IP地址,双机时候使用浮动IP
PORT:监听的端口号,使用netstat –an 检查该端口不被占用。
(3)步骤三
(4)步骤四
(5)步骤五
实际上:就是在listener.ora 添加配置
//分别在List下 加
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = 路径)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:路径")
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
(ADDRESS = (PROTOCOL = TCP)(HOST = xxxip)(PORT = 1522))
)
(6)步骤六
二、配置本地Net服务名
本地网络服务器名配置就是通过网络访问Oracle数据库或其他服务时用到的Net服务名。在进行Oracle软件开发时,每一个人只需要安装一个客户端即可,没有必要将所有的都安装一个Oracle数据库服务器,因为数据库服务器是共享的。此时需要配置客户端。
(1)启动netcat
(2)步骤二
(3)步骤三
(4)步骤四
注意:这里的服务器名,是你数据库名,后面的。默认是:orcl
(5)步骤五
(6)步骤六
说明已经有了
tnsnames.ora——这个文件类似于unix 的hosts文件,提供的tnsname到主机名或者ip的对应
只有当sqlnet.ora中类似NAMES.DIRECTORY_PATH= (TNSNAMES) 这样,也就是客户端解析连接字符串的顺序中有TNSNAMES是,才会尝试使用这个文件。
ORCL:客户端连接服务器端使用的服务别名。注意一定要顶行书写,否则会无法识别服务别名。
PROTOCOL:客户端与服务器端通讯的协议,一般为TCP,该内容一般不用改。
HOST:ORACLE服务器端IP地址或者hostname。确保服务器端的监听启动正常。
PORT:数据库侦听正在侦听的端口,可以察看服务器端的listener.ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看。此处Port的值一定要与数据库侦听正在侦听的端口一样。
SERVICE_NAME:在服务器端,用system用户登陆后,sqlplus> show parameter service_name命令查看。
sqlplus运行基本机理:
在用户输入sqlplus system/manager@test后,sqlplus程序会自动到sqlnet.ora文件中找NAMES.DEFAULT_DOMAIN参数,假如该参数存在,则将该参数中的值取出,加到网络服务名的后面,即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/manager@test.server.com ,然后再到tnsnames.ora文件中找test.server.com网络服务名,这当然找不到了,因为该文件中只有test网络服务名,所以报错。解决的办法就是将sqlnet.ora文件中的NAMES.DEFAULT_DOMAIN参数注释掉即可,如 #NAMES.DEFAULT_DOMAIN = server.com。假如NAMES.DEFAULT_DOMAIN参数不存在,则sqlplus程序会直接到tnsnames.ora文件中找 test网络服务名,然后取出其中的host ,port,tcp,service_name,利用这些信息将连接请求发送到正确的数据库服务器上。