zoukankan      html  css  js  c++  java
  • Oracle中无法解析TNS的陷阱

            在中小企业中由于项目经费的限制,如果使用Oracle,经常采用的一个程序部署策略就是
    将数据库管理程序和应用程序服务器部署在同一台服务器上:
         -----------------
         |    Oracle           |       
         |    IIS                |---->Server 
         |    DAL             |
         ------------------
           由于数据访问层部署在服务器端,那么要访问数据的时候,就需要安装Oracle客户端,如
    ODP.NET等组件。如果部署不小心或者说安装策略不对,那么经常会造成一些问题。
    假设您已经安装了Oracle服务器和客户端组件,并使用Net Manager配置好了TNS:
    【现象1】
              要使用EXP命令导出数据库的时候,提示无法解析指定的TNS
    【现象2】
              要使用EXP命令导出数据库的时候,提示无监听器
    【现象3】
              在服务器端使用一些管理工具EnterPrise Manger Console可以登录到数据库,但是从客户端
    登录的时候总是提示无法解析TNS或者或者无监听器,造成登录失败。
              这是什么原因呢?其中一个重要的原因就是由于服务器段和客户端安装配置造成的问题。
    Oracle安装程序都是遵循其所谓OSF来部署程序的,也就是说其程序是按照其固定的路径的安
    装的,如果同时安装了服务器程序和客户端组件,且不从同一个根开始的话,那么就会产生
    两个OSF。从开始菜单中我们也可以看到这种区别,服务器程序和客户端组件各有一个文件夹。
    这里面临的一个陷进就是如果是从服务器端文件夹的Net Manager的快捷方式启动配置的话,
    那么这个TNS只会被服务器认识,如果从客户端组件快捷文件夹的Net Manager的快捷方式启
    动配置的话,那么这个TNS只会被客户端组件认识。且看安装了服务器和客户端的文件夹布局:
    【客户端】
    -Oracle
     -Product
      -10.1.0
       -Client_1
        -NetWork
         -ADMIN
          -tnsnams.ora
    【服务器】
    -Oracle
     -Product
      -10.2.0
       -db_1
        -NetWork
         -ADMIN
          -tnsnams.ora
    其中tnsnames.ora文件就是存放TNS配置信息的文件。
    从这个布局中我们可以回答,为什么会出现上面所说的现象。
    那么怎么避免这个问题呢?
    1。在安装的时候将服务器和客户端组件安装在同一个根下面
    2。使用服务器和客户端的Net Manager配置一样的TNS。
    3.   服务器使用unix而不是nt。
  • 相关阅读:
    算法学习:二分法从入门到精通
    TypeScript筑基笔记一:Visual Studio Code 创建Typescript文件和实时监控
    LeetCode 92. 反转链表 II
    LeetCode 1525. 字符串的好分割数目
    字节跳动-people后台一面面经
    LeetCode 117. 填充每个节点的下一个右侧节点指针 II
    LeetCode 1529. 灯泡开关 IV
    LeetCode 165. 比较版本号
    LeetCode 312. 戳气球
    LeetCode 605. 种花问题
  • 原文地址:https://www.cnblogs.com/yanrongpi/p/492915.html
Copyright © 2011-2022 走看看