zoukankan      html  css  js  c++  java
  • Linux下Oracle client客户端安装

    -------------------------------------------------------------------------
    Oracle完整客户端安装文档
    -------------------------------------------------------------------------
    1、在某数据库服务器压缩oracle软件,假设$ORACLE_BASE=/opt/oracle/app/oracle/
    # tar czvf /opt/oracle/app/Oracle_client.tar.gz /opt/oracle/app/oracle
    # chmod 777 /tmp/Oracle_client.tar.gz
    2、在需要安装oracle客户端上的主机上操作
    1)从Oracle服务器上拷贝oracle打包软件
    $ scp oracle@dbServerIP:/opt/oracle/app/Oracle_client.tar.gz /opt/oracle
    $ cd /opt/oracle;tar xzvf Oracle_client.tar.gz
    2)配置环境变量
    vi /home/oracle/.profile
    export ORACLE_BASE=/opt/oracle/oracle
    export ORACLE_HOME=/opt/oracle/oracle/product/11.2.0/db_1
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib:${LD_LIBRARY_PATH}
    export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH:/usr/local/bin
    export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
    source ~/.profile
    3)配置tnsnames.ora
    --$ORACLE_HOME/network/admin/tnsnames.ora
    testRAC =
    (DESCRIPTION =
    (FAILOVER = ON)
    (LOAD_BALANCE = yes)
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.72.10)(PORT = 1521))
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.72.11)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = racdb)
    )
    )
    4)测试
    tnsping AEPFDB
    sqlplus /nolog  --如果命令执行但无任何输出,可能为环境变量配置错误。
    conn system/xxxx@testRAC
    select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME from gv$instance;

    注:如果sqlplus 连接报错“ORA-21561: OID generation failed”,则是因为/ect/hosts配置错误,或者是/etc/hosts配置文件与hostname不一致,或者是/etc/hosts中文件没有配置(192.168.230.89  NDT),或者没有配置(127.0.0.1       localhost)。

    -------------------------------------------------------------------------
    Oracle client客户端简易安装文档一
    -------------------------------------------------------------------------
    一、下载软件包(http://www.oracle.com/technology/tech/oci/instantclient/index.html)
    instantclient-basic-linux.x64-11.2.0.4.0.zip
    instantclient-sdk-linux.x64-11.2.0.4.0.zip
    instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

    二、安装部署过程:
    1、添加oracle用户
    # groupadd oinstall
    # useradd -m -g oinstall oracle
    # echo 'Test@2017' | passwd --stdin oracle
    2、创建oracle目录
    # mkdir -p /opt/oracle
    # chown -R oracle:oinstall /opt/oracle
    # chmod -R 775 /opt/oracle
    3、解压
    # su - oracle
    ---scp -r oracle@192.168.223.52:/opt/oracle/instantclient*.zip /opt/oracle
    $ cd /opt/oracle
    unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
    unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
    unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip
    4、设置环境变量
    export ORACLE_HOME=/opt/oracle/instantclient_11_2
    export LD_LIBRARY_PATH=$ORACLE_HOME:${LD_LIBRARY_PATH}
    export PATH=$ORACLE_HOME:$PATH
    export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
    5、tnsnames.ora配置:
    mkdir -p /opt/oracle/instantclient_11_2/network/admin
    cd /opt/oracle/instantclient_11_2/network/admin
    cat > tnsnames.ora << EOF
    testdb =
    (DESCRIPTION =
    (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.78.17)(PORT = 1521))
    )
    (CONNECT_DATA =
    (SERVICE_NAME = TESTDB)
    (INSTANCE_NAME = testdb1)
    )
    )
    EOF

    6、测试
    sqlplus system/xxx@testdb


    -------------------------------------------------------------------------
    Oracle client客户端简易安装安装文档二
    -------------------------------------------------------------------------
    一、从OTN下载oracle客户端安装软件的压缩包:http://www.oracle.com/technology/tech/oci/instantclient/index.html,根据平台与版本下载
    oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip:基本包,提供了OCI,OCCI和JDBC-OCI应用程序的支持
    oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip:附加的头文件和makefile文件,部分需要编译的模板需要,比如编译php的oci8,和python 的cx_Oracle
    oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.zip:可选安装,测试,管理等
    二、安装部署过程:
    1、建立oracle用户和组:
    # groupadd oinstall
    # useradd -m -g oinstall oracle
    # echo 'HwOc@2015' | passwd --stdin oracle
    2、建立一个Oracle 基本目录
    # mkdir -p /opt/oracle
    # chown -R oracle:oinstall /opt/oracle
    # chmod -R 775 /opt/oracle
    3、将压缩包解压到对应的目录
    # su - oracle
    $ cd /opt/oracle
    $ unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip
    $ unzip oracle-instantclient11.2-sdk-11.2.0.1.0-1.x86_64.zip
    $ unzip oracle-instantclient11.2-sqlplus-11.2.0.1.0-1.x86_64.zip
    4、设置 ORACLE_HOME和LD_LIBRARY_PATH环境变量,配置TNS_ADMIN变量
    注:如果使用sqlplus的话,也设置下PATH环境变量
    export ORACLE_HOME=/opt/oracle
    export LD_LIBRARY_PATH=/opt/oracle/lib
    LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
    export PATH=$ORACLE_HOME/lib:$PATH
    #export TNS_ADMIN=$ORACLE_HOME/network/admin
    #export SQLPATH=/opt/oracle
    #export NLS_LANG=american_america.utf8
    #export NLS_LANG='simplified chinese_china'.ZHS16GBK
    #export NLS_LANG=american_america.ZHS16GBK
    export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
    5、tnsnames.ora配置:
    test =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = *SID*)
    )
    )
    6、sqlplus连接数据库:
    sqlplus user/passwd@IP/SID或sqlplus user/passwd@test
    注:如果出现:sqlplus: error while loading shared libraries: /usr/local/oracle/libnnz11.so: cannot restore segment prot after reloc: Permission denied
    最简单的解决方法莫过于将SElinux设置位PERMISSIVE状态:
    # getenforce --Enforcing
    # setenforce 0
    # getenforce --Permissive
    # sqlplus user/passwd@test
    7、测试eams项目数据库访问组件dboci(对oci的c++封装)
    先建立一个libclntsh.so.11.1的链接:
    [oracle@localhost oracle]# ln -s libclntsh.so.11.1 libclntsh.so
    #include "dboci.h"
    #include <iostream>
    int main(void)
    {
    CDbOci oci;
    int iret = oci.Open("xfdb", "xfdb", "HBDB");
    if (iret < 1)
    return 0; //
    char*** result = NULL;
    int num = oci.Query("select sysdate from dual", &result, 1);
    if (num > 0)
    {
    for (int i=0; i < num; i++)
    {
    std::cout <<result[i][0] <<std::endl;
    }
    oci.FreeExecSqlBuf(&result, num, 1);
    }
    oci.Close();
    return 1;
    }

    scons脚本:
    env = Environment()
    env.Append(CCFLAGS='-g')
    src_files = Split('DBconnect.cpp ../dboci/source/dboci.cpp')
    include = Split('/usr/local/oracle/sdk/include ../dboci/include')
    lib_path = Split('/usr/local/oracle')
    lib_files = Split('clntsh nnz11')
    env.Program(target='dbconnect',source = src_files, LIBS=lib_files, LIBPATH=lib_path,CPPPATH=include)
    -------------------------------------------------------------------------
    Oracle client客户端简易安装网上文档三
    -------------------------------------------------------------------------
    一、rpm格式包安装配置
    1、下载以rpm后缀名的包,以11.2.0.4.0 版本为例,其中基础包basic、sql*plus、devel包建议默认下载,其他包视情况而定:
    oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm --基础包,为了运行OCI、OCCI、JDBC-OCI 这几个应用程序;
    oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm --补充包/文件,是为了运行sql*plus的即时客户端;
    oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm --补充包/文件,为运行ODBC环境附加库;
    oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm --补充JDBC下的XA、国际标准、行集操作;
    oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm --包含头文件和示例文件,为开发Oracle应用程序的即时客户端;
    2、使用rpm -ivh [包名] 进行安装,
    如:rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
    安装的文件默认放在两个位置:
    头文件:/usr/include/oracle/11.2/client64/ 下,如果在使用时报错找不到头文件,记得看路径是否是这个。
    包文件:/usr/lib/oracle/11.2/client64/ 下,包含{bin、lib}两个文件夹;
    3、创建文件夹: #mkdir -p /usr/lib/oracle/11.2/client64/network/admin/
    4、创建监听文件,并添加内容 #vim /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora
    TEST =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = *IP*)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = *SID*)
    )
    )
    5、配置环境变量 #vim ~/.bashrc --根目录下为全局使用,为限制用户权限,可只修改某一用户的环境变量
    export ORACLE_HOME=/usr/lib/oracle/11.2/client64
    export TNS_ADMIN=$ORACLE_HOME/network/admin
    export NLS_LANG='simplified chinese_china'.ZHS16GBK
    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export PATH=$ORACLE_HOME/bin:$PATH
    6、使配置完的环境变量生效 #source ~/.bashrc
    7、连接数据库测试
    #sqlplus username/passwd@TEST

    二、zip格式包安装配置(只以basic包做为示例)
    1、下载包:oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip
    2、将包文件解压到指定目录下:
    #unzip oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.zip
    解压后的文件存放路径可以自行设定,但是与后面环境变量设定有关,本文设定/home/orcl/ 下。
    头文件目录:/home/orcl/sdk/include/
    库文件目录:/home/orcl/instantclient_11_2/
    3、创建 network/admin/ 目录:mkdir -p /home/orcl/instantclient_11_2/network/admin/
    4、创建监听文件 tnsnames.ora
    #vim /home/orcl/instantclient_11_2/network/admin/tnsnames.ora
    ORCL =
    (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.232.131)(PORT = 1521))
    (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = orcl)
    )
    )
    5、配置环境变量 #vim ~/.bashrc
    export ORACLE_HOME=/home/orcl/instantclient_11_2
    export TNS_ADMIN=$ORACLE_HOME/network/adminexport
    export NLS_LANG='simplified chinese_china'.ZHS16GBKexport
    export LD_LIBRARY_PATH=$ORACLE_HOME
    export PATH=$ORACLE_HOME:$PATH
    6、配置完成后,将环境变量生效 #source ~/.bashrc
    7、测试连接

  • 相关阅读:
    Hbase架构与原理(转)
    Hbase的表结构中rowkey的设计---避免热点问题
    mysql之my.cnf详解
    MongoDB CPU利用率很高,怎么破(转)
    数据库设计(2/9):域,约束和默认值(Domains, Constraints and Defaults)
    数据库设计(1/9):数据元(Data Elements)
    SQL Server安全(11/11):审核(Auditing)
    VARCHAR列上的索引
    SQL Server 2016里的sys.dm_exec_input_buffer
    在SQL Server里禁用聚集索引——真的好么?
  • 原文地址:https://www.cnblogs.com/zfox2017/p/6625918.html
Copyright © 2011-2022 走看看