IT技(ji)術互動交流平台

梦之城APP官网

來源︰IT165收集  發布日(ri)期︰2020-02-24 13:55:16

db2命令
給db2用(yong)賦(fu)權的命令
db2 grant dbadm on database to user dsp
#導出數據庫結構gou)嶸cheng)一(yi)個faldb20160224.sql文(wen)件
db2look -d udep -e -a -x -i dsp -w dsp -o dsp20160504.sql

導出所屬scheme︰dsp的所有表(biao)結構的命令如下
db2look -d tyfx -e -z dsp -o udep.ddl
語(yu)法: db2look -d DBname [-u Creator] [-s] [-g] [-a] [-t Tname1 Tname2...TnameN]

[-p] [-o Fname] [-i userID] [-w password]
db2look -d DBname [-u Creator] [-a] [-e] [-t Tname1 Tname2...TnameN]
[-m] [-c] [-r] [-x] [-l] [-f] [-o Fname] [-i userID] [
-w password]
db2look [-h]

-d: 數據庫名(ming)︰這(zhe)必須指(zhi)定

-a: 為所有創建者生成(cheng)統計信(xin)息
-c: 不要生成(cheng)模擬的 COMMIT 語(yu)句(ju)
-e: 抽取(qu)復制數據庫所需要的 DDL 文(wen)件
-g: 使用(yong)圖形來顯示索(suo)引的頁取(qu)裝對
-h: 更詳細的幫助信(xin)息
-m: 在模擬方(fang)式下lue)誦db2look 實用(yong)程序
-o: 將輸出重(zhong)定向到給定的文(wen)件名(ming)
-p: 使用(yong)簡單(dan)文(wen)本格式
-r: 不要生成(cheng)模擬的 RUNSTATS 語(yu)句(ju)
-s: 生成(cheng) postscript 文(wen)件
-t: 生成(cheng)指(zhi)定表(biao)的統計信(xin)息
-x: 生成(cheng)“權限”語(yu)句(ju) DDL
-l: 生成(cheng)數據庫布局︰hang)jie)點組、緩沖池和表(biao)空間
-f: 抽取(qu)配置參(can)數和環境變量
-u: 創建者 ID︰若 -u 和 -a 都未指(zhi)定,則將使用(yong) $USER
-i: 注(zhu)冊到數據庫駐留的服(fu)務器(qi)時所使用(yong)的用(yong)戶 ID
-w: 注(zhu)冊到數據庫駐留的服(fu)務器(qi)時所使用(yong)的mu)諏br />#生成(cheng)faldb20160224.sql文(wen)件之後要執行這(zhe)個文(wen)件
db2 -tvf faldb20160224.sql

db2 [option ...] [db2-command sql-statement
[? [phrase message sqlstate class-code]]]
選項︰-a, -c, -e{cs}, -finfile, -lhistfile, -n, -o, -p, -rreport, -s, -t,
-td;, -v, -w, -x, -zoutputfile。

選項 說明 缺(que)省設置
------ ---------------------------------------- ---------------
-a 顯示 SQLCA OFF
-c 自(zi)動落(luo)實 ON
-e 顯示 SQLCODE/SQLSTATE OFF
-f 讀(du)取(qu)輸入文(wen)件 OFF
-l 將命令記(ji)錄到歷史文(wen)件中 OFF
-n 除去換行字符 OFF
-o 顯示輸出 ON
-p 顯示 db2 交互式提示 ON
-r 將輸出報(bao)告保存到文(wen)件 OFF
-s 在命令出錯時停止(zhi)執行 OFF
-t 設置語(yu)句(ju)終止(zhi)字符 OFF
-v 回送當前(qian)命令 OFF
-w 顯示 FETCH/SELECT 警告信(xin)息 ON
-x 不打印(yin)列標題 OFF
-z 將所有輸出保存到輸出文(wen)件 OFF

注(zhu)意︰
使用(yong) DB2OPTIONS 環境變量定制選項缺(que)省值。
緊跟選項字母後的減號(hao)(-)使該選項關閉。
在交互方(fang)式或文(wen)件輸入方(fang)式下使用(yong) UPDATE COMMAND OPTIONS
更改選項設置。

 

select 'db2 "export to 'table_name'.ixf of ixf select * from CUSTRISK.'table_name'"' from sysibm.TABLES where TABLE_SCHEMA='CUSTRISK'


select 'db2 "import from 'table_name'.ixf of ixf commitcount 500 messages msg.out insert into CUSTRISK.'table_name'"' from sysibm.TABLES where TABLE_SCHEMA='CUSTRISK'


從數據庫里(li)在一(yi)張表(biao)中隨機的抽取(qu)10條記(ji)錄的db2SQL 語(yu)句(ju)是︰
select * from moiamds.p_mon_dsm_cdt order by rand() FETCH FIRST 10 ROWS ONLY
啟動db2數據庫的命令是︰ db2start
關閉db2數據庫的命令是︰ db2stop

命令提示符里(li)連(lian)接db2數據庫的命令是︰ db2 connect to moia user moiamds using moiamds

導出一(yi)張表(biao)里(li)的數據的命令是︰db2 "export to F:IMPp_mon_dsm_cdt.txt of del select * from MOIAMDS.P_MON_DSM_CDT"
IMPORT FROM employee.ixf OF IXF REPLACE_CREATE INTO employee_copy;
(REPLACE_CREATE 這(zhe)個參(can)數表(biao)示如果employee_copy數據表(biao)已經(jing)存在,則先清空數據表(biao)中的數據然後將ixf 中的數據導入,如果employee_copy 數據表(biao)不存在,則會先建立該表(biao),然後將數據導入。)
導入數據到一(yi)張表(biao)中的命令式︰db2 "import from tg.txt of del insert into MOIAMDS.P_MON_TAB_ONE"


如果對一(yi)張表(biao)進行操(cao)作的時候報(bao)因為表(biao)不活動,所以不能對表(biao)操(cao)作,解決方(fang)法︰reorg table ---表(biao)名(ming);


如果報(bao)事務日(ri)志已滿的解決辦法
DB2COPY2->命令行處理工具(ju)->命令行處理器(qi)—> db2 get db cfg for mds
db2 update db cfg for mds using logfilsiz 6000

db2顯示表(biao)空間的語(yu)句(ju)︰db2 list tablespaces show detail


去基線導出數據的方(fang)法︰197.3.6.1上去導出數據的方(fang)法︰
moiase@/home/mds/file/tmp> db2 connect to moia user moiamds using moiamds
moiase@/home/mds/file/tmp> db2 "export to P_DQM_SERVICE_CASE_TAB.ixf of ixf select * from moiamds.P_DQM_SERVICE_CASE_TAB"
導出成(cheng)功! 把它(ta)用(yong)在本地用(yong)E:JDK API ftp 197.3.6.1
輸入user︰moiase pwd︰moiase
連(lian)接成(cheng)功 ; ftp>get P_DQM_SERVICE_CASE_TAB.ixf 回車 現在自(zi)己的計算機e:盤(pan)JDK API 下就存在了(liao)P_DQM_SERVICE_CASE_TAB.ixf文(wen)件

查看db2的所有的連(lian)接︰db2 list applications 斷開(kai)所有的連(lian)接︰db2 force applications all


db2 去執行xin)渲夢wen)件的方(fang)法︰
如︰在D︰hao)探ㄒyi)個myscript.txt文(wen)件輸入︰
!db2start;
connect to moia user moiamds using moiamds;
select * from emp;
terminate;
就可以在命令提示符里(li)輸入db2cmd 然後輸入︰db2 -tf D:myscript.txt

查看db2的數據庫分區方(fang)法︰
db2 list node directory //查詢編目(mu)錄(節(jie)點)
db2 list db directory //查詢編目(mu)錄下邊具(ju)體有哪些(xie)庫
db2 connnect to mds user mdsuser using mdsuser //連(lian)接數據庫

 

 

創建備份(fen)表(biao)的sql語(yu)句(ju)︰
create table new_table as (select * from old_table) definition only;

備份(fen)數據︰insert into new_table select * from old_table;

excel 數據導入到DB2數據庫的方(fang)法1(先把excel文(wen)件另存為.csv文(wen)件,放到d盤(pan),然後執行下面的sql)
import from "d:/test.csv" of del messages "d:/msg.out" insert into M_CM_PROD_PRODUCT_ATTRIBUTE;
---------------------------------------------------------------------------------------------------------------------------------------------------------
查看db2數據庫最大(da)連(lian)接數的命令︰
查看當前(qian)活動的實例(li)的命令︰ db2ilist
查看當前(qian)活動的實例(li)下的數據庫的命令︰db2 list db directory
創建一(yi)個新的實例(li)下創建數據庫的命令︰db2icrt newinstance(實例(li));
刪除實例(li)的命令︰ db2idrop instancename;
set db2instance = 實例(li);
db2start;
db2 create database 數據庫名(ming)
連(lian)接到數據庫後,用(yong)db2 get db cfg for database查看一(yi)下maxappls和avg_appls的數值。
用(yong)db2 update db cfg for database using maxappls number試試把maxappls設置得更大(da)些(xie)。
-----------------------------------------------------------------
db2給數據庫更改表(biao)名(ming)的命令︰rename table rep_data_04 to rep_data_04_20130528
------------------------------------------------------------------------------
linux系統下重(zhong)啟db2數據庫的命令
db2 force applications all
db2stop
db2start
db2 backup db sample on all dbpartitionnums
重(zhong)啟成(cheng)功---------------------------------------
---------db2只能增加字段的長度(du)(varchar和另外兩個)不能dorp掉字段,只能drop掉表(biao),新建表(biao)導入數據
修改字段的命令︰alter table log_data_11 ALTER nm_rep SET DATA TYPE varchar(200);
-----------------統計字段的出現相同值dang)男惺ql---------------
select count(formula) as sum, formula from code_formula group by formula


1. 從yong)畬翱詿唇ㄒyi)個名(ming)為newinst 新實例(li)
db2icrt newinst
2. 在這(zhe)個新實例(li)newinst 中,使用(yong)默認值創建一(yi)個名(ming)為newdb 的數據庫
set db2instance=newinst
db2start
db2 create database newdb
3. 列出服(fu)務器(qi)上所有的實例(li)
db2ilist
4. 轉換到DB2 實例(li),並(bing)確認轉換成(cheng)功
set db2instance=db2
db2 get instance
5. 把dbm cfg 的FEDERATED 參(can)數值由NO 改為YES 並(bing)驗(yan)證修改的結果。
db2 update dbm cfg using FEDERATED YES
db2 force applications all
db2 terminate
db2stop
db2start
db2 get dbm cfg
6. 使用(yong)登錄操(cao)作系統的用(yong)戶名(ming)和密碼連(lian)接SAMPLE 數據庫
db2 connect to sample user <userID> using <psw>
7. 查看當前(qian)實例(li)上有多少應用(yong)程序在運行
db2 list applications show detail
8. 打開(kai)另一(yi)個DB2 命令窗口,不指(zhi)明用(yong)戶名(ming)和密碼連(lian)接到SAMPLE 數據庫。然後查看當前(qian)有
多少應用(yong)連(lian)接到該實例(li)上。
db2 connect to sample
db2 list applications
9. 強制關閉一(yi)個DB2 命令窗口
db2 force <application> (<application> 填入程序“b2bp.exe”的句(ju)柄,該值由db2 list applications命令獲得)
10. 刪除實例(li)newins
db2idrop newinst
11. 刪除並(bing)重(zhong)新創建DAS,然後啟動DAS。
db2admin stop
db2admin drop
db2admin create
db2admin start
12. 在您的實例(li)中設置DB2 注(zhu)冊變量DB2COMM,使其值為tcpip,npipe。
db2set db2comm=tcpip,npipe
db2stop
db2start
13. 置空DB2COMM 注(zhu)冊變量
db2set db2comm=
db2stop
db2start
14. 檢查當前(qian)db cfg 的LOGSECOND 參(can)數,然後將其值設置成(cheng)5 並(bing)驗(yan)證新值
db2 connect to sample
db2 get db cfg
db2 update db cfg using LOGSECOND 5
db2 get db cf
------------------db2(標識du)校┬寫唇ㄒyi)張表(biao),這(zhe)張表(biao)的一(yi)個字段從100開(kai)始並(bing)且以100增加----------
CREATE TABLE subscriber(subscriberID INTEGER GENERATED ALWAYS AS
IDENTITY (START WITH 100
INCREMENT BY 100),
firstname VARCHAR(50),
lastname VARCHAR(50) )
在這(zhe)個例(li)子中,列subscriberID 是INTEGER 類型,被定義為標識du)脅bing)且是常規定義。其值將
從100 開(kai)始,按(an)增量100 增加
-------序列對象產(chan)生整(zheng)個數據庫的一(yi)個唯一(yi)值。跟標識du)脅灰yi)樣的是,序列獨(du)立于數據表(biao)。下面提供一(yi)個例(li)子︰
CREATE TABLE t1 (salary int)
CREATE SEQUENCE myseq
START WITH 10
INCREMENT BY 1
NO CYCLE
INSERT INTO t1 VALUES (nextval for myseq)
INSERT INTO t1 VALUES (nextval for myseq)
INSERT INTO t1 VALUES (nextval for myseq)
SELECT * FROM t1
SALARY
------------------------------------------------------
10
11
12
3 record(s) selected.
SELECT prevval for myseq FROM sysibm.sysdummy1
1
----------------------------------------------------------------------------------------------------------------------------------
db2move 工具(ju)
Export,Import 和Load 每次都只對一(yi)個表(biao)進行操(cao)作。但是您若使用(yong)它(ta)們來寫一(yi)段腳本,就可對
一(yi)個數據庫中的所有的表(biao)進行操(cao)作。另一(yi)個工具(ju)db2move 可以更方(fang)便(bian)地完成(cheng)同樣的工作。db2move
工具(ju)只兼(jian)容IXF 格式的文(wen)件,而且IXF 文(wen)件的名(ming)字由db2move 自(zi)動生成(cheng)。下面的例(li)子展示怎麼樣使
用(yong)db2move 並(bing)結合export 和import 選項來對SAMPLE 數據庫進行整(zheng)體操(cao)作。
導出
db2move faldb export -u slsadmin -p slsadmin
導入
db2move faldb import -u slsadmin -p slsadmin
導出固(gu)定schema的語(yu)句(ju)如下
db2move tyfx(db) export -sn dsp(schema) -u dsp -p dsp
----------------------------------------------------db2load----------------------------------------------------------------
下面的例(li)子將IXF 格式的employee.ixf 文(wen)件里(li)面的所有數據導入到表(biao)employee_copy。
REPLACE 是LOAD 工具(ju)所提供的眾多選項之一(yi)。它(ta)表(biao)示將替換employee_copy 表(biao)中的所有數據。
LOAD FROM employee.ixf OF IXF REPLACE INTO employee_copy
執行完上面的命令後,該表(biao)進入檢查暫掛狀(zhuang)態。這(zhe)時您必須運行SET INTEGRITY 命令來檢查數據的一(yi)致性(xing),下面是執行SET INTEGRITY 的例(li)子︰
SET INTEGRITY FOR employee_copy ALL IMMEDIATE UNCHECKE
----------------------------------------------------給用(yong)戶賦(fu)權的命令--------------------------------------------------------
DBADM(DataBase ADMinistrator)是數據庫的超級用(yong)戶。它(ta)不是實例(li)層次的權限,所以它(ta)沒有xing)誶qian)一(yi)節(jie)中列出,要想(xiang)授予DBADM 權限,使用(yong)GRANT 語(yu)句(ju),如下面的例(li)子所示︰
connect to sample
grant DBADM on database to user <userid>
--------------如果您想(xiang)要備份(fen)udep 數據庫到路徑/home/db2inst1/backup,您可以在DB2 Window/Linux 命令行解釋器(qi)中執行這(zhe)條命令------
db2 BACKUP DB sample TO C:BACKUPS;
例(li)如︰ db2 backup db udep to /home/db2inst1/backup/ compress
備份(fen)的文(wen)件結構如下

備份(fen)完成(cheng)之後,如果要發生重(zhong)大(da)災難,如︰DB2 DROP DATABASE UDEP
然後數據庫就不存在了(liao),進行數據恢zhi)慈縵攏/p>


命令如下︰db2 restore db udep incremental from /home/db2inst1/backup taken at 20160525204710
----------查詢的db2的版本的命令------------------------------------------------------------
SELECT service_level, fixpack_num FROM TABLE(sysproc.env_get_inst_info())as INSTANCEINFO
-------------------------------linux上新安裝的DB2---------------------------------------------------
db2查看修改端(duan)口號(hao)

db2安裝完成(cheng)後,tcp/ip連(lian)接端(duan)口默認為50000,可通(tong)過下面的方(fang)法確認︰

1、使用(yong)命令 db2 get dbm cfg
找到"SVCENAME" 查找到TCP/IP 服(fu)務名(ming)
www.2cto.com
2、到系統配置文(wen)件里(li)找到service name 對應的 port number
windows︰查看 c:windowssystem32driversetcservices
aix︰ 查看 /etc/services
如下︰
DB2_DB2 60000/tcp
DB2_DB2_1 60001/tcp
DB2_DB2_2 60002/tcp
DB2_DB2_END 60003/tcp
db2c_DB2 50000/tcp
-----------------------------------------------------------
1,先切換到db2inst1用(yong)戶下,
su - db2inst1
2,查看當前(qian)活動的實例(li)
db2ilist
3,切換到當前(qian)實例(li)下,
set db2instance = 實例(li)
4,在該實例(li)下創建數據庫
----DB2 數據庫一(yi)旦創建就無法再修改字符集的編碼方(fang)式了(liao)。
----可以在創建的時候指(zhi)定字符集,如下指(zhi)定為GBK:
----create db SRCDB using codeset GBK territory CN
db2 create database custrisk
5,為該數據庫創建用(yong)戶和密碼(用(yong)戶名(ming)和密碼不要超過8個字符,用(yong)戶名(ming)不能大(da)寫)
useradd custrisk
passwd custrisk 輸入密碼︰custrisk
創建完成(cheng)後創建schema,命令如下
CONNECT TO UDEP USER dsp;
------------------------------------------------
-- DDL Statements for Schemas
------------------------------------------------
CREATE SCHEMA "DSP " AUTHORIZATION "DSP ";
---------------創建完成(cheng)之後必須從起(qi)server才能夠(gou)用(yong)創建的用(yong)戶連(lian)接該數據庫
6,創建緩沖池
---先連(lian)接db2
db2 connect to custrisk
db2 create bufferpool udeptmp32k all nodes size 9060 pagesize 32k //100*1024%32
7,創建表(biao)空間
db2 "create regular tablespace eastsp pagesize 32k managed by database using(file '/home/db2inst1/east' 5g) bufferpool udeptmp32k"
@命令創建臨時表(biao)空間
db2 "create USER TEMPORARY TABLESPACE TEMPSPACE2 pagesize 32k managed by database using(file '/home/db2inst2/faldbtemp' 2g) bufferpool faltmp32k"
@命令創建系統表(biao)空間
db2 "create system TEMPORARY TABLESPACE TEMPSPACE3 pagesize 32k managed by database using(file '/home/db2inst2/faldbtemp3' 2g) bufferpool faltmp32k"

8,把表(biao)空間賦(fu)給用(yong)戶
db2 grant use of tablespace TEMPSPACE3 to user slsadmin
9,沒有什(shi)麼默認的表(biao)空間
創建表(biao)的時候必須指(zhi)定如︰
create table test(userid varchar(5),username varchar(20)) in custrisk
-------------------------------------------------------------------------------------------------------------------

創建緩沖池︰create bufferpool dsppool size 1000 pagesize 32k;
create tablespace newtbs pagesize 32k managed by system using (file '/home/db2' 300M) bufferpool dsppool
db2 list tablespaces;
db2 list tablespaces contraners for 4 {4為上邊查出的id}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


=================================================DB2創建觸發器(qi)的例(li)子===================================================
-- 建表(biao)語(yu)句(ju)
CREATE TABLE WANGZSTABLE (
ID INTEGER NOT NULL,
NAME VARCHAR(20) NOT NULL,
AGE VARCHAR(20) NOT NULL,
STATUS VARCHAR(10),
CREATETIME TIMESTAMP,
UPDATETIME TIMESTAMP,
SENDTIME TIMESTAMP
)

select * from wangzsTable;
insert into WANGZSTABLE(id,name,age) values(1,'wangzs1','26');
update WANGZSTABLE set status='4' where id=1;

--update 更新特定狀(zhuang)態 status=4
DROP TRIGGER "WANGZS_UPDATE";

CREATE TRIGGER WANGZS_UPDATE
AFTER UPDATE OF STATUS ON WANGZSTABLE
REFERENCING OLD AS OLDROW NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
IF(NEWROW.STATUS='4')
THEN
update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END IF;
END;

--update 更新特定id
DROP TRIGGER "WANGZS_UPDATE";

CREATE TRIGGER WANGZS_UPDATE
AFTER UPDATE OF STATUS ON WANGZSTABLE
REFERENCING OLD AS OLDROW NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
update wangzsTable set UPDATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;

--insert
DROP TRIGGER "WANGZS_INSERT";

CREATE TRIGGER WANGZS_INSERT
AFTER INSERT ON WANGZSTABLE
REFERENCING NEW AS NEWROW
FOR EACH ROW MODE DB2SQL
BEGIN ATOMIC
update wangzsTable set CREATETIME=CURRENT TIMESTAMP where id=NEWROW.id;
END;

=======================================================================================================================

 

Tag標簽︰數據庫  
  • 梦之城APP官网

About IT165 - 廣告服(fu)務 - 隱私聲(sheng)明 - 版權申(shen)明 - 免(mian)責(ze)條款 - 網站(zhan)地圖 - 網友(you)投稿 - 聯系方(fang)式
本站(zhan)內容來自(zi)于互聯網,僅供用(yong)于網絡(luo)技(ji)術學習,學習中請(qing)遵循相關法律法規
梦之城APP官网 | 下一页