使用“Net Configuration Assistant”(网络配置助手)配置监听服务相关文件的操作流程如下所示。
在“开始菜单”找到“Database Configuration Assistant”(网络配置助手),点击一下。
单击之后,进入网络配置助手操作界面。操作流程如下所示。
1、选择 “监听程序配置” 创建 listener.ora 文件
选择“监听程序配置”创建 listener.ora 文件。该操作会自动生成listener.ora 和 tnsnames.ora文件。
1.1 操作流程
1.2 生成的文件:listener.ora 和 tnsnames.ora
listener.ora
# listener.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\listener.ora # Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:D:\databases\oracle\oracle_11g\app\administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Administrator-PC)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))ADR_BASE_LISTENER = D:\databases\oracle\oracle_11g\app\administrator
tnsnames.ora
# tnsnames.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\tnsnames.ora # Generated by Oracle configuration tools.ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))
1.3 测试
测试连接全局数据库名为remote_orcl 的数据库,使用SQL*Plus 命令:
sqlplus system/abc123ABC@Administrator-PC:1521/remote_orcl
,如下所示。C:\Users\administrator>sqlplus system/abc123ABC@Administrator-PC:1521/remote_orclSQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 21 16:34:14 2023Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>
2、选择 “命名方法配置” 创建 sqlnet.ora 文件。
2.1 操作流程
2.2 生成的文件:sqlnet.ora
sqlnet.ora
# sqlnet.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\sqlnet.ora # Generated by Oracle configuration tools.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)ADR_BASE = D:\databases\oracle\oracle_11g\app\administrator
“命名方法配置”相关参数:
(1)本地命名:TNSNAMES
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES)
(2)轻松连接命名:EZCONNECT
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (EZCONNECT)
(3)目录命名:LDAP
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (LDAP)
(4)NIS外部命名
SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (NIS)NAMES.NIS.META_MAP = 元映射
备注:
SQLNET.AUTHENTICATION_SERVICES= (NTS) 配置:表示系统身份验证 —用户名和口令可输可不输。支持使用 “sqlplus / as sysdba” 和 “conn / as sysdba” 的数据库连接。
NAMES.DIRECTORY_PATH= (EZCONNECT) 配置:支持 “sqlplus 用户名/密码@主机:端口/全局数据库名” 格式的数据库连接。
NAMES.DIRECTORY_PATH= (TNSNAMES) 配置:支持 “sqlplus 用户名/密码@网路服务名” 格式的数据库连接。
注意:
SQLNET.AUTHENTICATION_SERVICES= (NTS) 表示使用操作系统本地验证,一般不用,有安全问题。通常需要改成下面的值:SQLNET.AUTHENTICATION_SERVICES= (NONE)2.3 测试
测试使用操作系统本地验证,使用SQL*Plus 命令:
sqlplus / as sysdba
,如下所示。C:\Users\administrator>sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 21 16:57:19 2023Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>
3、选择 “本地网络服务配置” 创建 tnsnames.ora 文件。
3.1 操作流程
填写服务名,如下所示。
填写主机名和端口号,如下所示。
这里选择“是,进行测试”,确保连接正确。如下所示。(这样可以避免有时可能因配置错误未及时发现,导致后期数据库连接不上而进行的排查工作。)
注意:有时这里可能出现“测试不成功”,这时就要根据提示进行解决(详细见“附录”)。下图是正常“测试成功”的例子。
3.2 生成的文件:tnsnames.ora
tnsnames.ora
# tnsnames.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\tnsnames.ora # Generated by Oracle configuration tools.CONNECT_IDENTIFIER_REMOTE_ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = Administrator-PC)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = remote_orcl)))ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))
3.3 测试
测试连接网络服务名为 connect_identifier_remote_orcl 的数据库,使用SQL*Plus 命令:
sqlplus system/abc123ABC@connect_identifier_remote_orcl
,如下所示。C:\Users\administrator>sqlplus system/abc123ABC@connect_identifier_remote_orclSQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 21 18:25:19 2023Copyright (c) 1982, 2010, Oracle. All rights reserved.连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL>
4、选择 “目录使用配置” 创建 ldap.ora 文件。
4.1 操作流程
4.2 生成的文件
ldap.ora
# ldap.ora Network Configuration File: D:\databases\oracle\oracle_client\instantclient_21_9\network\admin\ldap.ora # Generated by Oracle configuration tools.DIRECTORY_SERVERS= (Administrator-PC:389:636)DIRECTORY_SERVER_TYPE = OID
在 “3、选择 “本地网络服务配置” 创建 tnsnames.ora 文件”的过程中,当进行到后面“检验是否能连接到Oracle数据库”的界面选择“时,在选择“是,进行测试”之后,有时在测试过程可能出现“测试未成功”。这时,应该根据提示进行如下检查:检查填写的主机名是否正确、填写的主机名在监听程序listener.ora文件中是否有配置、用户名和密码是否正确。
(1)检查填写的主机名是否正确。
错误重现:
正确的主机名为Administrator-PC,当误写成Administrator222-PC时,就会出现这个报错。
操作:
连续点击两次“上一步”,回到填写主机名的界面,检查主机名填写是否正确。解决方案:
修改主机名,填写正确的主机名。比如本案例中就是Administrator-PC。
(2)检查填写的主机名在监听程序listener.ora文件中是否有配置。
错误重现:
listener.ora文件中不存在主机为localhost的配置,即“(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))”,当填写主机名为localhost时,就会出现这个报错。
操作:
a. 连续点击两次“上一步”,回到填写主机名的界面,检查主机名填写是否正确。
b. 检查listener.ora文件中是否存在跟填写的主机名的名称相同的配置。解决方案:
方案1:修改主机名,填写正确的主机名。比如本案例中就是Administrator-PC。
方案2:修改listener.ora文件,增加与填写的主机名对应的配置。比如本案例中就是在listener.ora文件中增加“(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))”。
(3)检查用户名和密码是否正确。
错误重现:当自动填充的密码是错误时,就会出现这个报错。
操作:
点击下方的“更改登录”,检查用户名和密码是否正确。解决方案:
点击下方的“更改登录”,更改登录的用户名和口令。