码迷,mamicode.com
首页 > 数据库 > 详细

Python源码安装cx_Oracle

时间:2017-09-16 01:17:59      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:2.0   安装   select   nes   cx_oracle   open   info   apr   set   

  最近线上有个数据表一个月竟然没有数据,都没有监控,老大让我做一个监控,让Python写脚本监控oracle数据是否正常。

一、涉及软件包

1、cx_Oracle

下载地址:http://sourceforge.net/projects/cx-oracle/files/?source=navbar

我下载的是最新版的cx_Oracle-5.1.2.tar.gz

2、Oracle_client

使用cx_Oracle必须要安装Oracle_client端,或者你已经安装了Oracle数据库

下载地址:http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html

oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm
oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm

软件包都下载完后,我们开始来安装。

 二、源码安装

1、Oracle_client端安装:

# rpm -ivh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-jdbc-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm  oracle-instantclient11.2-tools-11.2.0.4.0-1.x86_64.rpm
# echo /usr/lib/oracle/11.2/client64/lib/ >> /etc/ld.so.conf
# ldconfig

如果不进行ldconfig配置,在运行cx_Oracle时会报以下错误:

libclntsh.so.11.1: cannot open shared object file: No such file or directory

2、设置相应用户的环境变量:

在这里需要说明下,你使用哪个帐户装cx_Oracle就需要配置哪个帐户的环境变量,以下已root帐户为例;

如果不配置环境变量、或环境变量配置不正确,在安装cx_Oracle时,会报各种错误,比如说:

oci.h: No such file or directory
#vi ~/.bashrc
export TNS_ADMIN="/usr/lib/oracle"
export ORACLE_HOME="/usr/lib/oracle/11.2/client64"
export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ORACLE_HOME}/lib"
export PATH="${PATH}:${ORACLE_HOME}"
#source ~/.bashrc

3、源码安装

#tar -zxvf cx_Oracle-5.1.2.tar.gz
#cd cx_Oracle-5.1.2
#python setup.py install

4、安装成功后相应检查

[root@HAProxy01 Scripts]# python
Python 3.3.0 (default, Sep 14 2017, 14:53:20) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>>

三、脚本实例:

#!/usr/bin/python  
# -*- coding: UTF-8 -*-  

import cx_Oracle as db
import os
os.environ[NLS_LANG] = SIMPLIFIED CHINESE_CHINA.UTF8

def queryOracle(sql):
    username = "US_ORDER"      #用户名
    passwd = "******"          #用户密码
    host = "192.168.1.203"     #服务器IP
    port = "1521"              #oracle端口
    sid = "ORCL"               #oracle的
    dsn = db.makedsn(host, port, sid)
    con = db.connect(username, passwd, dsn)
    cur = con.cursor()
    cur.execute(sql)
    result  = cur.fetchall()
    cur.close()
    con.close()
    return result

if __name__=="__main__":
    sql = "select sysdate from dual"    #需要执行的SQL
    result = queryOracle(sql)
    print(result)

执行结果:

[root@HAProxy01 Scripts]# ./check_oracle_tables.py
[(datetime.datetime(2017, 9, 15, 12, 1, 51),)] 

 

Python源码安装cx_Oracle

标签:2.0   安装   select   nes   cx_oracle   open   info   apr   set   

原文地址:http://www.cnblogs.com/sheng-247/p/7529289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!