python cx_oracle 安装_Python源码安装cx_Oracle

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

【注意】要把原来的Python2.7 升级到Python3.3以上。不然会报错。

一、涉及软件包

1、cx_Oracle

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

2、Oracle_client

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

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 ordirectory#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)

[GCC4.8.5 20150623 (Red Hat 4.8.5-11)] on linux

Type"help", "copyright", "credits" or "license" formore information.>>> importcx_Oracle>>>

三、脚本实例:

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

importcx_Oracle as dbimportos

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

defqueryOracle(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()returnresultif __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),)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值