Linux下DM7與Python的適配方法

2021-10-02 20:14:58 字數 3031 閱讀 2241

dmpython是dm提供的依據python db api version 2.0中api使用規定而開發的資料庫訪問介面。dmpython 實現這些api,使python應用程式能夠對dm資料庫進行訪問。

dmpytho通過呼叫dm dpi介面完成python模組擴充套件。在其使用過程中,除python標準庫以外,還需要dpi的執行環境。

本文就將給大家介紹如何在linux下使用dmpython介面來讓dm7適配python。

注:本文演示環境:

資料庫版本:dm database server x64v7.1.6.46-build(2018.02.08-89107)ent

作業系統版本:red hat enterprise linuxserver release 6.5

核心版本:2.6.32-431.el6.x86_64

解壓後做以下操作:

(1)./configure --prefix=/usr/lib/python2.7(這裡填寫自己的安裝目錄)。

(2)執行make命令操作 對原始碼進行編譯。

(3)執行make install 進行安裝。

如果沒有報錯,則代表 python2.7已經成功安裝。

在終端輸入python命令,會發現系統原有版本為2.6.6,並沒有使用我們部署的2.7版本。

可以使用which python命令檢視該python命令呼叫的是那個位置的python,一般情況下是在/usr/bin/python。

但是,這裡的python指向的是系統自帶的2.6版本,而我們安裝的python2.7的命令在/usr/lib/python2.7/bin(前邊的路徑要根據你的安裝路徑確定)。我們只需把/usr/bin/python 刪除掉:

rm

/usr/bin/python

然後做個軟連線

ln -s /usr/lib/python2.7/bin/python /usr/bin/python
再次在終端輸入python命令,已經為2.7版本。

dmpython可以執行在任何安裝了python的平台上。可以使用安裝包進行安裝,需要保證dpi和dmpython版本一致,都是32位或都是64位,另外選擇的rpm包的版本也要跟python版本一致。(py27對應2.7版本的python,py33對應3.3版本的python)

在linux平台成功部署dm7客戶端後,在dmdbms/python目錄下存在安裝dmpython的rpm安裝包dmpython-2.3-7.1-py27-1.x86_64.rpm

在 linux 作業系統下使用 rpm 包安裝 dmpython。安裝和解除安裝命令參考如下:

安裝: rpm -ivh dmpython-2.3-7.1-py27-1.x86_64.rpm --nodeps

解除安裝: rpm -e dmpython-2.3-1.x86_64

注意,使用rpm包安裝之後,需要檢測下python安裝目錄下lib/python2.7/site-packages/內有無dmpython.so檔案,如果沒有,則需要手動把/usr/local/lib/python2.7/site-packages下的dmpython.so檔案拷貝到python安裝目錄下的對應位置。

另外,也可以使用原始碼包進行安裝,操作如下:

方式一:如果已經部署dm7客戶端,則進行如下操作:

1、解壓dmpython.zip

unzip dmpython.zip
2、執行下面的命令:

cd dmpython

python setup.py install

方式二:如果沒有部署dm7客戶端,則進行如下操作:

1、解壓dmpython.zip

unzip dmpython.zip
2、執行下面的命令:

cd dmpython
4、將其他伺服器上部署的dm7客戶端的動態庫拷貝(從其他安裝過dm7的相同作業系統的機器上拷貝)到$dm_home目錄

5、將其他伺服器上部署的dm7客戶端的include目錄拷貝到$dm_home目錄下

6、設定環境變數

7.執行下面的命令

python setup.py install
dmpython 的執行需要使用 dpi 動態庫,使用者應將 dpi 所在目錄(一般為 dm 安裝目錄中的 bin 目錄)加入系統環境變數,將dmdbms\bin目錄新增到系統的環境變數中,如下:

5.連線dm7

$python

>>

>

import dmpython

>>

>conn=dmpython.connect(user=

'sysdba'

,password=

'sysdba'

,server=

'localhost'

,port=

5236

)

6.查詢測試

>>

> cursor = conn.cursor(

)>>

> cursor.execute(

'select 1 from dual'

)5236

>>

>>

> values = cursor.fetchall(

)>>

> values[(

'1',

)]

7.關閉連線和游標

>>

> cursor.close(

)>>

> conn.close(

)

以上就是linux下dm7適配python的基本方法,如果大家想對dmpython介面有更進一步的了解,可以參考dm7安裝目錄下doc/special中的《 dm7_dmpython文件》。

dm7審計設定

審計設定 審計開關由 dm 的 ini 引數 enable audit 控制 0 關閉審計 1 開啟普通審計 2 開啟普通審計和實時審計 檢視審計的值 select from v parameter where name enable audit 設定enable audit為1 sp set pa...

DM7統計資訊

一 什麼是統計資訊 統計資訊主要是描述資料庫中表 索引的大小 規模 資料分布狀況等的一類資訊。比如,表的行數 塊數 平均每行的大小 索引的leaf blocks 索引欄位的行數 不同值的大小等,都屬於統計資訊。cbo正是根據這些統計資訊資料,計算出不同訪問路徑 不同join 方式下,各種執行計畫的成...

linux下DM7服務啟動及初始化shell指令碼

啟動部分 bin sh echo 建立dmapservice服務 home admin dmdbms script root dm service installer.sh t dmserver i home admin dmdbms data dm7 dm.ini p dmserver echo ...