tnsnames.ora数据库连接的设置

博客介绍了Oracle的tnsnames.ora文件,位于D:/oracle/ora9/network/admin/路径下,设置该文件可方便sql plus登陆。还给出了文件中的配置示例,同时提到作者发现Oracle似乎比SQL Server复杂,dblink操作还待研究。

D:/oracle/ora9/network/admin/tnsnames.ora

里面有个这样的一个文件,通过设置它可以方便sql plus的登陆,具体由一些什么样的应用,或者,具体怎么使用dblink进行操作,我还要研究一下,发现oracle似乎比sql server复杂很多。

# TNSNAMES.ORA Network Configuration File: D:/oracle/ora9/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = overmind)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

OVERMIND =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = overmind)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = overmind)
    )
  )

BV_210 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 210.74.178.23)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = bv)
    )
  )

### Oracle Listener.oraTNSNAMES.ORA数据库配置教程及最佳实践 #### 配置概述 在 Oracle 数据库环境中,`listener.ora` 和 `tnsnames.ora` 是两个关键的网络配置文件。为了支持多数据库环境并确保服务器重启后仍能正常连接,这两个文件需要精心设计和维护。 --- #### 1. **Listener.ora 的多数据库配置** `listener.ora` 文件定义了监听器及其关联的服务实例。以下是针对多数据库场景的最佳实践: - 定义多个监听器或在一个监听器中注册多个数据库实例。 - 使用 `SID_LIST_LISTENER` 参数来指定每个数据库实例的信息。 ##### 示例配置 假设存在两个数据库实例 `DB1` 和 `DB2`,其对应的 Oracle Home 路径分别为 `/u01/app/oracle/product/19c/dbhome_1` 和 `/u02/app/oracle/product/19c/dbhome_2`。 ```plaintext LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip_or_hostname)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DB1) (ORACLE_HOME = /u01/app/oracle/product/19c/dbhome_1) (SID_NAME = DB1) ) (SID_DESC = (GLOBAL_DBNAME = DB2) (ORACLE_HOME = /u02/app/oracle/product/19c/dbhome_2) (SID_NAME = DB2) ) ) ADR_BASE_LISTENER = /u01/app/oracle ``` 此配置允许单个监听器管理多个数据库实例,并通过不同的全局数据库名区分它们[^3]。 --- #### 2. **Tnsnames.ora 的多数据库配置** `tnsnames.ora` 文件用于客户端访问远程数据库时提供别名映射。对于多数据库环境,需为每个数据库定义独立的条目。 ##### 示例配置 继续以上述 `DB1` 和 `DB2` 实例为例,在 `tnsnames.ora` 中添加如下内容: ```plaintext DB1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip_or_hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db1_service_name) ) ) DB2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_server_ip_or_hostname)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db2_service_name) ) ) ``` 注意:`SERVICE_NAME` 应与目标数据库的实际服务名称一致。可以通过查询视图 `V$INSTANCE` 或 `V$DATABASE` 获取该值[^4]。 --- #### 3. **确保服务器重启后的自动恢复** 为了避免服务器重启导致监听器失效,建议执行以下操作: - 将监听器启动脚本加入操作系统级别的初始化程序(如 Linux 的 `/etc/rc.d/init.d` 或 Windows 的服务列表)。 - 在 Oracle 自带的 `dbstart` 和 `dbshut` 脚本中启用监听器控制功能。 ##### 示例:Linux 下的自动化设置 编辑 `$ORACLE_HOME/bin/dbstart` 文件,确保包含以下参数: ```bash LSNRCTL_START="lsnrctl start" LSNRCTL_STOP="lsnrctl stop" ``` 同时确认 `/etc/oratab` 文件中的条目已正确标记为 `Y`,以便于自动启动相关组件[^5]。 --- #### 4. **验证配置的有效性** 完成上述配置后,可通过以下方法测试连接性和可用性: - 使用 `lsnrctl status` 命令检查监听器状态。 - 执行 `tnsping <alias>` 测试特定数据库的可达性。 - 登录到 SQL*Plus 并尝试连接至各数据库实例以验证实际效果。 --- #### 代码示例:动态修改 Listener 配置 如果需要动态调整监听器配置而不重新启动整个服务,可利用以下 PL/SQL 脚本实现: ```plsql BEGIN SYS.DBMS_SERVICE.CREATE_SERVICE( service_name => 'new_db_service', network_name => 'new_db_network' ); SYS.DBMS_SERVICE.START_SERVICE('new_db_service'); END; / ``` 这有助于快速响应新增加数据库需求,减少停机时间。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值