Oracle 自動化運維-Python連線Oracle
Oracle 自動化運維-Python連線Oracle
一:安裝Python 3.6
二: 安裝cx_Oracle模組
三:使用cx_Oracle連線Oracle(基礎篇)
參考:http://www.zhaibibei.cn/python1/1.1/
一:安裝Python 3.6
環境設定
Linux:Centos 6.7
Python:Python 3.6
DB:Oracle 19C
新增oracle使用者
名字可隨便取,指令碼都放該使用者下
[root@jumplinux01 ~]# useradd oracle
[root@jumplinux01 ~]# passwd oracle
新建安裝目錄
[root@jumplinux01 ~]# su - oracle
[oracle@jumplinux01 ~]$ mkdir softwore
[oracle@jumplinux01 ~]$ cd softwore/
[oracle@jumplinux01 softwore]$
安裝Python3.6
1.由於系統安裝完成後Python的版本為2.6,需先升級至3.6
[oracle@jumplinux01 softwore]$ python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
下載安裝檔案並解壓
[oracle@jumplinux01 softwore]$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
[oracle@jumplinux01 softwore]$ ll -rth
total 22M
-rw-rw-r-- 1 oracle oracle 22M Mar 21 2017 Python-3.6.1.tgz
[oracle@jumplinux01 softwore]$ tar -zxvf Python-3.6.1.tgz
[oracle@jumplinux01 softwore]$ cd Python-3.6.1
建立Python安裝目錄
[root@jumplinux01 ~]#mkdir /usr/local/python36
[root@jumplinux01 ~]# chown oracle.oracle /usr/local/python36 -R
[root@jumplinux01 ~]# su - oracle
[oracle@jumplinux01 ~]$ cd softwore/Python-3.6.1
[oracle@jumplinux01 Python-3.6.1]$ ./configure --prefix=/usr/local/python36
[oracle@jumplinux01 Python-3.6.1]$ make
[oracle@jumplinux01 Python-3.6.1]$ make install
修改連結
[root@jumplinux01 ~]# mv /usr/bin/python /usr/bin/python_old
[root@jumplinux01 ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python
[root@jumplinux01 ~]# su - oracle
驗證是否安裝成功
[oracle@jumplinux01 ~]$ python
Python 3.6.1 (default, Mar 16 2020, 21:33:03)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
yum問題處理
升級完之後yum會無法使用 這時需要修改yum可執行檔案檔案
問題:
[root@jumplinux01 ~]# yum list
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
處理:
[root@jumplinux01 ~]# vim /usr/bin/yum
#!/usr/bin/python2.6
[root@jumplinux01 ~]# yum list
Loaded plugins: fastestmirror
Determining fastest mirrors
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
...
二:cx_Oracle模組的安裝
這節包含 oracle客戶端的安裝和cx_Oracle模組的安裝兩部分
環境設定
Linux系統為 Centos 6.7
Python環境為 Python 3.6
Oracle 模組:cx_Oracle
Oracle客戶端:Oracle 12c Instant Client
1. 安裝Oracle 12c Instant Client
由於這次我們使用Python連線Oracle,所以需要oracle客戶端,這裡我們使用Oracle 12c Instant Client
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
[root@jumplinux01 ~]# chown oracle.oracle /home/oracle/softwore -R
[root@jumplinux01 ~]# ll -rth /home/oracle/softwore/
total 73M
-rw-rw-r-- 1 oracle oracle 22M Mar 21 2017 Python-3.6.1.tgz
drwxr-xr-x 18 oracle oracle 4.0K Mar 16 21:34 Python-3.6.1
-rw-r--r-- 1 oracle oracle 593K Mar 16 22:15 oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
-rw-r--r-- 1 oracle oracle 51M Mar 16 22:15 oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
1.1安裝Oracle客戶端(root使用者)
[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
[root@jumplinux01 softwore]# rpm -ivh oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
1.2新增ORACLE_HOME使用者環境變數(root使用者)
[root@jumplinux01 softwore]# vi ~/.bash_profile
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export LD_LIBRARY_PATH=/usr/lib/oracle/12.2/client64/lib
[root@jumplinux01 softwore]# source ~/.bash_profile
2.下載cx_Oracle模組
專門用於連線Oracle資料的一個模組
https://pypi.org/project/cx-Oracle/5.2.1/#downloads
[root@jumplinux01 softwore]# ll -rth cx_Oracle-5.2.1.tar.gz
-rw-r--r-- 1 oracle oracle 111K Mar 16 22:23 cx_Oracle-5.2.1.tar.gz
3.安裝cx_Oracle模組(root使用者)
[oracle@jumplinux01 softwore]$ tar -zxvf cx_Oracle-5.2.1.tar.gz
[oracle@jumplinux01 softwore]$ cd cx_Oracle-5.2.1
[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py build
[oracle@jumplinux01 cx_Oracle-5.2.1]$ python setup.py install
...
Installed /usr/local/python36/lib/python3.6/site-packages/cx_Oracle-5.2.1-py3.6-linux-x86_64.egg
Processing dependencies for cx-Oracle==5.2.1
Finished processing dependencies for cx-Oracle==5.2.1
驗證安裝
如import無錯誤則說明安裝成功
[oracle@jumplinux01 cx_Oracle-5.2.1]$ python
Python 3.6.1 (default, Mar 16 2020, 21:33:03)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-23)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>>
三:使用cx_Oracle連線Oracle(基礎篇)
[oracle@jumplinux01 softwore]$ vi connectoracle.py
#!/usr/bin/python
#coding=utf8
#匯入cx_Oracle模組
import cx_Oracle
#建立到Oracle資料庫的連線並賦給變數
db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')
#建立遊標並賦給變數cursor
cursor=db.cursor()
#執行Oracle SQL語句
cursor.execute('select sysdate from dual')
#獲取執行結果並賦給變數data
#這裡fetchone表示獲取一行,fetchall為獲取所有行
#fetchone返回的是一個字串
#fetchall返回的是一個列表,哪怕結果只有一行
data=cursor.fetchone()
#列印結果
print ('Database time: %s ' %data)
#關閉資料庫連線
cursor.close()
db.close()
執行結果:
錯誤:
[root@jumplinux01 ~]# su - oracle
[oracle@jumplinux01 ~]$ cd softwore/
[oracle@jumplinux01 softwore]$ python connectoracle.py
Traceback (most recent call last):
File "connectoracle.py", line 8, in <module>
db=cx_Oracle.connect('cjc/cjc@192.168.2.222:1521/cjcpdb01')
cx_Oracle.DatabaseError: ORA-24454: client host name is not set
解決方案:新增hosts
[root@jumplinux01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.2.221 jumplinux01
192.168.2.222 cjcos
再次執行結果:
[oracle@jumplinux01 softwore]$ python connectoracle.py
Database time: 2020-03-16 22:35:17
歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2680758/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 自動化運維-Python監控Oracle告警日誌Oracle運維Python
- Oracle 自動化運維-Python表空間郵件預警Oracle運維Python
- 3.2.2 python連線oraclePythonOracle
- Python 連線 Oracle資料庫PythonOracle資料庫
- IT運維之自動化運維運維
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- cx_Oracle 連線 OracleOracle
- python連線Oracle的外掛cx_Oracle安裝PythonOracle
- Python自動化運維之IPy模組Python運維
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- Servlet連線OracleServletOracle
- PHP 連線 OraclePHPOracle
- thinkphp連線OraclePHPOracle
- PHP 連線oraclePHPOracle
- CrazyWing:Python自動化運維開發實戰 十七、PythonPython運維
- 【python介面自動化】- PyMySQL資料連線PythonMySql
- Oracle DG運維常用SQLOracle運維SQL
- Oracle 常用運維命令整理Oracle運維
- Ansible自動化運維工具運維
- 簡單介紹python自動化運維常用庫Python運維
- oracle 連線查詢Oracle
- DBA ORACLE連線操作Oracle
- [Oracle-> MySQL] Oracle通過dblink連線MySQL--Oracle 19c連線到MySQL 5.7OracleMySql
- python使用cx_Oracle連線oracle資料庫獲取常用資訊PythonOracle資料庫
- ansible自動化運維入門運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- Oracle連線Db2OracleDB2
- python連線釘釘自動化提交OA審批Python
- ORACLE OGG運維及日常監控Oracle運維
- Python+Django+ansible playbook自動化運維專案實戰PythonDjango運維
- 《Python自動化運維快速入門(第2版)》簡介Python運維
- Oracle RAC自啟動Oracle
- 自動化運維工具Ansible介紹運維
- 分層運維自動化監控運維
- 自動化運維的快速演進運維
- ansible自動化運維資料庫運維資料庫
- ORACLE 11G 維護視窗和自動維護任務Oracle
- 指標是構築自動化運維與智慧化運維的基石指標運維