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 ...