⑴ 如何對db2中的資料庫進行數據分析
1、 打開命令行窗口
#db2cmd
2、 打開控制中心
# db2cmd db2cc
3、 打開命令編輯器
db2cmd db2ce
=====操作資料庫命令=====
4、 啟動資料庫實例
#db2start
5、 停止資料庫實例
#db2stop
如果你不能停止資料庫由於激活的連接,在運行db2stop前執行db2
force application all就可以了 /db2stop force
6、 創建資料庫
#db2 create db
[dbname]
7、 連接到資料庫
#db2 connect to [dbname] user [username] using
[password]
8、 斷開資料庫連接
#db2 connect reset
9、 列出所有資料庫
#db2 list
db directory
10、 列出所有激活的資料庫
#db2 list active databases
11、
列出所有資料庫配置
#db2 get db cfg
12、 刪除資料庫
#db2 drop database [dbname]
(執行此操作要小心)
如果不能刪除,斷開所有資料庫連接或者重啟db2
=========操作數據表命令==========
13、 列出所有用戶表
#db2 list tables
14、列出所有系統表
#db2 list tables for
system
15、列出所有表
#db2 list tables for all
16、 列出系統表
#db2 list
tables for system
17、列出用戶表
#db2 list tables for user
18、 列出特定用戶表
#db2 list tables for schema [user]
19、 創建一個與資料庫中某個表(t2)結構相同的新表(t1)
#db2 create table t1 like t2
20、 將一個表t1的數據導入到另一個表t2
#db2 "insert
into t1 select * from t2"
21、 查詢表
#db2 "select * from table name where
..."
22、 顯示表結構
#db2 describe table tablename
23、 修改列
#db2
alter table [tablename] alter column [columname] set data type varchar(24)
======腳本文件操作命令=======
24、 執行腳本文件
#db2 -tvf scripts.sql
25、幫助命令
* 查看命令幫助
#db2 ? db2start
* 查看錯誤碼信息
#db2 ? 22001
* memo:
詳細命令請使用"db2 ? <command>"進行查看。
=========================
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
===================================================
一、載入數據:
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 兩個庫如何進行某張表的數據同步
DB2中好像沒有類似的功能,也沒用到相關的中間件。
想到的慧逗做法就是寫一個小前激賣程鉛鬧序(什麼語言實現無所謂,例如Python?)
這個程序運行在A機上,然後訪問B主機的表,把數據更新到A主機的表中。
然後放在Windows的任務計劃中,定期運行此程序。
在Python中,可以用pyodbc經過DB2的客戶端遠程訪問主機上的資料庫。
偽代碼:
import pyodbc
def synchronize():
connA = pyodbc.connect("Driver={IBM DB2 ODBC DRIVER};DATABASE=A;HOSTNAME=A'S IP;PORT=A'S PORT;PROTOCOL=TCPIP;UID=USER;PWD=PASSWORD;")
connB = pyodbc.connect("Driver={IBM DB2 ODBC DRIVER};DATABASE=B;HOSTNAME=B'S IP;PORT=B'S PORT;PROTOCOL=TCPIP;UID=USER;PWD=PASSWORD;")
cursA = connA.cursor()
cursB = connB.cursor()
cursB.execute("select * from sometable")
params = []
for row in cursB:
params.append(row)
insert_sql = '''insert into sometable(col1,col2)
values(?,?);
'''
cursA.execute("delete from sometable")
cursA.executemany(insert_sql, params)
connA.commit()
connA.close()
connB.close()
if __name__ == '__main__':
synchronize()
⑶ 如何建立DB2分區資料庫
1) 了解分區定義
分區定義可以從節點配置文件(db2nodes.cfg)得到,其位於實例所有者的主目錄中,它包含一些配置信息,告訴 DB2 有哪些伺服器參與分區資料庫環境的實例。分區資料庫環境中的每個實例都有一個 db2nodes.cfg 文件。對於每個參與實例的伺服器,db2nodes.cfg 文件必須包含一個條目。當創建實例時,會自動創建 db2nodes.cfg 文件並對擁有實例的伺服器添加條目。這里我們假設有4個分區。
2) 創建資料庫
create db dpfdb;
默認會創建3個分區組IBMCATGROUP(只在0號分區上)
IBMTEMPGROUP ,IBMDEFAULTGROUP(在所有分區上),如果用戶沒有創建其他分區組,所創建的表空間會默認放在IBMDEFAULTGROUP上
3) 創建分區組
我們在 1到3號分區建立一個分區組
CREATE DATABASE PARTITION GROUP USERGROUP ON DBPARTITIONNUMS(1,2,3);
4) 創建表空間
CREATE TABLESPACE TS IN USERGROUP MANAGED BY DATABASE USING (file '/DB2containers/TScontainer $N' 10000)
有4個containers被創建
/DB2containers/TScontainer0 - on DATABASE PARTITION 0
/DB2containers/TScontainer1 - on DATABASE PARTITION 1
/DB2containers/TScontainer2 - on DATABASE PARTITION 2
/DB2containers/TScontainer3 - on DATABASE PARTITION 3
5) 創建表
CREATE TABLE DPFTABLE (ID INTEGER NOT NULL,
NAME CHAR(20) NOT NULL)
IN TS
PARTITIONING KEY (ID) USING HASHING;
⑷ DB2是什麼
DB2
開放分類: 資料庫、互聯網、電腦、技術、計算機
IBM公司研製的一種關系型資料庫系統。DB2主要應用於大型應用系統,具有較好的可伸縮性,可支持從大型機到單用戶環境,應用於OS/2、Windows等平台下。 DB2提供了高層次的數據利用性、完整性、安全性、可恢復性,以及小規模到大規模應用程序的執行能力,具有與平台無關的基本功能和SQL命令。DB2採用了數據分級技術,能夠使大型機數據很方便地下載到LAN資料庫伺服器,使得客戶機/伺服器用戶和基於LAN的應用程序可以訪問大型機數據,並使資料庫本地化及遠程連接透明化。 它以擁有一個非常完備的查詢優化器而著稱,其外部連接改善了查詢性能,並支持多任務並行查詢。 DB2具有很好的網路支持能力,每個子系統可以連接十幾萬個分布式用戶,可同時激活上千個活動線程,對大型分布式應用系統尤為適用。
DB2是IBM出口的一系列關系型資料庫管理系統,分別在不同的操作系統平台上服務。雖然DB2產品是基於UNIX的系統和個人計算機操作系統,在基於UNIX系統和微軟在windows系統下的Access方面,DB2追尋了ORACLE的資料庫產品。
除了它可以提供主流的OS/390和VM操作系統,以及中等規模的AS/400系統之外,IBM還提供了跨平台(包括基於UNIX的LINUX,HP-UX,Sun Solaris,以及SCO UnixWare;還有用於個人電腦的OS/2操作系統,以及微軟的Windows 2000和其早期的系統)的DB2產品。DB2資料庫可以通過使用微軟的開放資料庫連接(ODBC)介面,Java資料庫連接(JDBC)介面,或者CORBA介面代理被任何的應用程序訪問。
7月14日,IBM全球同步發布了一款具有劃時代意義的資料庫產品——DB2 9(「DB2」是IBM資料庫產品系列的名稱)。而這款新品最大特點即是率先實現了可擴展標記語言(XML)和關系數據間的無縫交互,而無需考慮數據的格式、平台或位置。
DB2的前世今生和未來:
對於每個最終站在獎台上淚水盈面的奧運冠軍來說,為此刻他或她也許已經付出了5年甚至10年的艱苦努力。相比這些人類的冠軍們,這個世界還有另外一種意義上的冠軍,它們雖沒有淚水,卻依然在歷史上留下了非凡的軌跡—DB2就是這類冠軍中的一員。這個資料庫領域里當之無愧的冠軍,已用了足足25年來描繪它的軌跡。
紀念IBM DB2的誕生
IBM DB2已經25周歲拉!DB2回顧與展望
專家點評DB2:
微軟人物談DB2發展:成功是必然的
DB2的成功案例:
DB2在各個行業得到了廣泛的應用。
【視頻】IBM DB2 9 pureXml在稅務行業的應用案例
【視頻】IBM DB2 9 pureXml在醫療行業的應用案例
【視頻】IBM DB2 9 pureXml在政府行業的應用案例
DB2的最新產品:
DB2 9資料庫免費版下載地址
DB2 9數據伺服器發展3部曲
⑸ 如何通過DB2 connect連接DB2/400資料庫
在客戶端上訪問db/400有兩種方法. 一是通過as/400所提供的client access, 二是通過db2 connect產品(該產品被包含在db2 ESE版本中,也可單獨訂購)。有兩種方法來配置db2 connect從而達到訪問db2/400的目的,一是通過db2 connect帶的客戶端配置幫助(client configuration assistant), 該程序是GUI界面, 易於使用,這里就不詳述了.二是通過db2命令行的命令, 這里主要介紹了如何使用db2命令行的方式來訪問db2/400
1.用OS/400命令WRKRDBDIRE查看已定義資料庫。
如:S653924B *LOCAL
2.在安裝了DB2 Connect產品的PC的命令行窗口,用以下命令連接DB2/400資料庫
db2 catalog tcpip node node400 remote as400ip server 446
db2 catalog dcs db570 as s653924b
db2 catalog db db570 at node node400 authentication dcs
注意:
其中: as400ip是as/400的IP地址;
446是埠號;
s653924b是上圖所列的資料庫名稱;
3.連接DB2/400資料庫
db2 connect to db user 用戶名
輸入 xiaoqing 的當前密碼
⑹ 如何通過DB2連接遠程伺服器端的資料庫
方法如下:
1、按WIN+Q組合鍵打開搜索框,輸入"升茄遠程桌面連接",點擊下方提示的遠程桌面連接
2、在打開的連接吵培察窗口,輸入遠程機器的計算機名或IP地址,和埠
3、系統可能會中帆有一些提示,點擊確認。
4、登入遠程主機後,輸入遠程主機的用戶名和密碼即可
⑺ 如何用DB2的資料庫聯合功能將mysql的表映射到DB2
同等答案
⑻ db2的sqc文件里怎麼連接資料庫
1.首先把自己編輯好的SQC文件(如:test.sqc)放在指定的目錄下。
2.正式開始編譯前,需要和DB2資料庫(如:TESTDB)建立連接。
以linux環境為例,在命令行狀態下,輸入:db2
connect
to
TESTDB
3.調用DB2的prep命令對SQC文件進行預編譯,用來生成C文件。
在命令行狀態下,輸入:db2
prep
test.sqc
BINDFILE
package
using
bindtest
說明:
上述命令中的「BINDFILE」是用來指定在做預編譯的同時生成bind文件的(如:bindtest.bnd)
上述命令中的「package
using
bindtest」是用來指定將要寫入到DB2的系統表中的package信息的名稱(如:bindtest)。
bind文件里記載的是用來寫入到package信息的數據。
4.調用DB2的bind
命令從上一步生成的bind文件中讀出必要的數據寫入到上一步指定名稱的package信息中。
並可以給這條信息指定訪問許可權。
以linux環境為例,在命令行狀態下,輸入:db2
bind
ConnTEST.bnd
GRANT
PUBLIC
5.到目前為止可以說與DB2相關的所有預編譯就基本完成了,我們需要的C文件(如:test.c)也整成生成了,那個bind文件後邊暫時不會用到了。
下來就可以調用CC或GCC之類的C代碼編譯器對這個C文件進行編譯,基本的過程是test.c→test.o→test。這樣我們就可以執行這個最終的可實行程序了。
⑼ db2 資料庫連接問題
請問你1、 db2set DB2COMM=TCPIP 2、 db2 update dbm cfg using svcename DB2_db2inst1
這兩個配置了嗎