程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> DB2數據庫 >> DB2教程 >> DB2 環境部署-在DB2 UDB V8.1中使用裸(raw)設備

DB2 環境部署-在DB2 UDB V8.1中使用裸(raw)設備

編輯:DB2教程

版權聲明: 本文可以任意轉載,轉載時請務必以超鏈接形式標明文章原始出處和作者信息。
原文出處: http://www.aivIEw.com/notes/db2_using_raw.htm
作者: 張洋 Alex_doesAThotmail.com



 目錄
  
  1. 一般信息
  2. 規劃磁盤分區
  3. 創建RAW設備
  4. 創建數據庫
  5. 規劃日志以及備份文件存儲
  6. 額外信息
  7. 參考資源
一般信息

本文中的命令和代碼在以下環境編譯執行通過:

ibm xSerIErs 345(Inter 32位)
RedHat Enterprise Linux 3.0
DB2 V8.1 for Linux
主機連接一個IBM EMP300 磁盤櫃,用於數據庫數據存儲。磁盤櫃共有6塊磁盤,單塊146GB,其中5塊做成RAID5,剩余一塊做備用盤。

raid5中,校驗信息不單獨占用一個磁盤,而是根據算法平均分布在各個磁盤上,這樣避免了讀寫校驗信息產生的瓶頸。
假設在主機上已經安裝好了一個DB2服務,創建了一個實例,名為db2,還未建立數據庫,並且磁盤櫃已經在系統下安裝好驅動程序,我們獲得的設備名為sdb,還未進行分區。

下面分步介紹在磁盤陣列上建立raw設備並進行數據規劃和數據放置的操作步驟:

規劃磁盤分區

以root登錄,對磁盤陣列進行分區,在root提示符下鍵入:

#fdisk /dev/sdb

新增3個主分區sdb1,sdb2,sdb3,每個分區20gb,分別劃分給系統目錄表空間、默認的系統臨時表空間和新增的32kb的臨時表空間,
剩下空間約527GB全部劃分給第4個擴展分區sdb4,在擴展分區中增加5個邏輯分區sdb5,sdb6,sdb7,sdb8,sdb9,前兩個邏輯分區各160GB,用作表存儲的用戶表空間,第三個邏輯分區為20GB,用作專門放置索引的用戶表空間,余下的2個邏輯分區分別為80GB、93GB,這兩個邏輯分區使用ext3進行格式化,用於存放日志和數據庫備份。
注意:sdb1-sdb7均未進行格式化操作,准備用作raw設備,由DB2自行管理。

以下是分好區的磁盤狀態:

Disk /dev/sdb: 587.2 GB, 587257085952 bytes
254 heads, 63 sectors/track, 71677 cylinders
Units = cylinders of 16002 * 512 = 8193024 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 2501 20010469+ 83 Linux
/dev/sdb2 2502 5002 20010501 83 Linux
/dev/sdb3 5003 7503 20010501 83 Linux
/dev/sdb4 7504 71677 513456174 5 Extended
/dev/sdb5 7504 27502 160011967+ 83 Linux
/dev/sdb6 27503 47501 160011967+ 83 Linux
/dev/sdb7 47502 50002 20010469+ 83 Linux
/dev/sdb8 50003 60002 80009968+ 83 Linux
/dev/sdb9 60003 71677 93411643+ 83 Linux

創建RAW設備

打算用作raw設備的各個邏輯分區db2不能夠直接使用,需要使用raw命令創建raw設備名:
在root提示符下鍵入:

# raw -a

查詢當前已經建立的raw設備名,目前為空,我們可以從第一個設備名用起,

在root提示符下鍵入:

# raw /dev/raw/raw1 /dev/sdb1 # 用於system catalog tablespace (4K)
# raw /dev/raw/raw2 /dev/sdb2 # 用於system temp tablespace (4K)
# raw /dev/raw/raw3 /dev/sdb3 # 用於system temp tablespace (32K)
# raw /dev/raw/raw5 /dev/sdb5 # 用於user tablespace1 (32K),存儲表
# raw /dev/raw/raw6 /dev/sdb6 # 用於user tablespace1 (32K),存儲表
# raw /dev/raw/raw7 /dev/sdb7 # 用於user tablespace2 (32K),存儲索引

至此,我們創建了6個raw設備名,用於交給db2直接管理,查看一下已經創建的raw設備名的情況:

# raw -a

/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
/dev/raw/raw3: bound to major 8, minor 19
/dev/raw/raw5: bound to major 8, minor 21
/dev/raw/raw6: bound to major 8, minor 22
/dev/raw/raw7: bound to major 8, minor 23

如果想刪除一個raw設備名(例如/dev/raw/raw1),在root提示符下鍵入:

# raw /dev/raw/raw1 0 0

接著修改系統的初始化文件,添加如下行到 /etc/rc.d/sysinit 文件:

raw /dev/raw/raw1 /dev/sdb1
raw /dev/raw/raw2 /dev/sdb2
raw /dev/raw/raw3 /dev/sdb3
raw /dev/raw/raw5 /dev/sdb5
raw /dev/raw/raw6 /dev/sdb6
raw /dev/raw/raw7 /dev/sdb7

這樣系統在下次啟動時,會重新建立需要的raw設備名。

默認建立的raw設備擁有者是disk,必須讓數據庫實例的擁有者具有此設備的存取權限,在root提示符下鍵入:

# chown db2:disk /dev/raw/raw[1,2,3,4,5,6,7]

將db2用戶更改為7個裸設備的擁有者,至此,這些裸設備已經可以為db2所引用。

創建數據庫

下面准備使用以上raw設備創建一個名為newdb的數據庫,包含頁size為4kb系統目錄表空間、系統臨時表空間以及用戶表空間各一個;
然後新建頁size為8kb、16kb、32kb的緩沖池各一個;
刪除4kb的用戶表空間,新建2個32kb頁size的用戶表空間,用於用戶表的存儲;
新建一個32kb頁size的用戶表空間,用於存儲索引;
新建一個32kb頁size的系統臨時表空間;

我們將完成以上功能的腳本保存為newdb.sql,並通過如下方式執行此腳本:

在root提示符下鍵入如下命令,轉到db2用戶下:

# su - db2

執行上面的腳本:

$ db2 -td";" -f newdb.sql

至此數據庫創建完成。

規劃日志以及備份文件存儲

接下來,還需要規劃日志和數據庫備份的存儲,首先將用於日志和數據庫備份的分區進行格式化(此過程花費時間較長):
在root提示符下鍵入:

# mkfs.ext3 /dev/sdb8
# mkfs.ext3 /dev/sdb9

創建db2數據庫的目錄:

# mkdir /db2
# chown db2:db2 /db2
# su - db2

$ mkdir /db2/db2log
$ mkdir /db2/db2backup
$ exit

mount邏輯分區到目錄:

# mount /dev/sdb8 /db2/db2log
# mount /dev/sdb9 /db2/db2backup

更新數據庫的log文件路徑:

# su - db2
$ db2 connect to newdb
$ db2 update db cfg using newlogpath '/db2/db2log'

停頓數據庫使修改生效,使用defer參數繼續執行已有的事務,拒絕新的連接,停頓成功後發布激活數據庫的命令:

$ db2 quIEsce db defer
$ db2 unquIEsce db
$ exit

至此我們完成了利用raw設備進行數據規劃和數據放置的任務。

額外信息

當已經在raw設備上創建容器之後,若沒有通過正常的步驟刪除表空間所在數據庫,也沒有直接刪除容器或者容器所在表空間,則再次利用這些raw設備時,db2會報錯:
The container is already in use

此時應使用db2untag命令釋放container標志,而采用重新對磁盤進行分區或者格式化的操作是無濟於事的。

釋放已經在raw設備raw1上建立的container標志:

# su - db2
$ db2untag /dev/raw/raw1

 

參考資源

  • 下載用於創建數據庫的腳本
  • IBM DB2 開發者園地
    http://www-900.ibm.com/developerWorks/cn/dmdd/certify/index.sHtml

  • IBM DB2 信息中心
    http://publib.boulder.ibm.com/infocenter/db2help/index.JSP(SUN企業級應用的首選)

  • dbforums 論壇
    http://dbforums.com/

  • 《DB2 UDB v8.1 for Linux, UNIX, Windows 數據庫管理》George Baklarz, Bill Wong 合著,機械工業出版社出版

  • 《DB2數據庫管理與應用教程》莊濟誠 著,清華大學出版社出版

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved