在Oracle数据库环境中,客户端与数据库服务器的连接依赖于网络服务名配置,而tnsnames.ora文件正是用于存储这些配置的核心文件,它作为Oracle网络配置的关键组件,负责将客户端提供的网络服务名映射到具体的数据库连接信息,是确保客户端能正确访问数据库服务的基础。
什么是tnsnames.ora?
tnsnames.ora是Oracle数据库客户端中用于存储网络服务名(Net Service Name)配置信息的文本文件,它定义了数据库服务名与网络连接参数(如主机名、端口、服务名等)的映射关系,客户端通过该文件中的配置信息,能够快速定位并连接到目标数据库服务,该文件通常位于Oracle安装目录下的network目录中,是Oracle网络配置的核心文件之一。
配置tnsnames.ora的基本步骤
配置tnsnames.ora需要遵循一系列步骤,确保配置正确且有效:
配置示例:创建本地数据库服务名
以下示例展示如何配置一个名为“orcl”的服务名,指向本地Oracle数据库(假设监听器已配置监听服务名为orcl):
[orcl] =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
| 参数 | 说明 |
|---|---|
| 定义网络地址信息,包括协议(TCP)、主机名(localhost)和端口(1521) | |
| 连接协议,此处为TCP | |
| 数据库所在主机名 | |
| 监听器监听端口 | |
| CONNECT_DATA | 连接数据,包括服务器类型(DEDICATED)和服务名(orcl) |
常见配置问题与解决
最佳实践
常见问题解答(FAQs)
50分紧急求助:.NET 连接 Oracle 出现 "ORA-06413: 连接未打开。"
试试:1. 把这段存储到Oracle‘的客户端配置文件中,并命名:hy=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=develop-01)(PORT=1521)))(CONNECT_DATA=(SID=hy)(SERVER=DEDICATED)))2. 在程序中用 hy进行连接 = Provider=msdaora;User ID=livell;PassWORD=abc--123;Data Source=hy;Persist Security Info=True;3. 如不还不行,去掉 Persist Security Info=True 试试
我装了oracle11g,运行PL-SQL Developer,总是下面的提示,我是菜鸟,分不清oracle客户端跟数据库,求解释
如果是64位的系统,请参考:使用PL/SQL Developer连接OracleX64版本:•1. 下载32位Oracle InstantClient,并展开到某目录,例如C:\instantclient-basic-nt-11.2.0.2.0;•2. 将系统的拷贝到该目录下;•3. 在PLSQL Developer中设置Oracle_Home和OCI Library: ToolsPreferencesOracleConnection:Oracle_Home:C:\instantclient-basic-nt-11.2.0.2.0OCI Library:C:\instantclient-basic-nt-11.2.0.2.0\•4. 在PLSQL Developer目录下编辑如下bat文件,替换其快捷方式,启动PLSQL Developer:@echo offset path=C:\instantclient-basic-nt-11.2.0.2.0set ORACLE_HOME=C:\instantclient-basic-nt-11.2.0.2.0set TNS_ADMIN=C:\instantclient-basic-nt-11.2.0.2.0set NLS_LANG=AMERIcan_16GBKstart
Error ora-12154:tns:无法解析指定的连接标识符 ORA
打开你的ORACLE的network配置 ADMIN目录下有个文件 查看有没有配置好服务,也可以按照上面的例子自己手工写进去 如xxx = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = xxx) ) )














发表评论