共計 9785 個字符,預計需要花費 25 分鐘才能閱讀完成。
本篇內容介紹了“db2 數據庫常用操作命令總結”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓丸趣 TV 小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
本文詳細匯總了 DB2 的常用操作命令,分享給大家。對于使用 db2 的朋友可以參考下。
DB2 數據庫管理客戶端從 v9.7 版本之后就不再帶有控制中心了,而是使用 Data Studio Client。安裝 DB2 數據庫產品期間不會應用許可證密鑰。但是,下列產品沒有激活 CD,因此會在安裝這些產品的過程中自動應用其許可證:DB2 Express-C 和 DB2 Connect 個人版。此外,DB2 個人版也是一個特殊案例。雖然 DB2 個人版具有激活 CD,但是會在安裝該產品的過程中自動應用其許可證。
注意: 執行命令前需要進入 DB2 的賬戶下:su db2inst1
修改密碼:更改相應的操作系統密碼即可,windows 上可以更改 db2admin 的密碼,linux 上更改 db2inst1 的密碼即可,db2 的數據庫密碼是和操作系統綁定的,就像大家說的只需要修改操作系統上用戶的密碼就可以了。你想改那個用戶的密碼你就在操作系統上改那個用戶的密碼。
1、打開命令行窗口
復制代碼 代碼如下:
#db2cmd
2、打開控制中心
復制代碼 代碼如下:
# db2cmd db2cc
3、打開命令編輯器
復制代碼 代碼如下:
db2cmd db2ce
一、加載數據:
1、以默認分隔符加載, 默認為“,”號
復制代碼 代碼如下:
db2 import from btpoper.txt of del insert into btpoper
2、以指定分隔符“|”加載
復制代碼 代碼如下:
db2 import from btpoper.txt of del modified by coldel| insert into btpoper
二、卸載數據:
1、卸載一個表中全部數據
復制代碼 代碼如下:
db2 export to btpoper.txt of del select * from btpoper
db2 export to btpoper.txt of del modified by coldel| select * from btpoper
2、帶條件卸載一個表中數據
復制代碼 代碼如下:
db2 export to btpoper.txt of del select * from btpoper where brhid= 907020000
db2 export to cmmcode.txt of del select * from cmmcode where codtp= 01
db2 export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp= 01
三、查詢數據結構及數據:
復制代碼 代碼如下:
db2 select * from btpoper
db2 select * from btpoper where brhid= 907020000 and oprid= 0001
db2 select oprid,oprnm,brhid,passwd from btpoper
四、刪除表中數據:
復制代碼 代碼如下:
db2 delete from btpoper
db2 delete from btpoper where brhid= 907020000 or brhid= 907010000
五、修改表中數據:
復制代碼 代碼如下:
db2 update svmmst set prtlines=0 where brhid= 907010000 and jobtp= 02
db2 update svmmst set prtlines=0 where jobtp= 02 or jobtp= 03
六、聯接數據庫
復制代碼 代碼如下:
db2 connect to btpdbs
七、清除數據庫聯接
db2 connect reset 斷開數據庫連接
db2 terminate 斷開數據庫連接
db2 force applications all 斷開所有數據庫連接
八、備份數據庫
1、db2 backup db btpdbs
2、db2move btpdbs export
復制代碼 代碼如下:
db2look -d btpdbs -e -x [-a] -o crttbl.sql
九、恢復數據庫
1、db2 restore db btpdbs without rolling forward
2、db2 -tvf crtdb.sql
crtdb.sql 文件內容:
復制代碼 代碼如下:
create db btpdbs on /db2catalog
db2 -stvf crttbl.sql
db2move btpdbs import
十、DB2 幫助命令:
db2 ?
db2 ? restroe
db2 ? sqlcode (例:db2 ? sql0803) 注:code 必須為 4 位數,不夠 4 位,前面補 0
十一、bind 命令:將應用程序與數據庫作一捆綁, 每次恢復數據庫后,建議都要做一次 bind
(1) db2 bind br8200.bnd
(2) /btp/bin/bndall /btp/bnd
/btp/bin/bndall /btp/tran/bnd
十二、查看數據庫參數:
復制代碼 代碼如下:
db2 get dbm cfg
db2 get db cfg for btpdbs
十三、修改數據庫參數:
復制代碼 代碼如下:
db2 update db cfg for btpdbs using LOGBUFSZ 20
db2 update db cfg for btpdbs using LOGFILSIZ 5120
改完后,應執行以下命令使其生效:
復制代碼 代碼如下:
db2 stop
db2 start
補充:
db2 set schema btp 修改當前模式為 btp
db2 list tablespaces show detail 查看當前數據庫表空間分配狀況
db2 list tablespace containers for 2 show detail 查看 tablespace id= 2 使用容器所在目錄
db2 list application
db2 list db directory 列出所有數據庫
db2 list active databases 列出所有活動的數據庫
db2 list tables for all 列出當前數據庫下所有的表
db2 list tables for schema btp 列出當前數據庫中 schema 為 btp 的表
db2 list tablespaces show detail 顯示數據庫空間使用情況
db2 list packages for all
db2 import from tab76.ixf of ixf commitcount 5000 insert into achact
db2 create table achact_t like achact
db2 rename table achact_t to achact
db2 insert into achact_t select * from achact where txndt =(select lstpgdt from
acmact where actno=achact.actno)
db2 get snapshot for dynaimic sql on jining
刪除一個實例:
復制代碼 代碼如下:
# cd /usr/lpp/db2_07_01/instance
# ./db2idrop InstName
列出所有 DB2 實例:
復制代碼 代碼如下:
# cd /usr/lpp/db2_07_01/bin
# ./db2ilist
為數據庫建立編目
復制代碼 代碼如下:
$ db2 catalog db btpdbs on /db2catalog
取消已編目的數據庫 btpdbs
復制代碼 代碼如下:
$ db2 uncatalog db btpdbs
查看版本
復制代碼 代碼如下:
# db2level
顯示當前數據庫管理實例
復制代碼 代碼如下:
$ db2 get instance
設置實例系統啟動時是否自動啟動。
$ db2iauto -on 自動啟動
$ db2iauto -off 不自動啟動
數據庫優化命令:
reorg、runstats
當數據庫經過一段時間使用,數據空間會變得越來越龐大。一些 delete 掉
的數據仍存放在數據庫中,占用數據空間,影響系統性能。因此需要定期
運行 reorg、runstats 命令,清除已 delete 的數據,優化數據結構。
db2 reorg table 表名
db2 runstats on table 表名 with distribution and indexes all
因為要優化的表比較多,所以在 /btp/bin 目錄下提供了一個 sh 程序 runsall,
可在當天業務結束后,運行 runsall,對數據庫進行優化
在 DB2 的開發過程中,貫穿整個開發過程還有很重要的一部分工作就是數據庫的維護;對于維護一個龐大信息系統來說是非常必要的;留一份簡易的維護手冊,以備不時之需;以下收集到的部分維護命令,以饗我們的維護工程師和項目經理。
DB2 常用命令總結
1.啟動數據庫
復制代碼 代碼如下:
db2start
2.停止數據庫
復制代碼 代碼如下:
db2stop
3.連接數據庫
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
4.讀數據庫管理程序配置
復制代碼 代碼如下:
db2 get dbm cfg
5.寫數據庫管理程序配置
db2 update dbm cfg using 參數名 參數值
6.讀數據庫的配置
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
db2 get db cfg for o_yd
7.寫數據庫的配置
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
db2 update db cfg for o_yd using 參數名 參數值
8.關閉所有應用連接
復制代碼 代碼如下:
db2 force application all
db2 force application ID1,ID2,,,Idn MODE ASYNC
(db2 list application for db o_yd show detail)
9.備份數據庫
復制代碼 代碼如下:
db2 force application all
db2 backup db o_yd to d:
(db2 initialize tape on //./tape0)
(db2 rewind tape on //./tape0)
db2 backup db o_yd to //./tape0
10.恢復數據庫
復制代碼 代碼如下:
db2 restore db o_yd from d: to d:
db2 restore db o_yd from //./tape0 to d:
11.綁定存儲過程
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
db2 bind c:/dfplus.bnd
拷貝存儲過程到服務器上的 C:/sqllib/function 目錄中
12.整理表
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
db2 reorg table ydd
db2 runstats on table ydd with distribution and indexes all
13.導出表數據
復制代碼 代碼如下:
db2 export to c:/dftz.txt of del select * from dftz
db2 export to c:/dftz.ixf of ixf select * from dftz
14.導入表數據
復制代碼 代碼如下:
import from c:/123.txt of del insert into ylbx.czyxx
db2 import to c:/dftz.txt of del commitcount 5000 messages c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 messages c:/dftz.msg insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 insert into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 insert_update into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 replace into dftz
db2 import to c:/dftz.ixf of ixf commitcount 5000 create into dftz (僅 IXF)
db2 import to c:/dftz.ixf of ixf commitcount 5000 replace_create into dftz (僅 IXF)
15.執行一個批處理文件
db2 –tf 批處理文件名
(文件中每一條命令用;結束)
16.自動生成批處理文件
建文本文件:temp.sql
復制代碼 代碼如下:
select runstats on table DB2. || tabname || with distribution and detailed indexes all; from syscat.tables where
tabschema= DB2 and type= T
db2 –tf temp.sql runstats.sql
17.自動生成建表(視圖)語句
在服務器上:C:/sqllib/misc 目錄中
復制代碼 代碼如下:
db2 connect to o_yd user db2 using pwd
db2look –d o_yd –u db2 –e –p –c c:/o_yd.txt
18.其他命令
復制代碼 代碼如下:
grant dbadm on database to user bb
19
復制代碼 代碼如下:
select * from czyxx fetch first 1 rows only
20
復制代碼 代碼如下:
db2look –d ylbx –u db2admin –w –asd –a –e –o a.txt
21. 顯示當前用戶所有表
復制代碼 代碼如下:
list tables
22. 列出所有的系統表
復制代碼 代碼如下:
list tables for system
23. 查看表結構
復制代碼 代碼如下:
db2 describe select * from user.tables
24. 查看死鎖明細
復制代碼 代碼如下:
db2 get snapshot for locks on yourdatdabasename
用 df -k 命令看看是否有些文件系統沒有空間.
26、備份數據庫
#db2 backup db db name
備注:執行以上命令之前需要斷開數據庫連接
27、在線備份數據庫
復制代碼 代碼如下:
#db2 -v BACKUP DATABASE database name ONLINE TO path WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING
28、恢復數據庫
復制代碼 代碼如下:
#db2 restore db source db name
29、在線恢復數據庫
復制代碼 代碼如下:
#db2 RESTORE DB database name TO db path LOGTARGET logpath WITHOUT PROMPTING
#db2 ROLLFORWARD DB database name TO END OF LOGS AND STOP …
30、導出數據文件
復制代碼 代碼如下:
#db2move db name export
[-sn 模式名稱,一般為 db2admin]
[-tn 表名,多個之間用逗號分隔]
31、導入數據文件
復制代碼 代碼如下:
#db2move db name import
32、獲取 db2 數據庫管理配置環境信息
復制代碼 代碼如下:
#db2 get dbm cfg
33、. 獲取 db2 某個數據庫數據庫管理配置環境信息
復制代碼 代碼如下:
#db2 get db cfg for db name
或者:連接至某個數據庫以后執行 db2 get db cfg
34、更改 db2 日志空間的大小
備注:以下命令為了防止 db2 數據庫過份使用硬盤空間而設,僅用于開發者自己機器上的 db2,如果是服務器,則參數需要修改。
復制代碼 代碼如下:
#db2 UPDATE DB CFG FOR db name USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600;
如果頁大小是 4KB,則以上命令創建 3 個 100M 的日志文件,占用 300MB 硬盤空間。25600*4KB=102400KB。
35、創建臨時表空間
復制代碼 代碼如下:
#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE D:\DB2_TAB\STMASPACE.F1 10000)
EXTENTSIZE 256
36、獲取數據庫管理器的快照數據
復制代碼 代碼如下:
#db2 –v get snapshot for dbm
37、顯示進行程號
復制代碼 代碼如下:
#db2 list applications show detail
38、更改 db2 日志空間的大小
備注:以下命令為了防止 db2 數據庫過份使用硬盤空間而設,僅用于開發者自己機器上的 db2,如果是服務器,則參數需要修改。
# db2 UPDATE DB CFG FOR db name USING logretain OFF logprimary 3 logsecond 2 logfilsiz 25600;
如果頁大小是 4KB,則以上命令創建 3 個 100M 的日志文件,占用 300MB 硬盤空間。25600*4KB=102400KB。
39、創建臨時表空間
復制代碼 代碼如下:
#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY DATABASE USING (FILE D:\DB2_TAB\STMASPACE.F1 10000) EXTENTSIZE 256
40、創建表空間
rem 創建緩沖池空間 8K
復制代碼 代碼如下:
#db2 connect to gather
#db2 CREATE BUFFERPOOL STMABMP IMMEDIATE SIZE 25000 PAGESIZE 8K
rem 創建表空間:STMA
rem 必須確認路徑正確
rem D:\DB2Container\Stma
#db2 drop tablespace stma
#db2 CREATE REGULAR TABLESPACE STMA PAGESIZE 8 K MANAGED BY SYSTEM USING (D:\DB2Container\Stma) EXTENTSIZE 8 OVERHEAD 10.5 PREFETCHSIZE 8 TRANSFERRATE 0.14 BUFFERPOOL STMABMP DROPPED TABLE recovery OFF
#db2 connect reset
41、將暫掛的數據恢復到前滾狀態
復制代碼 代碼如下:
#db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE NORETRIEVE
42、備份表空間
復制代碼 代碼如下:
#BACKUP DATABASE YNDC TABLESPACE (USERSPACE1) TO D:\temp WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING
43、創建 db2 工具數據庫
復制代碼 代碼如下:
#db2 create tools catalog systools create new database toolsdb
44、如何進行增量 / 差量備份
增量:上一次完整備份至本次備份之間增加的數據部分;
差量(delta):上次備份以來(可能是完整備份、增量備份或者差量備份)至本次備份之間增加的數據部分;
45、更新所有表的統計信息
復制代碼 代碼如下:
#db2 -v connect to DB_NAME
#db2 -v select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes
#db2 -v reorgchkupdate statistics on table all
#db2 -v select tbname, nleaf, nlevels, stats_timefrom sysibm.sysindexes
#db2 -v terminate
46、對一張表運行統計信息
復制代碼 代碼如下:
#db2 -v runstatson table TAB_NAMEand indexes all
47、查看是否對數據庫執行了 RUNSTATS
復制代碼 代碼如下:
#db2 -v select tbname, nleaf, nlevels,stats_timefrom sysibm.sysindexes
48、更改緩沖池的大小
緩沖池中,當 syscat.bufferpools 的 npages 是 - 1 時,由數據庫的配置參數 bufferpage 控制緩沖池的大小。
將 npages 的值更改為 - 1 的命令:
#db2 -v connect to DB_NAME
#db2 -v select * from syscat.bufferpools
#db2 -v alter bufferpoolIBMDEFAULTBP size -1
#db2 -v connect reset
#db2 -v terminate
更改數據庫配置參數 BufferPages 的命令如下:
#db2 -v update db cfgfor dbnameusing BUFFPAGE bigger_value
#db2 -v terminate
49、看數據庫監視內容列表
復制代碼 代碼如下:
#db2 -v get monitor switches
50、打開某個數據庫監視內容
復制代碼 代碼如下:
#db2 -v update monitor switches using bufferpoolon
51、獲取數據庫快照
復制代碼 代碼如下:
#db2 -v get snapshot for all databases snap.out
#db2 -v get snapshot for dbm snap.out
#db2 -v get snapshot for all bufferpools snap.out
#db2 -v terminate
52、重置數據庫快照
復制代碼 代碼如下:
#db2 -v reset monitor all
53、計算緩沖池命中率
理想情況下緩沖池命中率在 95% 以上,計算公式如下:
(1 -((buffer pool data physical reads + buffer pool index physical reads)
/(buffer pool data logical reads + pool index logical reads))) *100%
54、創建 db2 實例
#db2icrt 實例名稱
55、刪除 db2 實例
#db2idrop 實例名稱
56、設置當前 db2 實例
#set db2intance=db2
57、顯示 db2 擁有的實例
#db2ilist
58、恢復離線增量備份數據庫的命令
復制代碼 代碼如下:
#DB2 RESTORE DATABASE YNDC INCREMENTAL AUTOMATIC FROM D:\backup\autobak\db2 TAKEN AT 20060314232015
59、創建樣本數據庫
在 unix 平臺,使用:
#sqllib/bin/db2sampl path
在 windows,os/ 2 平臺,使用:db2sampl e,e 是可選參數,指定將創建數據庫的驅動器
60、設置聯合數據庫為可用(默認聯合數據庫不可用)
復制代碼 代碼如下:
#db2 update dbm cfg using federated yes
61、列出數據庫中所有的表
#db2 list tables
62、數據遷移方法 1
export 腳本示例
復制代碼 代碼如下:
#db2 connect to testdb user test password test
#db2 export to aa1.ixf of ixf select * from table1
#db2 export to aa2.ixf of ixf select * from table2
#db2 connect reset
import 腳本示例
復制代碼 代碼如下:
#db2 connect to testdb user test password test
#db2 load from aa1.ixf of ixf replace into table1 COPY NO without prompting
#db2 load from aa2.ixf of ixf replace into table2 COPY NO without prompting
“db2 數據庫常用操作命令總結”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注丸趣 TV 網站,丸趣 TV 小編將為大家輸出更多高質量的實用文章!