首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 UDB V8.1 管理學習筆記(二):表空間、配置與日常操作

     編輯:DB2 教學

表空間類型與規劃

  • SMS(System Managed Space):指定目錄,DB2 自動管理檔案,簡單易用
  • DMS(Database Managed Space):手動指定容器/檔案,需預留磁碟空間,效能較佳
  • 每資料庫至少一個 4KB 系統暫存表空間,可額外建立大頁面使用者暫存表空間,系統自動選用

資料型態變更限制

無法用 ALTER 變更欄位資料型態,部分欄位可調整長度。相較 Oracle 限制較多。

常用查詢替代語法

SELECT expression FROM sysibm.sysdummy1;
-- 等同於
VALUES expression;

UPDATE 與預設值行為

UPDATE 未顯式賦值的預設值欄位,不會重新執行預設運算式。需重新執行時:

CREATE TABLE t1 (c1 VARCHAR(32), lastupdatetime TIMESTAMP WITH DEFAULT CURRENT TIMESTAMP);
UPDATE t1 SET c1 = 'new', lastupdatetime = DEFAULT;

Codepage 設定原則

  • 建庫指定 codepage,建立後不可變更
  • 應用程式連線時 DB2 自動比對轉換,為減少開銷應保持一致
  • CLP 設定:db2set DB2CODEPAGE=1386(GBK 對應值),數值由 DB2 定義

遠端資料庫編目操作

DB2 CATALOG TCPIP NODE local_node REMOTE hostname|ip SERVER service_name
DB2 CATALOG DATABASE db_name AS local_alias AT local_node USER username USING password
DB2 CONNECT TO local_alias USER username USING password
DB2 GET CONFIGURATION SHOW DETAIL

錯誤代碼查詢

db2 "? sql10008"

備份與還原指令

# 備份
DB2 BACKUP DATABASE db_name USER user USING pass TO backup_dir

# 還原
DB2 RESTORE DATABASE src_db USER user USING pass FROM backup_dir
  TAKEN AT timestamp TO drive INTO new_db_name

實例操作

DB2 SET DB2INSTANCE=inst_name
DB2START
DB2STOP [FORCE]
DB2 ATTACH TO INSTANCE inst_name
DB2 GET DBM CFG SHOW DETAIL

db2look 匯出完整定義

db2look -d sample -a -e -l -x -m -f -o samplesql.out

LOAD 導致 Backup Pending 狀態

資料型態不匹配(如整數載入 DOUBLE 欄位)可能導致表空間進入 0x0020 狀態而不可存取。對該表空間執行一次備份即可恢復正常 0x0。

自增欄位兩種模式

  • GENERATED BY DEFAULT AS IDENTITY:允許手動指定值(不重複),資料庫自動調整下一值
  • GENERATED ALWAYS AS IDENTITY:僅由資料庫自動分配

SQL 轉義字元

SELECT * FROM t1 WHERE a LIKE '%abc\%def' ESCAPE '\';

建庫常見錯誤 SQL1043C

  • 容器磁碟空間不足
  • FILE 容器 long-num 參數錯誤(25600 代表 256MB,寫 256 會報錯)

WAS 5 連接 DB2 環境變數問題

錯誤 UnsatisfiedLinkError: SQLConnect:WAS 服務用戶缺少 LD_LIBRARY_PATH、LIBPATH、DB2INSTANCE。解法:停止 WAS → source $INSTHOME/sqllib/db2profile → 啟動 WAS,或置於 WAS 啟動腳本最前。僅設前兩者會報 CLI0600E Invalid connection handle。

任務中心配置

CREATE TOOLS CATALOG schema_name CREATE NEW DATABASE db_name

預設字符集 ISO8859-1,無法用 USING 指定 codeset。

客戶端類型區分

  • Runtime Client → Administrator Client → Application Development Client(層層包含)
  • Thin Client:輕量級
  • Relational Connect:聯邦資料庫,連接異構資料源
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved