DB2 on Docker


RojerChen.2018.10.11
去年處理了一個跟 DB2 有關的案子,那個時候我跟同事分工,同事處理 DB2 的環境,我來處理 ASP.NET MVC 的開發環境,由於我不想在筆電上安裝 DB2,所以每次都只能等回到公司的時候在進行開發,雖然那個時候我知道可以安裝在 Docker 的環境上,但是因為太忙而遲遲沒有研究。
沒想到,脫離這個專案一年多的時間了,最近又回來處理這個專案。既然該躲的躲不過,還是來研究一下 DB2 要如何安裝在 Docker 環境,並且有哪些設定需要處理。

Docker

10.x

docker pull ibmcom/db2express-c (10.x)

11.x

docker pull store/ibmcorp/db2_developer_c:11. (11.x)

執行

docker run -it -p 50000:50000 -e DB2INST1_PASSWORD=db2inst1-pwd -e LICENSE=accept ibmcom/db2express-c:latest bash

docker exec -ti ibmcom/db2express-c bash

DB2

使用 Docker 方式安裝 DB2 其實沒有多困難,對我來說比較難的反而是建立資料庫的部分,原本我想使用資料庫工具來建立相關資料,只不過不知道為何會失敗,所以最後只能透過下指令的方式來處理。

切換身分

su - db2inst1

啟動 DB2

db2start

建立 sample 資料庫

db2sampl 

DB2 create/drop database

db2 create db <db_name>

db2 drop database <db_name>

db2 create schema

db2 connect to <database>

db2 create schema <schema_name> authorization <owner>

db2 create schema <schema_name>

db2 list database directory

資料庫語法

開發的過程除了程式碼的版控,資料庫的 Schema 也是要做版控,透過下面兩個語法就可以大概知道資料庫有哪些資料表和資料型態,有了這些資訊後就可以自己寫程式產生對應的說明文件。
#列出 Schgema 裡面的 table or view
select * from syscat.tables where TABSCHEMA = schema_name;

#列出某個 Table 的結構
Select * from Sysibm.syscolumns where tbname = table_name;

Windows 安裝 DB2 Express,需要設定權限

GRANT DBADM ON DATABASE to db2admin

DB2 指定schema

set schema=<schema_name>;

※參考資料

    Blogger Comment

0 意見: