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

DB2 開發運維 32 條實戰金鑰:從基礎操作到效能調優

     編輯:DB2 教學

前言:隨查隨用的 DB2 速查手冊

在論壇答疑多年,發現許多開發者、DBA 因缺乏「隨手查」的技巧清單,頻繁中斷思路去翻文檔。本文將 32 個高頻實戰技巧按場景分類整理,涵蓋節點/資料庫編目、連接測試、Schema 管理、編碼頁、版本遷移、DDL/數據導出入、大表清理、系統監控、鎖分析、效能測試等核心場景,助您提效減負。

一、實例與資料庫編目管理

1. 查看本地節點目錄

db2 list node directory

2. 編目 TCP/IP 遠端節點

db2 catalog tcpip node <node_name> remote <host/IP> server <port> remote_instance <inst_name> ostype <OS_type>

3. 取消節點編目

db2 uncatalog node <node_name>

4. 查看系統資料庫目錄

db2 list database directory

5. 查看本地資料庫目錄

db2 list database directory on <drive/path>

系統目錄有而本地目錄無的資料庫無法訪問,可在控制中心右鍵「添加」或「刷新」掛載。

6. 編目資料庫別名

db2 catalog database <db_name> as <alias> at node <node_name>

7. 取消資料庫編目

db2 uncatalog database <alias>

8. 測試遠端連接

db2 connect to <db_alias> user <user> using <pwd>

二、Schema 與編碼頁實戰

9. 設定當前 Schema(會話級)

set current schema = <schema_name>

初始值為當前會話用戶授權 ID。可互動或嵌入應用程式使用;若包用 DYNAMICRULES BIND 則無效。不受事務控制。

10. 編碼頁設置三種方式

建庫時指定:

create database <db> using codeset <codeset> territory <territory>
-- 例:create database dbtest using codeset IBM-437 territory US

實例級環境變數(Windows):

DB2CODEPAGE=1386  (或 437)
-- 或命令行:db2set DB2CODEPAGE=1386  需重啟實例

三、版本遷移與特殊物件訪問

11. 低版本遷移高版本

-- 低版本備份 → 高版本恢復 → 執行
db2 migrate database <db_name>

12. 含引號的 Schema/Table 訪問

-- CLP
db2 "select * from \"schema\".\"table\""
-- 互動模式
db2 => select * from "schema"."table"

四、DDL 與數據導出入核心命令

13. 導出結構生成 DDL

db2look -d <db> -e -c -o <file.sql>

14. 執行腳本檔

db2 -tvf <script.sql>

15. 代碼頁轉換

導入 Sybase 等 Tab 分隔文本:

db2 import from <file.txt> of del modified by coldel0x09 insert into <table>

16. 查詢 DB2 版本

select * from sysibm.sysversions

17. 修改欄位類型限制

僅支援 VARCHAR 增長:

alter table <tab> alter column <col> set data type varchar(<new_size>)

18. 查看表結構

describe table <tab>
-- 或
describe select * from <schema>.<tab>

19. 秒級清空大表(不記錄日誌)

alter table <tab> activate not logged initially with empty table
-- 替代方案
import from /dev/null of del replace into <tab>

20. 查看存儲過程

select * from syscat.procedures

21. 查看 Check 約束

select * from syscat.checks where tabname = '<TAB>'

22. 查看外鍵約束

select * from syscat.references where tabname = '<TAB>'

五、系統監控與效能分析

23. 查看緩衝池狀態

select * from syscat.bufferpools

24. 實例/資料庫配置參數查改

# 實例級
db2 get dbm cfg
db2 update dbm cfg using <param> <value>

# 資料庫級
db2 get db cfg for <db>
db2 update db cfg for <db> using <param> <value>

25. 緩衝池管理

# 新增
create bufferpool <bpname> size <pages> [pagesize 4096] [not] extended storage

# 修改大小
alter bufferpool <bpname> size <pages> [not] extended storage

# 刪除
drop bufferpool <bpname>

size=-1 時由 buffpage 參數決定;buffpage 僅對 size=-1 的緩衝池生效。

26. 多欄位 IN/NOT IN 技巧

select * from <schema>.<tab> 
where (colA, colB, colC) [not] in 
  (values (vA1,vB1,vC1), (vA2,vB2,vC2), ... (vAn,vBn,vCn))

27. 查看當前連接應用

db2 list applications [show detail]

28. 資料庫一致性檢查

db2dart <db> /DB

29. SQL 效能基準測試

db2batch -d <db> -f <sql_file> [-a user/pwd] [-r <result_file>]

30. 導出單表數據

export to <file.ixf> of ixf select * from <tab>

31. 導入數據(支援建表/插入/更新)

import from <file.ixf> of ixf [create into | insert into | replace into | update] <tab>

32. 鎖快照查詢

select * from table(snapshot_lock('<db>', -1)) as lock

附錄:CLP 參數速查表

選項功能預設
-a顯示 SQLCAOFF
-c自動提交ON
-e顯示 SQLCODE/SQLSTATEOFF
-f從檔案讀取輸入OFF
-o顯示輸出ON
-p顯示互動提示ON
-r輸出保存到報告檔OFF
-s出錯停止執行OFF
-t設定終止字符OFF
-v回送當前命令OFF
-w顯示 FETCH/SELECT 警告ON
-x不列印欄位標題OFF
-z所有輸出保存到檔案OFF

收藏本文,下次遇到「怎麼查鎖?怎麼清大表?怎麼改編碼頁?」直接 Ctrl+F 解決,專注核心業務邏輯。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved