db2forlinux
㈠ DB2的歷史
DB2擁有悠久的歷史並且被很多人認為是最早使用sql(同樣最早被IBM開發)的資料庫產品。
1968:IBM 在 IBM 360 計算機上研製成功了 IMS V1,這是第一個也是最著名的和最為典型的層次型資料庫管理系統。至今仍然還有企業在使用呢。
1970:這是資料庫歷史上劃時代的一年,IBM公司的研究員E.F.Codd 發表了業界第一篇關於關系資料庫理論的論文A Relational Model of Data for Large Shared Data Banks,首次提出了關系模型的概念。這篇論文是計算機科學史上最重要的論文之一,奠定了Codd博士關系資料庫之父的地位。
1973:IBM研究中心啟動了 System R 項目,研究多用戶與大量數據下關系型資料庫的可行性,它為 DB2 的誕生打下了良好基礎。由此取得了一大批對資料庫技術發展具有關鍵性作用的成果,該項目於1988年被授予ACM軟體系統獎。
1974:IBM研究員Don Chamberlin 和 Ray Boyce 通過 System R 項目的實踐,發表了論文SEQUEL:A Structured English Query Language,提出了 SEQUEL 語言,此即 SQL 語言的原型。
1975:IBM研究員Don Chamberlin 和 Morton Astrahan的論文 Implentation of a Structured English Query Language,在 SEQUEL 的基礎上 描述了 SQL 語言的第一個實現方案。這也是 System R 項目得出的重大成果之一。
1976:IBM System R 項目組發表了論文A System R: Relational Approach to Database Management,描述了一個關系型資料庫的原型。IBM 的研究員Jim Gray 發表了名為Granularity of Locks and Degrees of Consistency in a Shared DataBase的論文,正式定義了資料庫事務的概念和數據一致性的機制。
1977:System R 原型在3個客戶處進行了安裝,這 3 個客戶分別是:波音公 司、Pratt & Whitney 公司和 Upjohn 葯業。這標志著 System R 從技術上已經是 一個比較成熟的資料庫系統,能夠支撐重要的商業應用了。
1979:IBM研究員Pat Selinger在她的論文Access Path Selection in a Relational Database Management System中描述了業界第一個關系查詢優化器。
1980:IBM發布了 S/38 系統,該系統中集成了一個以 System R 為原型的資料庫伺服器。為了方便應用程序的移植,它的 API 與 S/3、S/32 的 API 一致。
1981:由於發明了關系型資料庫模型,IBM 的研究員E.F.Codd 接受了ACM 圖靈獎,這是計算機科學界的最高榮譽。Codd 博士也是繼查爾斯.巴赫曼(Charles W. Bachman) 之後,又一位由於在資料庫領域做出巨大貢獻而獲此殊榮的計算機科學家。
1982:IBMPC 的出現標志著 PC 產業開始孕育發展。在以後相當長的一段時間內,在各種品牌的個人電腦上標記著的IBM PC Compatible字樣都見證著 IBM 在 這個領域的輝煌。
1982:IBM發布了 SQL/DS for VSE and VM 。這是業界第一個以 SQL 作為介面的商用資料庫管理系統。該系統也是基於 System R 原型所設計的。
1983:IBM發布了DATABASE 2(DB2)for MVS(內部代號為Eagle)。
1986:System/38 V7 發布,該系統首次配置了查詢優化器,能夠對應用程序的存取計劃進行優化。
1987:IBM發布帶有關系型資料庫能力的 OS/2 V1.0擴展版,這是IBM第一次把關系型資料庫處理能力擴展到微機系統。這也是 DB2 for OS/2、Unix and Window 的雛形。
1988:IBM發布了SQL/400,為集成了關系型資料庫管理系統的AS/400伺服器提供了SQL支持。IDUG(國際DB2用戶組織)組織成立。
1989:IBM定義了 Common SQL 和 IBM 分布式關系資料庫架構(DRDA),並在 IBM 所有的關系資料庫管理系統上加以實現。 第一屆 IDUG北美大會在美國芝加哥召開。 1992:第一屆 IDUG歐洲大會在瑞士日內瓦召開。這標志著 DB2 應用的全球化。
1993:
1.IBM發布了DB2 for OS/2 V1(DB2 for OS/2 可以被簡寫為DB2/2)和 DB2 forRS/6000V1(DB2 for RS/6000 可以被簡寫為DB2/6000),這是 DB2 第 一次在Intel 和Unix 平台上出現。
2.Louis V. Gerstner 入主 IBM。
1994:
1.DB2 For MVS V4 通過並行 Sysplex 技術的實現在主機上引入了分布式計算(數據共享)。
2.IBM發布了運行在 RS/6000 SP2 上的 DB2 並行版 V1,DB2 從此有了能夠適應大型數據倉庫和復雜查詢任務的可擴展架構。IBM 將 DB2 Common Server 擴展到 HP-UX 和 Sun Solaris 上。DB2 開始支持其他公司開發的 UNIX 平台。 DB2/400 集成在 OS/400 V3.1中發布,並且引入了並行機制、存儲過程和參照完整性等機制。同時,IBM 宣布在 OS/2 和 AIX 平台上的 DB2 產品能夠對多媒體數據和面向對象應用程序提供支持。
1995:
1.IBM發布了 DB2 Common Server V2,這是第一個能夠在多個平台上運行的對象-關系型資料庫(ORDB)產品,並能夠對 Web 提供充分支持。DataJoiner for AIX 也誕生在這一年,該產品賦予了 DB2 對異構資料庫的支持能力。DB2 在 Windows NT 和 SINIX平台上的第一個版本(DB2 V2)發布。
2.IBM發布了在 AIX 和 MVS 平台上的數據挖掘技術,用於管理大文本、圖像、音頻、視頻和指紋信息的擴展器(Extender)以及可以對數據倉庫進行可視化構造和管理的Visual Warehouse。
3.IBM發布了 DB2 WWW Connection V1 for OS/2 and AIX(該產品後來被更名為Net.Data)。該產品可以將資料庫中的數據快速發布到 Web。第一屆 IDUG 亞太區大會在澳大利亞悉尼召開。這年IBM 並購了 Lotus Development Corp。
1996:
1.IBM發布 DB2 V2.1.2 ,這是第一個真正支持 JAVA 和 JDBC 的資料庫產品。
2.DataJoiner 開始支持對非關系型資料庫(比如 IMS 和 VSAM)的存取。
3.IBM發布了 Intelligent Miner,該產品可以對基於 DB2 的數據源實施數據挖掘。
4.IBM並購 Tivoli。 IBM 將 DB2 更名為 DB2 Universal Database,這是第一個能夠對多媒體和 Web 進行支持的RDBMS。該系統具有很好的伸縮性,可以從桌面系統擴展到大型企業,適應單處理器、 SMP 和 MPP 計算環境,並可以運行在所有主流操作系統和硬體平台上。 DB2 V5 是以前的兩個產品的合並:DB2 Common Server V 2.1.2 和 DB2 並行版 1.2。
5.IBM發布了數字圖書館產品,這是一個多媒體資產管理產品,也是 IBM Content Manager 的前身。
6.DB2 Magzine 第一期發布,DB2 有了自己專門的技術刊物。
1997:
1.IBM發布了可以支持 Web 的 DB2 for OS/390 V5,這是當時唯一能夠支持64, 000個並發用戶和百 TB 級別的資料庫產品。
2.IBM發布了DB2 UDB for UNIX、Windows and OS/2,該產品支持 ROLLUP 和 CUBE 函數,對聯機分析處理(OLAP)具有重要意義。
3.IDUG 第一次技術論壇在加拿大多倫多召開。
4.IBM發布了用於企業級內容管理的 EDMSuite,該產品包含了用於管理計算機生成報表的 OnDemand 和 管理圖像的 ImagePlus VisualInfo。
5.IBM基於 RS/6000 SP 架構的超級計算機深藍在國際象棋的 6 番棋對抗中戰勝了世界棋王卡斯帕羅夫。
1998:
1.IBM發布了 DB2 OLAP Server,這是一個基於 DB2 的完整的 OLAP Solution。這個產品是和 Arbor Software(Hyperion的前身)合作開發的。
2.IBM發布了 DB2 Data Links 技術,該技術可使 DB2 對外部文件進行管理。
3.DB2的 shared-nothing集群技術擴展到 Windows 和 Solaris 平台。
4.IBM發布了 DB2 Spatial Extender,這是與ESRI公司在DataJoiner基礎 上聯合開發的,該產品賦予了DB2 對地理信息數據的存取能力。
5.IBM發布了 ContentConnect,該產品是 Enterprise Information Portal(EIP)的前身。
6.DB2 對 SCO UnixWare 平台提供支持。
7.DB2 UDB V5.2 增加了對 SQLJ、Java 存儲過程和用戶自定義函數的支持。
8.IBM發布 DB2 UDB for AS/400,使 AS/400 成為充分支持電子商務的機 型。
1999:
1/IBM為了對移動計算提供支持,發布了DB2 UDB 衛星版和DB2 Everywhere(這是一個適用於手持設備的微型關系資料庫管理系統,後稱為DB2 Everyplace)。
2/IBM發布了 Enterprise Information Portal,該產品可以跨數字圖書 館和 EDMSuite 提供一個統一的聯合檢索功能。
3/DB2增加了能夠識別 XML 語言的文本檢索功能,從而引入了 XML 支 持,並啟動了DB2 XML Extender 的 beta 計劃。
4/IBM發布了 Intel 平台上的 DB2 UDB for linux。
5/IBM 研究機構將 DB2 的聯邦(federation)功能和 Garlic 技術(Garlic的目標是使能大規模多媒體信息系統,集成到生命科學解決方案DiscoveryLink 中
2000:
1/IBM發布了 DB2 XML Extender,成為在業界第一個為資料庫提供內置 XML 支持的廠商。
2/IBM將 Visual Warehouse 集成到 DB2 中,為DB2 提供了內置的數據倉庫管理功能。
3/DB2對Linux 的支持進一步增強,能夠支持基於 Intel 的 Linux集群、 發布了可以運行在主機上的 DB2 UDB for Linux和可以運行在嵌入式Linux上的 DB2 Everyplace。
4/DB2開始支持 NUMA-Q 平台,可以運行在該平台上的類 UNIX操作系統DYNIX/PTX 上。
5/DB2通過 Net.Search Extender 提供了 in-memory 高速文本檢索功能。
6/IBM啟動了資料庫管理工具業務,起初著重於為主機上的 IMS 和 DB2 提供高效管理工具,最終這項業務擴展到 UNIX、Linux 和 Windows 平台。 Informix資料庫產品也在支持之列。
7/IBM開始通過在DB2中集成 DataJoiner 來提供數據聯邦(federation)功能 。
8/IBM發布了用於管理數字資產的Content Manager。IBM 數字圖書館和 EDMSuite 產品都被包含在一個單一的架構中來提供多媒體資產管理和企業內 容管理。荷蘭國家圖書館、梵蒂岡圖書館都是最早的用戶。
9/DB2在主機上銷售出了它的第10000個許可證。
2001:
1/IBM以 10 億美金收購了 Informix 的資料庫業務,這次收購擴大了IBM 的分布式資料庫業務。
2/DB2 OLAP Server中增添了數據挖掘功能。
3/IBM發布了第一個能夠支持多種平台的 DB2 工具。
4/DB2提供了基於 SOAP 的 Web 服務的支持。DB2 XML Extender和存儲過程可以使DB2成為 Web 服務的提供者。
5/IBM科學家在納米碳管晶體管技術領域取得突破。IBM 用納米碳管製造出了世界上第一批納米晶體管--由直徑 10 個原子大小的碳原子組成的小圓柱結 構,比當今基於硅的晶體管小 500 倍。
6/DB2拓寬了其數據聯邦(federation)的能力,可以對WebSphere MQ消息隊列和生命科學領域特定格式的文件提供支持。
7/IBM發布了 DB2 UDB for OS/390。
2002:
1/IBM發布了 Xperanto,這是一個基於標準的信息集成中間件的演示版, 可以用來優化對分散數據源的存取。這個演示版本使用了XML、Xquery、Web 服 務、數據聯邦(federation)和全文檢索等先進技術。
2/IBM宣布計劃收購 Rational Software Corp,從而使得 IBM軟體能夠 支持從設計、開發、部署到管理和維護的完整過程。
3/DB2通過基於 SOAP 的 Web 服務擴展了數據聯邦(federation)的能力。並可以作為 Web 服務的使用者出現在 Web 服務架構中。
4/DB2 OLAP Server中添加了hybrid(多維和關系)分析能力。
5/作為IBM 自主運算策略的一部分,SMART(自我管理和資源調節)技術 在 DB2 UDB V8.1 中首次正式應用。
6/IBM並購 Tarian Sotware,從而加強了Content Manager 中記錄管理組 件的功能。
2003:
1/IBM將數據管理產品統一更名為信息管理產品,旨在改變很多用戶對於 DB2 家族產品只能完成單一的數據管理的印象,強調了 DB2 家族在信息的處理與集成方面的能力。
2/DYNIX/ptxDB2 發布了 DB2 Information Integrator(該產品由以 前的 DB2 DataJoiner和 Enterprise Information Portal演化而來),該款軟體旨在幫助客戶即時訪問、集成、管理和分析存儲於企業內外任何平台上的各類信息。
2004:IBM DB2 在TPC 的兩項測試中屢次刷新該測試的新紀錄,在計算領 域的歷史上樹立了新的里程碑。其中在TPC-C 的測試中,它創造了計算速度領域新的世界記錄,徹底粉碎了在該測試中每分鍾三百萬次交易的極限。
2005:經過長達5年的開發,IBM DB2 9將傳統的高性能、易用性與自描述、靈活的XML相結合,轉變成為互動式、充滿活力的數據伺服器。
2006:IBM發布DB2 9,將資料庫領域帶入XML時代。IT建設業已進入SOA(Service-Oriented Architecture)時代。實現SOA,其核心難點是順暢解決不同應用間的數據交換問題。XML以其可擴展性、 與平台無關性和層次結構等特性,成為構建SOA時不同應用間進行數據交換的主流語言。而如何存儲和管理幾何量級的XML數據、直接支持原生XML文檔成為SOA構建效率和質量的關鍵。在這這種情況下,IBM推出了全面支持Original XML的DB2 9,使XML數據的存儲問題迎刃而解,開創了一個新的XML資料庫時代。同年1月30日,IBM發布了一個DB2免費版本DB2Express-C。
㈡ 虛擬機Linux上部署DB2pureScale過程
在Linux 操作系統 中,可在虛擬機上搭建DB2 pureScale,那麼搭建的步驟是怎麼樣的呢?DB2 pureScale又有什麼用呢?下面隨我一起來了解下Linux系統如何在虛擬機上部署DB2 pureScale。
在虛擬機Linux上部署DB2pureScale實踐過程
1、環境准備
硬體環境:3 台 x86-64虛擬機,內存要求 1.5G 或以上(主要針對虛擬機,內存過低會造成資料庫實例啟動失敗)
操作系統:Suse Linux Enterprise Server 11.3
DB2 版本:DB2 v10.5
機器名:node01 node02 node03
IP:192.168.18.201 192.168.18.202 192.168.18.203
網關:192.168.18.2
利用iscsi服務來做共享存儲功能,其中node01 作為 iscsi 的 Server,node01、node02和 node03 作為 iscsi Client,這樣三台虛擬機上都能看到相同的磁碟了(按照developer workers上的 文章 :非 InfiniBand 環境下搭建 DB2 pureScale,我用DB2 v10.5時啟動實例失敗,可能10.5做了限制,CF與member在同一台機器啟動失敗,幫多了一台虛擬機)。
2、操作系統安裝:
Node01預留出一塊分區,不進行格式化(文件類型為0x83 Linux)做為 pureScale 集群的 Sharing Disk 使用,Node02與Node03跟node01 其它 相同就可,
安裝必要的包:
libstdc++(32 位和 64 位庫)
glibc(32 位和 64 位庫)
cpp
gcc
gcc-c++
kernel-source
binutils
ksh-93u-0.8.1
openssh
ntp
完成SUSE 11 SP3的安裝。
驗證:檢查/lib/moles/3.0.76-0.11-default/build/include/linux有無autoconf.h,如果沒有autoconf.h,安裝DB2時會報Compiling GPL :.......Failure錯誤。
解決 方法 :cp –v /usr/src/linux-3.0.76-0.11-obj/x86_64/default/include/generated /lib/moles/3.0.76-0.11-default/build/include/linux
3、添加用戶和用戶組
三台機器全部執行如下命令(如果不做特殊說明,以#表示root身份登錄,以$表示db2inst1身份,以下相同)。
#groupadd -g 1001 db2fadm1
#groupadd -g 1002 db2iadm1
#useradd -g db2fadm1 -u 1001 -m -d /home/db2fenc1 -p db2fenc1 db2fenc1
#useradd -g db2iadm1 -u 1002 -m -d /home/db2inst1 -p db2inst1 db2inst1
#mkdir /root/.ssh
# su - db2inst1 -c "mkdir -p /home/db2inst1/.ssh"
4、配置ssh 信任連接
ssh信任通俗的說就是直接ssh不用輸入密碼
在/etc/hosts添加另外兩台機器的IP地址及機器名(確保3台機器名與ip地址全部出現在hosts文件中)
例如我的機器hosts如下:
127.0.0.1 localhost
192.168.18.201 node01.site node01
192.168.18.202 node02.site node02
192.168.18.203 node03.site node03
node01執行如下命令:
#ssh-keygen -t rsa
#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id01
#scp /root/.ssh/id01 node02:/root/.ssh
#scp /root/.ssh/id01 node03:/root/.ssh
#su - db2inst1
$ssh-keygen -t rsa
$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id01
$scp /home/db2inst1/.ssh/id01 node02:/home/db2inst1/.ssh
$scp /home/db2inst1/.ssh/id01 node03:/home/db2inst1/.ssh
node02執行如下命令:
#ssh-keygen -t rsa
#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id02
#scp /root/.ssh/id02 node01:/root/.ssh/
#scp /root/.ssh/id02 node03:/root/.ssh/
#su - db2inst1
$ssh-keygen -t rsa
$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id02
$scp /home/db2inst1/.ssh/id02 node01:/home/db2inst1/.ssh/
$scp /home/db2inst1/.ssh/id02 node03:/home/db2inst1/.ssh/
node03執行如下命令:
#ssh-keygen -t rsa
#cp -v /root/.ssh/id_rsa.pub /root/.ssh/id03
#scp /root/.ssh/id03 node01:/root/.ssh
#scp /root/.ssh/id03 node02:/root/.ssh
#su - db2inst1
$ssh-keygen -t rsa
$cp -v /home/db2inst1/.ssh/id_rsa.pub /home/db2inst1/.ssh/id03
$scp /home/db2inst1/.ssh/id03 node01:/home/db2inst1/.ssh/
$scp /home/db2inst1/.ssh/id03 node02:/home/db2inst1/.ssh/
分別在node01、node02、node03執行如下命令
#cd /root/.ssh
#cat id01 id02 id03 > authorized_keys
#chmod 600 authorized_keys
#su - db2inst1
$cd /home/db2inst1/.ssh
$ cat id01 id02 id03 > authorized_keys
測試是否配置成功
3台機器分別以root與db2inst1執行:
#ssh node01 ls
#ssh node02 ls
#ssh node03 ls
#su - db2inst1
$ssh node01 ls
$ssh node02 ls
$ssh node03 ls
確保不用輸入密碼,則配置成功。
5、ISCSI 共享存儲配置
Iscsi server端配置(node01上執行):
修改/etc/ietd.conf,添加如下內容:
Target iqn.2014-03.node01.site:scsidisk01
Lun 0 Path=/dev/sda4,Type=fileio
注意:我的未分區硬碟為/dev/sda4,你的可能不一樣的@_@~~~~
添加自啟動
#chkconfig -a iscsitarget
檢查是否成功
#chkconfig -l iscsitarget
結果:iscsitarget 0:off 1:off 2:off 3:on 4:off 5:on 6:off
重啟iscsitarget服務
# /etc/init.d/iscsitarget restart
iscsi client端配置(node01、node02、node03執行,):
iscsitarget文件內容如下:
#! /bin/sh
### BEGIN INIT INFO
# Provides: iscsiclsetup
#node02與node03上如果未裝iscsitarget需將下下行的$iscsitarget
# Required-Start: $network $syslog $iscsitarget $remote_fs smartd
# Required-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Description: ISCSI client setup
### END INIT INFO
case "$1" in start)
iscsiadm --mode discoverydb --type sendtargets --portal 192.168.18.201 --discover
iscsiadm --m node --targetname iqn.2014-03.node01.site:scsidisk01 --portal 192.168.18.201:3260 --login
;;
stop)
iscsiadm -m node -T iqn.2014-03.node01.site:scsidisk01 -p 192.168.18.201 --logout
;;
restart) ## Stop the service and regardless of whether it was ## running or not, start it again.
$0 stop
$0 start
;;
*)
Esac
保存後執行:#/etc/init.d/iscsiclient restart
驗證iscsiclient是否啟動成功:
#fdisk -l
檢查有無/dev/sdb出現
6、配置Linux環境變數
/etc/profie.local添加內容
alias sl='tail -f /var/log/messages'
alias fc='fcslogrpt /var/log/messages'
export PATH=/root/bin:/usr/sbin/rsct/bin:/opt/ibm/db2/v10.5/bin:$PATH
export PATH=/usr/lpp/mmfs/bin:$PATH
export DB2USENONIB=TRUE
export DB2_CFS_GPFS_NO_REFRESH_DATA=true
然後執行# . /etc/profile.local,完成後你就可以安裝purescale了,我猜測應該是設置了變數DB2USENONIB,使purescale不再要求你強制InfiniBand或萬兆網卡,使我等窮人可以有機會玩這種高檔、洋氣、上檔次的資料庫。。。
7、DB2 V10.5 的安裝:
node01:~/server_t # ./db2_install
DBI1324W Support of the db2_install command is deprecated. For
more information, see the DB2 Information Center.
Default directory for installation of procts - /opt/ibm/db2/V10.5
***********************************************************
Install into default directory (/opt/ibm/db2/V10.5) ? [yes/no]
yes
Specify one of the following keywords to install DB2 procts.
SERVER
CONSV
EXP
CLIENT
RTCL
Enter "help" to redisplay proct names.
Enter "quit" to exit.
***********************************************************
server
***********************************************************
Do you want to install the DB2 pureScale Feature? [yes/no]
Yes
曾經出現的錯誤:
ERROR: An error occurred while compiling IBM General Parallel File System
(GPFS) Portability Layer (GPL) on host "node01". Return code "2". GPL
compilation log file location "/tmp/compileGPL.log.000". The GPFS file system
cannot be mounted properly until the GPL mole is successfully compiled on
this host. For details, see the specified GPL compilation log. After fixing
the problems shown in the log file, re-run the DB2 installer. For information
regarding the GPFS GPL mole compile, see DB2 Information Center.
Compiling GPL :.......Failure
ERROR: A major error occurred while installing "DB2 Server Edition " on this
computer.
解決方案:
查看錯誤日誌:compileGPL.log.000,為以下內容:
cd /usr/lpp/mmfs/src/config; ./configure --genenvonly; if [ $? -eq 0 ]; then /usr/bin/cpp -P def.mk.proto > ./def.mk; exit $? || exit 1; else exit $?; fi
手工執行時會發現在./configure --genenvonly; 這一步報找不到
/usr/bin/diff: /lib/moles/3.0.76-0.11-default/build/include/linux/autoconf.h: No such file or directory
Kernel source tree does not have the correct autoconf.h file.
See /usr/lpp/mmfs/src/README for further information
手工拷唄一下autoconf.h文件即可
#cp –v /usr/src/linux-3.0.76-0.11-obj/x86_64/default/include/generated/autoconf.h /lib/moles/3.0.76-0.11-default/build/include/linux/
GPFS 文件系統配置與掛載
方法1:使用db2cluster_prepare
node01上執行:
#/opt/ibm/db2/v10.5/instance/db2cluster_prepare -instance_shared_dev /dev/sdb
DBI1446I The db2cluster_prepare command is running.
DB2 installation is being initialized.
Total number of tasks to be performed: 1
Total estimated time for all tasks to be performed: 60 second(s)
Task #1 start
Description: Creating IBM General Parallel File System (GPFS) Cluster and Filesystem
Estimated time 60 second(s)
Task #1 end
The execution completed successfully.
For more information see the DB2 installation log at
"/tmp/db2cluster_prepare.log".
DBI1070I Program db2cluster_prepare completed successfully.
此時df -l查看一下會發現多了一個掛載點
node01:/opt/ibm/db2/V10.5/instance # df -l
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 19599036 8122392 10481060 44% /
udev 958688 120 958568 1% /dev
tmpfs 958688 76 958612 1% /dev/shm
/dev/sda3 10327940 154460 9648836 2% /home
/dev/db2fs1 15728640 627712 15100928 4% /db2sd_20140401103940
曾經出現報錯:
DBI20022E The DB2 installer detected that the variable record "GPFS_CLUSTER" is
defined in the global registry. However, the GPFS cluster does not exist on
host "node01".
Creating IBM General Parallel File System (GPFS) Cluster and Filesystem :.......Failure
查看/tmp/ibm.db2.cluster.GuOypP發現有如下內容報錯:
014-04-01-10.26.12.358494+480 I5385E400 LEVEL: Warning
PID : 7469 TID : 139670848014112 PROC : db2cluster
INSTANCE: NODE : 000
HOSTNAME: node01
FUNCTION: DB2 UDB, oper system services, sqloMessage, probe:1
MESSAGE : Cannot obtain registry variables
DATA #1 : Hexmp, 4 bytes
0x00007FFF17631758 : B400 0F87
解決方案:由於此前我在此機器上試過N次db2cluster_prepare,包括V9.8、V10.1,V10.5安裝,導致全局注冊表變數沒有刪除干凈,使用db2greg -mp
V,GPFS_CLUSTER,NAME,db2cluster_20140403105617.site,-,DB2_CREATED將其刪除。
#cp -v /var/db2/global.reg /var/db2/global.reg_20140401
#db2delgreg -delvarrec service= GPFS_CLUSTER
總結 :db2cluster_prepare這個命令失敗時
檢查iscsi client是否准備好,fdisk -l查看一下是否有/dev/sdb
全局注冊表變數是否未刪除干凈 ,db2greg -mp查看
檢查一下是否tsa的domain存在,lsrpdomain,使用rmrpdomain將其刪掉,如果其node為活動需先將其node停掉。具體參考tsa相關命令,
檢查一下gpfs cluster domain是否未清理干凈,如果未清理干凈,需要使用將fs、nsd、node清理掉,具體命令參考gpfs信息中心。
方法2:手工掛載GPFS
遇到過使用db2cluster_prepare時無法成功,手工安裝(不確定是否遇到了 傳說 中的bug)。
創建cluster,不加-filesystem -disk選項:
node01:
#db2cluster -cfs -create -domain mydomain -host node01
#db2cluster -cfs -add -host node02
# db2cluster -cfs -add -host node03
說明:上面如果不出故障當然可以加上-filesystem –disk參數,當然也可以用mmaddnode –N XXX來添加節點
添加許可協議:
提供兩種方法
#mmchlicense server --accept -N node01,node02,node03
#/opt/ibm/db2/v10.5/bin/db2cluster -cfs -add -license
創建nsd:任意node執行
編寫newNSD文件內容如下
%nsd:
device=/dev/sdb
nsd=nsd1
usage=dataAndMetadata
#mmcrnsd -F /tmp/newNSD (-v no)
如果報mmcrnsd: Disk device sdb refers to an existing NSD,而使用mmlsnsd 又查找不到相應的nsd,添加-v no可以跳過此驗證。
#mmlsnsd 查看創建的nsd名稱,記下,在第3步時需要用到.
創建Cluster File System並掛載
啟動所有node,任意node執行
#mmstartup -a
#mmgetstate -a
確保所有node全部啟動成功為active
# mmcrfs -T /db2sd_20140401 db2sd_20140401 nsd1(此處的nsd1為第2步的nsd名稱)
#mmmount all -a
--曾經出現的錯誤:mmstartup -a無響應
,查看日誌/var/adm/ras/mmfs.log.previous
Tue Apr 1 22:02:11 CST 2014: runmmfs starting
Removing old /var/adm/ras/mmfs.log.* files:
Unloading moles from /lib/moles/3.0.76-0.11-default/extra
runmmfs: The /lib/moles/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.
runmmfs: Unable to verify kernel/mole configuration.
Loading moles from /lib/moles/3.0.76-0.11-default/extra
runmmfs: The /lib/moles/3.0.76-0.11-default/extra/mmfslinux.ko kernel extension does not exist.
runmmfs: Unable to verify kernel/mole configuration.
Tue Apr 1 22:02:11 CST 2014 runmmfs: error in loading or unloading the mmfs kernel extension
Tue Apr 1 22:02:11 CST 2014 runmmfs: stopping GPFS
解決方案:重新編譯一下gpfs的源碼,因為手工卸載gpfs。
/usr/lpp/mmfs/src/README有詳細的編譯方法:主要命令方法如下:
#cd /usr/lpp/mmfs/src
#make Autoconfig
#make InstallImages
make InstallImages會在/lib/moles/`uname -r`/extra目錄生成3個文件,大功告成.
創建實例
創建實例前:
node02#/opt/ibm/db2/V10.5/instance/db2icrt -cf node01 -cfnet node01
-m node02 -mnet node02 -instance_shared_dir /db2sd_20140401
-tbdev 192.168.18.2 -u db2fenc1 db2inst1
-tbdev 官方解釋為:Specifies a shared device path for a device that will act as a tiebreaker in the DB2 pureScale environment to ensure that the integrity of the data is maintained. 通俗的講就是在member出現故障時,判斷哪個member可以恢復服務,窮屌絲們就用網關IP來代替了,只要能 ping 通即可判斷為可用。
此時執行:# db2instance -instance db2inst1 -list可以查看
node01:/opt/ibm/db2/V10.5/instance # mmlscluster
GPFS cluster information
========================
GPFS cluster name: db2cluster_20140401103900.site
GPFS cluster id: 6571095102926235332
GPFS UID domain: db2cluster_20140401103900.site
Remote shell command: /var/db2/db2ssh/db2locssh
Remote file command: /var/db2/db2ssh/db2scp
GPFS cluster configuration servers:
-----------------------------------
Primary server: node01.site
Secondary server: node02.site
Node Daemon node name IP address Admin node name Designation
----------------------------------------------------------------------
1 node01.site 192.168.18.201 node01.site quorum-manager
2 node02.site 192.168.18.202 node02.site quorum-manager
曾經出現報錯:
錯誤1、報2632-044、2632-068,此類錯誤為創建tsa domain時的錯誤,原因在於虛擬機是拷貝的,不是重新安裝的。
解決方法:#/usr/sbin/rsct/install/bin/recfgct
啟動實例
node01:$/home/db2inst1/sqllib/adm/db2start
怎麼樣,報錯了吧,應該是SQL1721N
SQL1721N Starting the DB2 database manager failed because of a problem with a configuration file that is needed by RDMA.受打擊吧。
你裝完了實例啟動不了,沒關系,這么高檔的玩意怎麼能讓你這么快啟動啊。
你得設置兩個注冊表變數才能用普通網路.
$db2set DB2_SD_SOCKETS_RESTRICTIONS=false
$db2set DB2_CA_TRANSPORT_METHOD=SOCKETS
使用如下命令可以查看CF與member的狀態。
#db2instance -instance db2inst1 -list
node01:/home/db2inst1 # db2instance -instance db2inst1 -list
ID TYPE STATE HOME_HOST CURRENT_HOST ALERT PARTITION_NUMBER LOGICAL_PORT NETNAME
-- ---- ----- --------- ------------ ----- ---------------- ------------ -------
0 MEMBER STARTED node02 node02 NO 0 0 node02
128 CF PRIMARY node01 node01 NO - 0 node01
HOSTNAME STATE INSTANCE_STOPPED ALERT
-------- ----- ---------------- -----
node01 ACTIVE NO NO
node02 ACTIVE NO NO
此時你可以使用lssam查看tsa的兩個節點的狀態。
#lssam
添加成員
將node03添加為另一個member,如果實例沒有啟動會自動啟動實例,所以預先將上一步的兩台機器上的db2set執行完畢先。
node01:
#/opt/ibm/db2/v10.5/instance/db2iupdt -d -add -m node03 –mnet node03 db2inst1
#su - db2inst1 -c "db2start member 1"
開啟你的purescale之旅
#db2sampl
執行完畢後兩台member都可以看到資料庫sample,可以同時對庫進行操作