windows下如何访问linux下的oracle数据库

windows下如何访问linux下的oracle数据库

我们从上面可以看出:

  需要

    1.oracle client客户端(这儿使用,oracle instance client ,简单)

    2.odbc驱动   oracle instance client默认就有

    3.linux下需要安装Linux oracle 服务器

    4.两个配置文件tnsnames.ora,listener.ora

      tnsnames.ora  ====》客户端连接服务器配置文件

       listener.ora   ===》服务器侦听服务配置

linux  oracle服务器 listener.ora:       

[oracle@localhost admin]$ pwd
/home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin

  首先安装Linux 下的oracle,可以看这个https://www.cnblogs.com/bwbfight/p/9621218.html

安装好后Linux 下需要做的事 

  1 oracle虚拟机需要固定IP,才能被外面的客户端连接上来

           Root登陆linux机器

      系统/首选项/网络连接

        重启系统

  2  oracle用户启动oracle服务器

  3 在linux环境中,用sqlplus工具访问oracle服务

    在oracle用户下,用sqlplus访问oracle服务 

      必须用scott/aa @orcl这种形成访问成功,则后台服务器程序才能访问成功

    在非oracle用户下(比如在test03),用sqlplus访问oracle服务

      必须用scott/aa@orcl这种形成访问成功,则后台服务器程序才能访问成功

       chmod 777   /home/oracle_11/app   -R       (root用户) 修改oracle家目录权限

       同时配置.bash_profile       

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi

# User specific environment and startup programs

umask 022 
ORACLE_BASE=/home/oracle_11/app
ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/db_1
ORACLE_SID=orcl
PATH=$PATH:./:$HOME/bin:$ORACLE_HOME/bin
LD_LIBRARY_PATH=./lib:$HOME/lib:/usr/lib:$ORACLE_HOME/lib 
#LANG=C 
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH 

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK; export NLS_LANG

根据自己环境修改

 ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH

4 在win环境中,用sqlplus工具访问linux环境下的oracle服务( 192.168.43.252为linux服务器ip)

       1 Ping 192.168.43.252

  2 telnet 192.168.43.252 1521  防火墙没有把端口给封住

      //防火墙 linux服务器 1521 端口 放开

 linux下: ufw disable

接着Linux开启oracle服务并监听:

  1. 启动oracle服务 (启动oracle服务器 必须使用oracle用户)-

启动oracle服务 (启动oracle服务器 必须使用oracle用户)-
            [oracle@localhost ~]$ sqlplus /nolog
            
            SQL> connect /as sysdba
              Connected to an idle instance.
            SQL> startup             
              ORACLE instance started.
            
              Total System Global Area  780824576 bytes
              Fixed Size                  2217424 bytes
              Variable Size             599788080 bytes
              Database Buffers          176160768 bytes
              Redo Buffers                2658304 bytes
              Database mounted.
              Database opened.

  2.启动监听服务器 

[oracle@localhost ~]$ lsnrctl start
            
            LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-JAN-2016 06:12:24
            
            Copyright (c) 1991, 2009, Oracle.  All rights reserved.
            
            Starting /home/oracle_11/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...
            
            TNSLSNR for Linux: Version 11.2.0.1.0 - Production
            System parameter file is /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
            Log messages written to /home/oracle_11/app/diag/tnslsnr/localhost/listener/alert/log.xml
            Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
            Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
            
            Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

注意:

 

ok... Linux下的事情干完了,

接着windows下接着干活

   1. oracle instance client 安装:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位还是64位,不然不工作了) 

   2.解压后放到固定目录:

      我的是放到e盘:E:oracle_clientinstantclient_18_3

windows下如何访问linux下的oracle数据库

配置

  Win机器的tnsnames.ora,新建tnsnames.ora放到E:oracle_clientinstantclient_18_3下

内容如下

# tnsnames.ora Network Configuration File: E:oracle_clientinstantclient_18_3
SECMNGADEMIN =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.253)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )

HOST:服务器IP地址 
PORT:oracle端口号 
SERVICE_NAME:oracle数据库上的实例名称(安装时如果没有指定一般为orcl)

配置windows环境变量

    TNS_ADMIN =E:oracle_clientinstantclient_18_3

    NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    说明:TNS_ADMIN,是指tnsnames.ora文件所在的目录名。

      如果指定到客户端目录,则必须把tnsnames.ora文件复制过来才可以

     设置ORACLE_HOME环境变量

    ORACLE_HOME=E:oracle_clientinstantclient_18_3

    Path后面加一个;E:oracle_clientinstantclient_18_3

在windows  cmd测试

    sqlplus scott/tiger@orcl (tiger为密码),如果能够执行,说明配置正确

可能会报错

oracle的12154错误排查

分别在linux 下和windows下输入:sqlplus scott/aa@orcl

    1  .linux 下用test03(其他用户)不能访问oracle问题排查

    2.     windows下cmd访问出现如下

  ERROR:

    ORA-12154: TNS:could not resolve the connect identifier specified

    ORA-12154 11.2.0.1.0 ORA-12154

2 解决方法

[oracle@localhost admin]$ pwd

    /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin

[oracle@localhost admin]$ ls

看看

   listener.ora   ===》服务器侦听服务配置

  shrept.lst          

  tnsnames.ora  ====》客户端连接服务器配置文件     wbm01客户使用这个文件连接服务

              要保证wbm01用户能访问这个目录:ADR_BASE = /home/oracle_11/app

3 解决步骤

====> 然后切换用户

[wbm01@localhost app]$ cd /home/oracle_11/app

[wbm01@localhost app]$ pwd

  /home/oracle_11/app

[wbm01@localhost app]$ ls

  admin  cfgtoollogs  checkpoints  diag  flash_recovery_area  oracle  oradata  oradiag_oracle

[wbm01@localhost app]$ cd admin/

    -bash: cd: admin/: 权限不够

解决如下:

root用

       chomd 775 /home/oracle_11/app (家目录)

windows下继续

然后配置plsql或者navicat

我用的navicat,工具-》选项

  windows下如何访问linux下的oracle数据库

然后就可以连接数据库了

windows下如何访问linux下的oracle数据库

ok...成功

现在来配置 oracle  odbc

  oracle instance client   里面 安装路径E:oracle_clientinstantclient_18_3默认就有

    windows下如何访问linux下的oracle数据库

如果没有请下载 1. oracle instance client 安装:https://www.oracle.com/technetwork/cn/database/features/instant-client/index-092699-zhs.html(注意是32位还是64位,不然不工作了) 

  windows下如何访问linux下的oracle数据库

 就可以了!

一定要分请你是32位还是64位,如果不行请自行换成相应位数(win7 32/64都支持)

 如果你是64位系统这个数据源ODBC
    需要运行C:WindowsSysWOW64文件夹下的

或者控制面板-》管理工具-》数据源odbc-》添加

windows下如何访问linux下的oracle数据库

Data Source Name ,descript随便写

TNS service name:需要和tnsnames.ora配置的名字一样

userid:数据库名字(如scott等)

点击 test connection ,弹出成功连接即可!

ok........

搞定,bye 了个bye.... 忒麻烦了.....windows下如何访问linux下的oracle数据库