- 21天学通Oracle(第2版)
- 张朝明 陈丹编著
- 2386字
- 2020-08-27 04:46:26
2.1 Net Configuration Assistant(网络配置助手)
网络配置助手,主要为用户提供Oracle数据库的监听程序、命名方法、本地NET服务名和目录配置。网络配置助手以向导的形式出现,使配置过程更加简单。
2.1.1 监听程序配置
监听程序(监听器)是Oracle基于服务器端的一种网络服务。监听程序创建在数据库服务器端,主要作用是监视客户端的连接请求,并将请求转发给服务器。Oracle监听程序总是存在于数据库服务器端,因此在客户端创建监听程序毫无意义。Oracle监听程序是基于端口的,也就是说,每个监听程序会占用一个端口。配置监听程序的步骤如下。
1 在Windows任务栏中依次选择【开始】|【程序】|【Oracle 10g Home】|【Configuration and Migration Tools】|【Net Configuration Assistant】命令,将出现网络配置助手的欢迎界面,如图2-1所示。
图2-1 网络配置助手的欢迎界面
2 选择【监听程序配置】单选按钮,并单击【下一步】按钮,将进入监听程序配置界面,如图2-2所示。
图2-2 选择监听配置工作
3 在工作选择界面中,选择【添加】单选按钮,并单击【下一步】按钮,将进入监听程序名配置界面,如图2-3所示。
图2-3 配置监听程序名
4 为监听程序输入名称,例如“LISTENER”。单击【下一步】按钮,将进入协议选择界面,如图2-4所示。
图2-4 选择协议
5 在协议选择界面中,保持默认的TCP协议即可。单击【下一步】按钮,将进入端口选择界面,如图2-5所示。
图2-5 选择端口
6 在端口选择界面中,使用默认的1521 端口。单击【下一步】按钮,将进入更多监听程序的选择界面,如图2-6所示。
图2-6 更多监听程序配置
7 在【是否配置另一个监听程序】选项中,选择【否】单选按钮。单击【下一步】按钮,将进入监听程序配置完成界面,如图2-7所示。
图2-7 监听程序配置成功
8 在监听程序配置成功之后,需要关注的是操作系统中服务与Oracle安装目录下文件的变化。在操作系统的服务中,将会看到有关于新建监听的服务自动启动,如图2-8所示。
图2-8 新建监听的Windows服务
在{ORACLE_HOME}\ NETWORK\ADMIN下会自动创建一个名为listener.ora的文件,其内容如下:
# listener.ora Network Configuration File: D:\oracle\product\10.1.0\ Db_2\network\ admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = D:\oracle\product\10.1.0\Db_2) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.97)(PORT = 1521)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) )
该文件由网络配置助手自动生成。其中存储了各监听器的配置参数。LISTENER为监听器名称;PROTOCOL=TCP指定监听器所使用的协议为TCP协议;HOST=192.168.1.97指定监听器所在的主机IP,即Oracle数据库的安装主机;PORT = 1521指定监听器的监听端口。
需要注意的是,文件名称Listener.ora并非来自监听名Listener。也就是说,即使新添其他监听程序,其配置也被记录在Listener.ora中。当Oracle环境中不存在任何监听时,Listener.ora文件将被自动删除。
2.1.2 命名方法配置
Oracle客户端在连接数据库服务时,并不会直接使用数据库名等信息,而是使用连接标识符。连接标识符一般存储了连接的详细信息。定义连接标识符的方法一般有5种。
● 主机命名(Host Naming):客户端利用TCP/IP协议、Oracle Net Services和TCP/IP协议适配器,仅凭主机地址,即可建立与数据库的连接。
● 本地命名:使用在每个Oracle客户端的tnsnames.ora文件中配置和存储的信息来获得数据库的连接描述符,从而实现与数据库的连接。
● 目录命名:将数据库服务或网络服务名解析为连接描述符,该描述符存储在中央目录服务器中。
● Oracle Names:这是由Oracle Names服务器系统构成的Oracle目录服务,这些服务器可以为网络上的每个服务提供由名称到地址的解析。
● 外部命名:使用受支持的第三方命名服务。
对于一般的小型应用,最常用的命名方法为本地命名方法。配置Oracle的命名方法为本地命名的步骤如下。
1 打开【Oracle Net Configuration Assistant】,并选择【命名方法配置】单选按钮,如图2-9所示。
图2-9 选择命名方法配置
2 单击【下一步】按钮,将进入【命名方法配置】界面,如图2-10所示。
图2-10 命名方法配置
在右侧的列表中,列出了已选择的命名方法。默认情况下,Oracle推荐使用本地命名和轻松连接命名,二者的顺序为:首先搜索本地命名,如果不能获得连接描述符,接着搜索轻松连接命名。Oracle提供了这种允许多种命名方法共存,使用顺序来指定优先级的方式来配置命名方法。在本例中,保持默认值,并单击【下一步】按钮。将进入命名方法配置成功界面,如图2-11所示。
图2-11 命名方法配置成功
在成功配置命名方法之后,可以打开{ORACLE_HOME}\NETWORK\ADMIN\ sqlnet.ora文件,文件内容如下:
# sqlnet.ora Network Configuration File: D:\oracle\product\10.1.0\Db_2\ network\ admin\sqlnet.ora # Generated by Oracle configuration tools. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
其中,NAMES.DIRECTORY_PATH即为命名方法的搜索路径:首先搜索本地命名,然后搜索轻松连接命名。
2.1.3 本地Net服务名配置
本地Net服务名配置,即为2.1.2节中提到的本地命名。创建一个新的本地Net服务名的步骤如下。
1 在Oracle网络配置助手的欢迎界面选择【本地Net服务名配置】单选按钮,如图2-12所示。
图2-12 选择本地Net服务名配置
2 单击【下一步】按钮,将进入工作选择界面,如图2-13所示。
图2-13 服务名配置中的工作选择
3 该界面中提供了添加、重新配置、删除、重命名、测试等工作选项。在此,选择【添加】单选按钮,并单击【下一步】按钮,将进入服务名配置界面,如图2-14所示。
图2-14 服务名配置界面
4 在该页面中输入数据库服务名。一般为数据库的全局数据库名,例如默认的ORCL。单击【下一步】按钮,将进入协议选择界面,如图2-15所示。
图2-15 为新建服务名选择协议
5 保持协议选择为默认的TCP协议,并单击【下一步】按钮,将进入TCP/IP协议的详细配置,如图2-16所示。
图2-16 TCP/IP协议详细设置
6 为主机名输入本机IP,例如,192.168.1.97,并保持端口号为默认的1521。需要注意的是,这里的端口号,必须与服务器端的监听器端口号保持一致。单击【下一步】按钮,将进入测试界面,如图2-17所示。
图2-17 服务名测试页面
7 在测试页面中选择【是,进行测试】单选按钮,并单击【下一步】按钮,开始进行测试。第一次的测试往往不会成功。最常见的原因为用户名和密码错误,如图2-18所示。
图2-18 用户名/密码错误导致测试失败
8 单击【更改登录】按钮,可以修改用户名和密码,然后再次进行测试,直至测试成功,如图2-19所示。
图2-19 修改用户和密码之后,测试成功
9 单击【下一步】按钮,进入NET服务名页面,并为新建的NET服务指定名称,例如ORACLE,如图2-20所示。
图2-20 为新建的Net服务指定名称
此时,打开文件{ORACLE_HOME}\NETWORK\ADMIN\tnsnames.ora,会发现该文件添加了有关Net服务名ORACLE的内容,代码如下:
# tnsnames.ora Network Configuration File: D:\oracle\product\10.1.0\Db_2\ network\ admin\tnsnames.ora # Generated by Oracle configuration tools. ORACLE = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.97)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )