虛擬化技術的現況 商業服務的PostgreSQL Database Cluster
4月 22

每次換了個平台都會忘記幾個小步驟,而導致很麻煩的後果
這次我做點詳細的紀錄

需要套件:

  • SRB 3.4.x
  • PostgreSQL 7.4/8.2
  • unixODBC 2.2.11
  • psqlodbc 07.03.0200/08.03.0100
    修正08.版的psqlodbc並沒有三個需要的.h檔,請不要下載這版本

安裝PostgreSQL:

http://www.postgresql.org/ftp/binary/

rpm --rebuild  postgresql-{version}-PGDG.f8.src.rpm

建置完將libs,client,server,contrib安裝
啟動資料庫,建立好新使用者srb,建立好unigrid mcat資料庫,並將擁有者指向srb
編輯pg_hba.conf
使得localhost使用密碼存取

安裝unixODBC:

yum install unixODBC-devel

根據相依性也會裝unixODBC

安裝psqlodbc:

http://www.postgresql.org/ftp/odbc/versions/src/

根據PostgreSQL版本下載

./configure --with-unixodbc
make  all install

ln /usr/local/lib/psqlodbc.so /usr/local/libpsqlodbc.so

要改成lib開頭的檔案ldconfig -v才會抓得到

編輯/etc/ld.so.conf
加入一行

/usr/local/lib

接著ldconfig -v |grep psql
看有沒有

將iodbc.h isqlext.h isql.h複製到/usr/include裡
這是編譯SRB時所需要的

設定ODBC:

unixODBC根據兩個檔案作為主要設定檔
如果不清楚設定檔的存放位置
odbcinst -j 就會顯示

編輯odbc.ini

[Unigrid]
Description = Unigrid
Driver = /usr/local/lib/psqlodbc.so
Database = unigrid
Servername = localhost
UserName = srb
Password = {password}
Port = 5432

存檔後,切換到srb帳號,執行isql -v unigrid就可以測試連接
不正常的話會有一些錯誤訊息,正常的話會出現connected!
並且可以測試select

isql 指令後面跟著的就是odbc source name,在這裡也就是設定檔第一行[ ]裡的”Unigrid”
ODBC是一種資料中介層,資料來源可以根據不同的驅動程式,來讓不同平台的應用程式可以連接
例如可以讓資料來源指定驅動為excel,如此就可以存取excel檔了

不正常的情況:

[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
輸入給isql的資料來源名稱錯誤,很有可能是設定檔裡的[ ]開頭的項目沒有這一項,或是那一項設定的Driver參數沒有指定

[28000][unixODBC]FATAL: ….
這一種類型的大概都是從資料庫回來的,那就要看postgresql傳回啥訊息了,可能會是帳號,密碼錯誤,無法連線,或是pg_hba.conf設定問題

編譯SRB:

MCAT

./configure --enable-psgmcat --enable-psghome=/usr/local/pgsql --enable-javagui --enable-jdkhome=$JAVA_HOME
make

without MCAT

./configure  --enable-javagui --enable-jdkhome=$JAVA_HOME
make

written by Kiwi


Leave a Reply