配置TNSNAMES.ORA文件
远程连接Oracle数据库需要在客户端配置tnsnames.ora文件,该文件通常位于$ORACLE_HOME/network/admin目录下。添加以下内容,替换实际的主机名、端口和服务名:
- Windows:
%ORACLE_HOME%\network\admin\tnsnames.ora - Linux/Unix:
$ORACLE_HOME/network/admin/tnsnames.ora
若未找到文件,可检查环境变量TNS_ADMIN是否指向自定义路径。
REMOTE_DB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = remote_host)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = remote_service_name)
)
)
参数说明:
<SERVICE_NAME>: 用户定义的网络服务名(别名)。<protocol>: 通信协议(如 TCP、TCPS)。<hostname>: 数据库服务器主机名或 IP 地址。<port>: 数据库监听端口(默认 1521)。<database_service_name>: 数据库实例的服务名(非 SID)。
使用SQL*Plus连接
通过SQL*Plus工具连接远程数据库,使用以下命令格式:
sqlplus username/password@REMOTE_DB
使用PL/SQL Developer连接
在PL/SQL Developer工具中,选择“文件” > “新建” > “数据库连接”,填写以下信息:
- 用户名:数据库用户名
- 密码:数据库密码
- 数据库:
REMOTE_DB(与tnsnames.ora中定义的别名一致) - 连接为:Normal
使用Oracle Net Manager配置
通过Oracle Net Manager图形化工具配置远程连接:
- 启动Oracle Net Manager
- 选择“服务命名” > “创建”
- 输入服务名(如
REMOTE_DB) - 选择协议(通常为TCP/IP)
- 输入主机名和端口号
- 输入服务名(Oracle数据库的服务名)
测试连接
使用tnsping命令测试TNS配置是否有效:
tnsping REMOTE_DB
如果配置正确,将返回类似以下信息:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = remote_host)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = remote_service_name)))
OK (xx msec)
防火墙配置
确保客户端和服务器之间的网络连接畅通,防火墙允许1521端口(Oracle默认端口)的通信。如果使用非标准端口,需相应调整防火墙规则。
权限检查
确保数据库用户具有远程连接的权限。可以通过以下SQL检查用户权限:
SELECT * FROM dba_users WHERE username = 'YOUR_USERNAME';
必要时授予用户CONNECT和RESOURCE角色:
GRANT CONNECT, RESOURCE TO your_username;
监听器配置
Oracle监听器设置指南
Oracle监听器(Listener)是Oracle数据库的重要组成部分,负责接收客户端连接请求并将其转发到相应的数据库实例。以下是设置和配置Oracle监听器的详细步骤。
监听器配置文件
监听器的配置文件通常位于$ORACLE_HOME/network/admin/listener.ora。以下是一个典型的监听器配置示例:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = your_db_name)
(ORACLE_HOME = /path/to/oracle/home)
(SID_NAME = your_sid)
)
)
启动监听器
使用以下命令启动监听器服务:
lsnrctl start
停止监听器
如果需要停止监听器服务,可以使用以下命令:
lsnrctl stop
检查监听器状态
要查看监听器的当前状态和配置信息,可以运行:
lsnrctl status
连接字符串语法
在无法使用TNS别名的情况下,可以直接使用连接字符串:
username/password@//remote_host:1521/remote_service_name
故障排查
如果连接失败,检查以下方面:
- 网络连通性(ping远程主机)
- 监听器状态(lsnrctl status)
- 防火墙设置
- 数据库服务是否运行
- TNS配置是否正确
2004

被折叠的 条评论
为什么被折叠?



