Database 如何从unix连接到oracle数据库

Database 如何从unix连接到oracle数据库,database,oracle,shell,unix,sqlplus,Database,Oracle,Shell,Unix,Sqlplus,我正在尝试从unix计算机连接到oracle数据库。一般来说,我对脚本写作还不熟悉。我知道如何浏览unix,编写了基本脚本(读取/显示)并使用bash命令执行它们。我还知道如何在unix中查看变量(用户和系统)。您能告诉我连接到oracle数据库需要做什么吗?我是否使用sqlplus命令?在此之前是否有任何变量需要设置?设置ORACLE\u HOME和ORACLE\u SID环境变量。 然后使用 sqlplususername@ORACLE_SID 您能告诉我连接到oracle数据库需要做什么吗

我正在尝试从unix计算机连接到oracle数据库。一般来说,我对脚本写作还不熟悉。我知道如何浏览unix,编写了基本脚本(读取/显示)并使用bash命令执行它们。我还知道如何在unix中查看变量(用户和系统)。您能告诉我连接到oracle数据库需要做什么吗?我是否使用sqlplus命令?在此之前是否有任何变量需要设置?

设置ORACLE\u HOME和ORACLE\u SID环境变量。 然后使用 sqlplususername@ORACLE_SID

您能告诉我连接到oracle数据库需要做什么吗?我是否使用sqlplus命令

当然,您需要使用SQL*Plus。然而,在此之前,您需要确保几件事:

  • 导出ORACLE_HOME变量
  • 比如说,

    export ORACLE_HOME=/u01/app/oracle/product/11.2.0
    
    export PATH=$PATH:$ORACLE_HOME/bin
    
  • 导出路径变量
  • 比如说,

    export ORACLE_HOME=/u01/app/oracle/product/11.2.0
    
    export PATH=$PATH:$ORACLE_HOME/bin
    
  • 导出SID
  • 比如说,

    export ORACLE_SID="your database service name"
    
  • 确保正确配置了
    tnsnames.ora
  • 确保
    侦听器已启动并正在运行,并且正在侦听正确的端口
  • 您应该能够通过以下方式连接到数据库:

    sqlplus username/password@sid
    

    确保已在unix用户路径环境中导出所有必要的Oracle变量,如下所示:

    ORACLE_BASE=/home/oracle/app; export ORACLE_BASE
    ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1/; export ORACLE_HOME
    ORACLE_SID=orcl; export ORACLE_SID
    PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH; export PATH
    
    并确保tnsnames.ora文件已正确配置,并且侦听器应按如下方式启动和运行

    [oracle@OLE1 admin]$ cat tnsnames.ora 
    # tnsnames.ora Network Configuration File: /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
    # Generated by Oracle configuration tools.
    
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = ole1)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    
    [oracle@OLE1 ~]$ tnsping orcl
    TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 12-JUL-2017 23:12:35
    Copyright (c) 1997, 2009, Oracle.  All rights reserved.
    
    Used parameter files:
    /home/oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/sqlnet.ora
    
    Used TNSNAMES adapter to resolve the alias
    Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ole1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
    OK (20 msec)
    [oracle@OLE1 ~]$ 
    
    [oracle@OLE1 ~]$ cat /etc/hosts
    127.0.0.1   localhost
    ::1         localhost
    192.168.244.128 ole1
    [oracle@OLE1 ~]$ 
    
    现在,您有了多种从unix命令提示符连接数据库的方法

    [oracle@OLE1~]$sqlplus斯科特/老虎

    [oracle@OLE1~]$sqlplus scott/tiger@orcl

    [oracle@OLE1~]$sqlplus scott/tiger@192.168.244.128:1521/orcl

    [oracle@OLE1~]$sqlplus scott/tiger@//192.168.244.128:1521/orcl

    [oracle@OLE1~]$sqlplus“scott/tiger@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ole1)(PORT=1521))(CONNECT\u DATA=(SERVER=专用)(SERVICE\u NAME=orcl))”


    sqlplus是最简单的方法,您需要确保$ORACLE_HOME已设置-其余答案将取决于您希望如何连接。不管怎样,您都需要连接信息—您知道数据库在哪里、侦听器在哪个端口上、db/服务的名称以及用户名/密码吗?当然,我知道主机/数据库架构/用户ID和密码。另外,我认为我需要按照本线程中其他用户的指示设置环境变量。谢谢,让我设置一下,刚刚发现我必须在我的机器上安装oracle。您需要在您的机器上安装oracle。如果不想使用远程数据库,则需要在tnsnames.ora文件中设置远程数据库条目。因此,必须在Unix服务器上安装oracle?(用于导出ORACLE_HOME)?您需要告诉我们您是连接到本地数据库服务器还是远程数据库服务器?我假设您已在当前登录的Unix计算机上安装了Oracle。我将进行远程连接,以及如何检查Unix计算机上是否安装了Oracle?只需执行
    哪个Oracle
    />哪个Oracle不在/usr/bin中。