1.安装cx_Oracle

a.官网下载客户端组件包

oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm

b.使用rpm命令安装上面给的三个包

rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
rpm -ivh oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm

c.配置系统环境变量

vi ~/.bash_profile
添加:
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib/:$LD_LIBRARY_PATH

source ~/.bash_profile ##生效

vi /etc/ld.so.conf.d/oracle.conf
添加:
/usr/lib/oracle/12.2/client64/lib/
执行ldconfig ##生效

vi /etc/profile.d/oracle.sh
添加:
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export PATH=$PATH:$ORACLE_HOME/bin
export PATH=$PATH:$ORACLE_HOME/lib

chmod +x /etc/profile.d/oracle.sh
/etc/profile.d/oracle.sh ##生效

ln -s /usr/include/oracle/12.2/client64 $ORACLE_HOME/include
ln -s /usr/lib/oracle/12.2/client64/lib/libclntsh.so.12.1 libclntsh.so.11.1 ##否则安装cx_Oracle会报错

检查环境是否配置完成:ls $ORACLE_HOME

d.下载cx_Oracle-5.1.2.tar.gz

tar -xzvf cx_Oracle-5.1.2.tar.gz
cd cx_Oracle-5.1.2
python setup.py install

e.验证

[root@lepus lepus]# python
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>>

2.登录被监控数据库创建监控账号

create user lepus_monitor identified by "root123";
grant connect,resource to lepus_monitor;
grant select on v_$parameter to lepus_monitor ;
grant select on v_$sysstat to lepus_monitor ;
grant select on v_$instance to lepus_monitor ;
grant select on v_$database to lepus_monitor ;
grant select on product_component_version to lepus_monitor ;
grant select on v_$session to lepus_monitor ;
grant select on v_$dataguard_stats to lepus_monitor ;
grant select on dba_data_files to lepus_monitor ;
grant select on dba_free_space to lepus_monitor ;

3.Lepus oracle驱动验证

[root@lepus lepus]# python test_driver_oracle.py
Oracle python drivier is ok!

4.登录监控平台,新建Oracle监控

5.监控平台执行验证

[root@lepus lepus]# python check_oracle.py
2018-11-26 13:34:15 [INFO] check oracle controller start.
2018-11-26 13:34:16 [INFO] check oracle controller finished.
[root@lepus lepus]#

附上python连接Oracle测试脚本

方法一:
import cx_Oracle
dsn_tnsstr = cx_Oracle.makedsn('10.1.21.31','1521', 'pdb1')
#dsn_tns = dsn_tnsstr.replace('SID', 'SERVICE_NAME')
username="lepus_monitor"
userpwd="root123"
conn = cx_Oracle.connect(username,userpwd,dsn_tns)
sql="select FILE_NAME,TABLESPACE_NAME from dba_data_files"
curs = conn.cursor()
result = curs.execute(sql)
g = lambda k:"%-8s" % k
i=1
for row in result.fetchmany(2):
print str(i)+'\t',
for k in map(g,row):
print k+'\t',
print
i+=1
curs.close() 方法二:
import cx_Oracle
host="10.1.21.31"
port="1521"
dsn="pdb1"
url=host+':'+port+'/'+dsn
#dsn_tnsstr = cx_Oracle.makedsn('10.1.21.31','1521', 'pdb1')
#dsn_tns = dsn_tnsstr.replace('SID', 'SERVICE_NAME')
username="lepus_monitor"
userpwd="root123"
#conn = cx_Oracle.connect(username,userpwd,dsn_tns)
conn=cx_Oracle.connect(username,userpwd,url)
sql="select FILE_NAME,TABLESPACE_NAME from dba_data_files"
curs = conn.cursor()
result = curs.execute(sql)
g = lambda k:"%-8s" % k
i=1
for row in result.fetchmany(2):
print str(i)+'\t',
for k in map(g,row):
print k+'\t',
print
i+=1
curs.close()
quit()

Lepus监控之Oracle配置的更多相关文章

  1. Lepus监控之SQLServer配置(后续整理)

    1.安装pymssql模块 1-1.环境准备: 1-1-1.unixODBC安装 yum install unixODBC unixODBC-devel -y 1-1-2.freetds安装下载 fr ...

  2. Lepus监控之安装部署

    PHP和Python都是跨平台的语言,所以理论上系统应该可以支持在不同的平台上运行.但是由于时间和精力以及资源有限,目前天兔系统只测试完善了Centos/RedHat系统的支持.我们目前提供的技术支持 ...

  3. Oracle配置tcps加密协议

    1.Oracle用户下操作,创建证书 mkdir /home/oracle/wallet orapki wallet create -wallet "/home/oracle/wallet& ...

  4. Tools下的mdscongiguer 文件中 43行 oracle 配置 发现需要连接库 -lclntsh libclntsh.so 库是个什么东西呢?

    Tools下的mdscongiguer     文件中 43行  oracle 配置      发现需要连接库 -lclntsh      libclntsh.so 库是个什么东西呢? 分想一个知乎网 ...

  5. ORACLE配置tnsnames.ora文件实例

    ORACLE配置tnsnames.ora文件实例客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames. ...

  6. ganglia监控hadoop2.0配置方法

    ganglia监控hadoop2.0配置方法前提:hadoop2.0集群已安装ganglia监控工具第一步:Hadoop用户登录集群每一个节点,修改文件:vi /opt/hadoop-2.0.0-cd ...

  7. oracle 配置服务端

    oracle 配置服务端,类似我们配置java环境一样 防止乱码的配置: 变量名:NLS_LANG 变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK 选择数据库的配置(重要) ...

  8. oracle 配置 自启动 和 关闭

    今天在看oracle自启动脚本,突然有点时间,总结一下!!! 第一次写博客,大家随便看看就好,有错误麻烦提醒下,不喜欢别喷,主要是锻炼自己,形成写博客的好习惯. 刚毕业,现在还没转正,在干运维和自学d ...

  9. ORACLE 配置连接远程数据库

    ORACLE配置tnsnames.ora文件实例 客户机为了和服务器连接,必须先和服务器上的监听进程联络.ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息.一般tnsnames ...

随机推荐

  1. Vue.js 3.0 新特性预览

    总结起来,Vue 3 以下方面值得我们期待 : 更快 更小 更易于维护 更多的原生支持 更易于开发使用 完整的PPT:docs.google.com/presentatio… Evan 和 Vue 团 ...

  2. Docker部署Django项目+Nginx+Fluend日志收集 和redis、memcached、RabbitMQ、Celery

    前言 一.docker 1.docker是什么? Docker的英文本意是“搬运工”,Docker搬运的是集装箱(Container)可以成为容器,我可以把写的Django的WEB应用以及Python ...

  3. day32-python阶段性复习六

    面向对象编程的一种方法一些皆对象面向过程和面向对象编程面向过程编程:函数式编程.c等面向对象编程:c++ ,java,python等看具体问题用哪种方法 类和对象:是面向对象中的两个重要的概念类:是对 ...

  4. day71 菜单的排序 点击被选中

    菜单的排序:(给菜单设置权重,权重高的让他显示在上面) from django import template from django.conf import settings from collec ...

  5. Java容器解析系列(5) AbstractSequentialList LinkedList 详解

    AbstractSequentialList为顺序访问的list提供了一个骨架实现,使实现顺序访问的list变得简单; 我们来看源码: /** AbstractSequentialList 继承自 A ...

  6. HDU1171将多个不同价值不同数量的器材尽可能按等价值均分 第一份的价值尽可能的大 所以sum/2对第二份进行01背包 使其价值尽可能的大

    //hdu1171void solve(){ for(int i=1;i<=n;i++) { for(int j=W;j>=w[i];j--) { dp[j]=max(dp[j],dp[j ...

  7. traceroute命令初探

    一.学习目标 了解traceroute基本概念 了解traceroute工作原理及详细过程 熟悉traceroute常用命令 一些注意点 二.traceroute基本概念 traceroute (Wi ...

  8. 无法对含有多个.java(或.class)文档的程序进行编译(或解释)

    通常初学者会出现这样的问题:无法对含有多个.java(或.class)文档的程序进行编译(或解释). root@yogile-VirtualBox:/alive/string# javac work/ ...

  9. dos语法

    一)MD——建立子目录 1.功能:创建新的子目录 2.类型:内部命令 3.格式:MD[盘符:][路径名]〈子目录名〉 4.使用说明: (1)“盘符”:指定要建立子目录的磁盘驱动器字母,若省略,则为当前 ...

  10. c#的默认访问权限

    1.命名空间下的元素的默认访问修饰符 public : 同一程序集的其他任何代码或引用该程序集的其他程序集都可以访问该类型或成员. internal : 同一程序集中的任何代码都可以访问该类型或成员, ...