具體過程如下:
- 首先我創建了一個裸設備
mklv -t raw -y 'my_dbdat4_lv' datavg 100
創建lv時會同時生成2個設備,一個爲字符設備(c開頭的爲字符設備rmy_dbdat4_lv),一個爲塊設備(b開頭的爲塊設備)。
cd /dev
ls -lrt
brw-rw---- 1 system 37, 1 Oct 10 08:40 my_dbdat4_lv
crw-rw---- 1 system 37, 1 Oct 10 08:40 rmy_dbdat4_lv
我數據庫使用的是字符設備
chown -R db2inst1:db2adm rmy_dbdat4_lv
- 在使用字符設備創建表空間的時候,報錯SQL0294N The container is already in use. SQLSTATE=42730
建bufferpool和表空間語句如下:
建bufferpool:db2 CREATE BUFFERPOOL BP_4K SIZE 1280 PAGESIZE 4K
建表空間:db2 "CREATE TABLESPACE DMS_DAT4K PAGESIZE 4096 MANAGED BY DATABASE USING (DEVICE '/dev/rmy_dbdat4_lv' 10000000) BUFFERPOOL BP_4K"
報錯後在網上搜了一些解決方案,都是使用使用 db2untag 實用程序來從容器除去 DB2 容器標記:
1、直接對塊設備db2untag -f /dev/my_dbdat4_lv
但是db2untag命令不能成功運行,系統認爲db2untag不是目錄
2、因爲我使用的是字符設備創建表空間,我試了一下db2untag -f /dev/rmy_dbdat4_lv
結果db2untag成功了,再去創建表空間也成功了