python语言linux操做系统oracle环境安装

金句:若是没把握,最好先Google一下。html

 

一、严格按照 https://oracle.github.io/odpi/doc/installation.html#linux 教程一步步作node

包括下载的软件的版本,安装的位置,都按照要求准确实施python

过程当中要求安装 libaio ,原本是使用yum方式便可linux

可是采起各类方法git

(1)用系统自带的yumgithub

提示:web

This system is not registered with RHN.sql

RHN support will be disabled.数据库

Setting up Install Processvim

缘由是这个linux版本并无花钱注册RHN服务,没办法直接从官方下载

(2)换软件源

yum软件源配置文件位置为

cd /etc/yum.repos.d/

公司版本的linux对应的配置文件名称是 rhel-debuginfo.repo

先用 mv rhel-debuginfo.repo rhel-debuginfo.repo_sysbak 命令 备份

而后下载、试用了各类yum源的配置文件,包括:

wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

等等

下载以后,都须要用 yum clean all  和 yum makecache 命令清除和生成一下本地缓存

 

 

可是,并无什么卵用,因而尝试下载文件离线安装:

地址:https://pkgs.org/download/libaio

下载的rpm版本,直接执行

rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm 

报错了:

warning: libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID f4a80eb5

error: Failed dependencies:

rpmlib(FileDigests) <= 4.6.0-1 is needed by libaio-0.3.109-13.el7.x86_64

rpmlib(PayloadIsXz) <= 5.2-1 is needed by libaio-0.3.109-13.el7.x86_64

缺乏依赖包

 

因而,根据https://blog.csdn.net/jinwufeiyang/article/details/52069498 教程的方法

执行,注意后面的两个参数是不检测依赖包和强制安装

rpm -ivh libaio-0.3.109-13.el7.x86_64.rpm --nodeps --force

结果以下:

warning: libaio-0.3.109-13.el7.x86_64.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID f4a80eb5

Preparing...                ########################################### [100%]

   1:libaio                 ########################################### [100%]

error: unpacking of archive failed: cpio: Bad magic

虽然最后仍是有报错,不过从后面验证来看,算是成功了

 

而后,执行程序进行验证

首先,须要到新安装的python虚拟环境的/bin目录下,执行 source activate 这个指令确实是须要source来执行的,不信能够vim activate文件看看,里面第一行写着呢。若是从此有相似的文件,均可以这么效仿一下。

执行成功以后

命令提示符前面会有个新的标记 (虚拟环境名称)

例如这样:(pyenv) [root@webreport2 pyenv]# 

这时候就能够执行 python3 spidey.py 了

 

此处插播,若是oracle客户端安装不正确的话,会报错:

执行命令:

(pyenv) [root@webreport2 oracle]# python3 /app/pyenv/spider.py 2018-09-04 2018-09-05

报错:

Traceback (most recent call last):

  File "/app/pyenv/spider.py", line 229, in <module>

    main(viewdate)

  File "/app/pyenv/spider.py", line 93, in main

    sqlresult = query('dw_user.t_ciitc_sign_dict')

  File "/app/pyenv/spider.py", line 50, in query

    conn = cx_Oracle.connect('dw_user/dw_user@10.1.65.118:1521/octopus_srv1')

cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "libclntsh.so: cannot open shared object file: No such file or directory". See https://oracle.github.io/odpi/doc/installation.html#linux for help

从字面意思来看,安装错误就是找不到对应的系统文件。

此处的缘由,是一开始按照网上的“野教程”实施的,另外考虑下载的客户端程序版本也不对,致使的问题。

后续严格执行 https://oracle.github.io/odpi/doc/installation.html#linux  的要求

再次执行命令:

(pyenv) [root@webreport2 pyenv]# python3 spider.py 2018-09-04 2018-09-05

报错:

Traceback (most recent call last):

  File "spider.py", line 229, in <module>

    main(viewdate)

  File "spider.py", line 93, in main

    sqlresult = query('dw_user.t_ciitc_sign_dict')

  File "spider.py", line 50, in query

    conn = cx_Oracle.connect('dw_user/dw_user@10.1.65.118:1521/octopus_srv1')

cx_Oracle.DatabaseError: ORA-24454: client host name is not set

这么看来,oracle客户端是正常工做了,能够反馈正确的oracle错误了。从错误来看,是主机名称配置不对。但程序里用的是ip地址。

网上找答案,参考的这篇 https://blog.csdn.net/cd_home/article/details/80309167

执行:

sudo /bin/bash -c "echo '127.0.1.1 ${HOSTNAME}' >> /etc/hosts"

 

再次执行命令,就正常了

 

(pyenv) [root@webreport2 pyenv]# python3 spider.py 2018-09-04 2018-09-05

共65家数据待导入

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安邦2018-09-04日数据导入完毕','2018-09-07 11:22:13')

安邦2018-09-04日数据导入完毕

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安诚2018-09-04日数据导入完毕','2018-09-07 11:22:35')

安诚2018-09-04日数据导入完毕

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安华2018-09-04日数据导入完毕','2018-09-07 11:22:48')

安华2018-09-04日数据导入完毕

insert into dw_user.T_CIITC_SIGN_LOG_AREA (C_CONTENT,T_INSERT_TM) values('安联2018-09-04日数据导入完毕','2018-09-07 11:22:53')

 

查看 配置文件 vim /etc/hosts

多了一行

127.0.1.1 webreport2

所以可见前面所提的主机名称配置不对,是运行程序的主机的名称没有被解析(不是数据库主机),这个彷佛和python程序有关。从此相似的报错也能够考虑这个方法

相关文章
相关标签/搜索