ORACLE安装后配置PLSQL

    xiaoxiao2023-03-24  1

    本人在使用oracle的时候,常常发现plsql连不上oracle的时候。有的本机不能连,有的远程不能连,时常捉摸不透问题到底出在哪儿,一会儿实例名,一会儿服务名,一会儿说缺少监听,一会说解析不了服务,又有时候发现ip能连,localhost不能连,问题颇多。这几天弄了几台虚拟机专门安装oracle,了解了一些皮毛,记录下来。

    本人主要论述ORACLE后,如何配置实现PLSQL访问的问题。

    一 基本说明

    1 操作系统是win7。

    2 oracle是11g2R。

    3 plsql是免安装版本,内含简约版oracle客户端instantclient。

    4 需要安装的是oracle数据库,oracle客户端和plsql都不需要安装。

    二 基本配置

    1 我们安装好oracle以后,安装目录一般类似这个结构F:\app\Think\product\11.2.0\dbhome_1(本文以此为例)。这个时候,默认会有一个实例orcl,服务名一般为ORCL。

    2 plsql免安装版解压后,目录D:\install\PLSQL,目录结构如下:

        D:\install\PLSQL         |-- instantclient_11_2             |-- tnsnames.ora         |-- PLSQL Developer         |-- readme.txt

    三 配置

    1 修改F:\app\Think\product\11.2.0\dbhome_1\NETWORK\ADMIN下面listener.ora和tnsnames.ora

    1.1 listener.ora内容如下:

    LISTENER =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 计算机名)(PORT = 1521))   ) SID_LIST_LISTENER =   (SID_LIST =     (SID_DESC =       (ORACLE_HOME = F:\app\Think\product\11.2.0\dbhome_1)       (SID_NAME = ORCL)     )   ) ADR_BASE_LISTENER = F:\app\Think

    1.2 tnsnames.ora内容如下:

    tns =   (DESCRIPTION =     (ADDRESS_LIST =       (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-I9IGNNTD71I)(PORT = 1521))     )     (CONNECT_DATA =       (SERVICE_NAME = ORCL)     )   )

    1.3 配置环境变量

    NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK     TNS_ADMIN = F:\app\Think\product\11.2.0\dbhome_1\NETWORK\ADMIN

    1.4 重启OracleOraDb11g_home1TNSListener和OracleServiceORCL服务

    1.5 使用plsql连接,输入用户名、密码,选择tns选项,选择normal,连接。

    三 lsnrctl status的作用

    1 我们经过以上步骤后,一般能够连接上。不过也经常出现各种错误提示,比如监听程序无法识别连接描述符中请求的服务、监听程序无法识别连接描述符中请求的SID等。这时候我们在命令行中输入lsnrctl status查看结果LISTENER 的 STATUS:

    ------------------------ 别名                      LISTENER 版本                      TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ ction 启动日期                  27-9月 -2016 19:42:43 正常运行时间              0 天 0 小时 3 分 41 秒 跟踪级别                  off 安全性                    ON: Local OS Authentication SNMP                      OFF 监听程序参数文件          F:\app\Think\product\11.2.0\dbhome_1\network\admin\lis tener.ora 监听程序日志文件          f:\app\think\diag\tnslsnr\swxx_dyl\listener\alert\log. xml 监听端点概要...   (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=swxx_dyl)(PORT=1521))) 服务摘要.. 服务 "ORCL" 包含 2 个实例。   实例 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...   实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 服务 "orclXDB" 包含 1 个实例。   实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 命令执行成功

    如果能看到服务摘要下面的内容,说明监听已经启动,并且已经监听了一些服务和实例。以上就表示监听了两个服务:一服务名ORCL带俩实例ORCL和orcl。二服务名orclXDB带实例orcl。这个时候我们看一看tnsnames.ora看一看CONNECT_DATA这个节点的内容,这里可以配置成SERVICE_NAME=服务名或者SID=实例名的形式,服务名或者实例名要在上面status的列表中有才行。这里尤其注意服务名和实例名不是大小写敏感的。比如这个例子,我在tnsnames.ora配置成SERVICE_NAME=oRclXdb也是可以的。

    如果服务摘要下面的内容没有服务列表,那么说明问题正出在这里。首先我们看一看监听程序参数文件,看看这个文件的内容是不是和我上面的配置一样。如果监听程序参数文件的位置不是F:\app\Think\product\11.2.0\dbhome_1\listeners.ora,我们查看一下环境变量TNS_ADMIN设置是否正确。

    四 listeners.ora和tnsnames.ora

    1 oracle加载的listerers.ora的位置首先是取环境变量TNS_ADMIN位置下的同名文件,如果没有环境变量TNS_ADMIN,取F:\app\Think\product\11.2.0\dbhome_1\listeners.ora。它的配置主要是HOST和SID_NAME。HOST可以是计算机名/ip/localhost/127.0.0.1,个人觉得配置计算机名更通用,本机plsql中可以使用计算机名/ip/localhost/127.0.0.1:port/SID来访问。SID_NAME不能用SID或者SERVICE_NAME取代(注意这里是SID_LIST_LISTENER)。SID_NAME的值要用实例名,可以连上sqlplus后使用select instance_name from v$instance查看实例名,一般为orcl。

    2 tnsnames.ora主要是plsql使用,它的实际位置请参阅五他的主要配置也是HOST和SERVICE_NAME。这里本机访问HOST能使用哪些值取决于listneers.ora的HOST值。SERVICE_NAME=服务名可以换成SID=实例名(注意单实例环境下),这里实例名和服务名也不分大小写。

    五 plsql配置说明

    plsql需要配置两个东西oci.dll位置和tnsnames.ora位置,这两个地方都在plsql的工具-->首选项中配置。

    1 oci.dll在OCI库内配置,找到D:\install\PLSQL\instantclient_11_2\oci.dll。

    2 tnsnames.ora,在ORACLE主目录中配置tnsnames.ora的位置。这里要留意一下,如果这里为空,系统寻找环境变量TNS_ADMIN下面的tnsnames.ora配置,如果环境变量TNS_ADMIN没有配置,就寻找F:\app\Think\product\11.2.0\dbhome_1\NETWORK\ADMIN下面的tnsnames.ora。

    六 一些注意事项

    1 修改文件后,一般需要重启服务。

    2 要找到正确位置的listeners.ora和tnsnames.ora再修改。

    3 以lsnrctl status是否能展示服务列表为分水岭,不能的话,说明服务端还没配好,要找到服务端的listeners.ora到底在哪,内容到底有没有问题;能展示服务列表的话,可以在plsql中直接用地址字符串来实验。本机的话,地址字符串是localhost/127.0.0.1/ip/计算机名:1521/SID,注意SID要在lsnrctl status服务列表的实例名称中。

    转载请注明原文地址: https://ju.6miu.com/read-1200270.html
    最新回复(0)