DB2 常用命令大全【轉】

DB2 常用命令大全【轉】

 

db2 CREATE DATABASE froadmb ON /home/db2inst1 USING CODESET UTF-8 TERRITORY CN

COLLATE USING SYSTEM===>建庫

db2 get db cfg for dzsh===>查看數據庫配置

db2 -tf db2look.sql===>導入表結構

db2move froadmb import -l /$PWD 所在目錄===>批量導入表數據

db2set db2codepage=1386

db2 select * from syscat.tables where tabname = '表名'  =======查看庫中是否存在

某個表名(表名一定要全部大寫)
db2 rename table oldtable to newtable   ===========重命名錶名

db2 terminate

tar -xvf *.tar

jar -cvf MobileBank.jar *

tar -cvf 文件名.tar  需要打tar包的文件和目錄

ftp   bin模式

db2look -d databasebname -a -e -o fileName.sql  ===導出表結構
db2move databasename export   ===導出表數據
db2move databasename load -lo replace ===導入並替換表中原有數據

service network restart

方法一 

在控制中心的對象視圖窗口中,選擇所要導出表結構的數據表,按住Ctrl或Shift可多選,

單擊鼠標右鍵,選擇->生成DDL即可。 

方法二 

◆第一步:打開DB2的命令行工具,在DB2安裝目錄的BIN文件夾下新建一個文件夾data,並

且進入該目錄。 

創建該目錄: mkdir data  
進入該目錄: cd data 

◆第二步:導出表結構,命令行如下:  
db2look -d dbname -e -a -x -i username -w password -o ddlfile.sql  
  
執行成功之後,你會在剛纔新建的文件夾下找到該sql文件。 

◆第三步:導入數據,命令行如下:  
db2move databasename export -u username -p password 


至此,導出數據結束。 

2導出表中數據 

export to [path(例:D:"TABLE1.ixf)] of ixf select [字段(例: * or col1,col2,col3)]

from TABLE1; 

export to [path(例:D:"TABLE1.del)] of del select [字段(例: * or col1,col2,col3)]

from TABLE1; 

導入表的數據 

db2 "import from ***.del of del insert into 表名"

db2 "import from table28.ixf of ixf insert into SMS_SEND_HST"

load from [path(例:D:"TABLE1.ixf)] of ixf insert into TABLE1; 

load from [path(例:D:"TABLE1.ixf)] of ixf replace into TABLE1; // 裝入數據前,先

刪除已存在記錄 

load from [path(例:D:"TABLE1.ixf)] of ixf restart into TABLE1; // 當裝入失敗時,

重新執行,並記錄導出結果和錯誤信息 

import from [path(例:D:"TABLE1.ixf)] of ixf savecount 1000 messages [path

(例:D:"msg.txt)] insert into TABLE1;// 其中,savecount表示完成每1000條操作,記錄

一次. 

存在自增長字段的數據導入: 

load from [path(例:D:"TABLE1.ixf)] of ixf modified by identityignore insert into

TABLE1;// 加入modified by identityignore. 

解除裝入數據時,發生的檢查掛起: 

SET INTEGRITY FOR TABLE1 CHECK IMMEDIATE UNCHECKED; 

命令只對數據通過約束檢查的表有效,如果執行還不能解除,有必要檢查數據的完整性,是

否不符合約束條件,並試圖重新整理數據,再執行裝入操作. 

另外,對load和import,字面上的區別是:裝入和導入,但仍未理解兩者之間的區別. 

只是性能上load顯然優於import.(load 需要更多的權限)


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

=================================================================
一、常用命令

  1. 建立數據庫DB2_GCB

  CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB 
USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32

  2. 連接數據庫

  connect to sample1 user db2admin using 8301206

  3. 建立別名

  create alias db2admin.tables for sysstat.tables; 
CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS 
create alias db2admin.columns for syscat.columns; 
create alias guest.columns for syscat.columns;

  4. 建立表

  create table zjt_tables as 
(select * from tables) definition only; 
create table zjt_views as 
(select * from views) definition only;

  5. 插入記錄

  insert into zjt_tables select * from tables; 
insert into zjt_views select * from views;

  6. 建立視圖

  create view V_zjt_tables as select tabschema,tabname from zjt_tables;

    7. 建立觸發器

  CREATE TRIGGER zjt_tables_del 
AFTER DELETE ON zjt_tables 
REFERENCING OLD AS O 
FOR EACH ROW MODE DB2SQL 
Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr

(o.tabname,1,10))

  8. 建立唯一性索引

  CREATE UNIQUE INDEX I_ztables_tabname 
ON zjt_tables(tabname); 
9. 查看錶

  select tabname from tables 
where tabname='ZJT_TABLES';

  10. 查看列

  select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 類型,LENGTH as 長度 
from columns 
where tabname='ZJT_TABLES';

  11. 查看錶結構

  db2 describe table user1.department 
db2 describe "select * from user.tables "

  12. 查看錶的索引

  db2 describe indexes for table user1.department

  13. 查看視圖

  select viewname from views 
where viewname='V_ZJT_TABLES';

  14. 查看索引

  select indname from indexes 
where indname='I_ZTABLES_TABNAME';

15. 查看存貯過程

  SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15) 
FROM SYSCAT.PROCEDURES;

  16. 類型轉換(cast)

  ip datatype:varchar 
select cast(ip as integer)+50 from log_comm_failed

  17. 重新連接

  connect reset

  18. 中斷數據庫連接

  disconnect db2_gcb

  19. view application

  LIST APPLICATION;

  20. kill application

  FORCE APPLICATION(0); 
db2 force applications all (強迫所有應用程序從數據庫斷開)

  21. lock table

  lock table test in exclusive mode

  22. 共享

  lock table test in share mode

  23. 顯示當前用戶所有表

  list tables

  24. 列出所有的系統表

  list tables for system

 25. 顯示當前活動數據庫

  list active databases

  26. 查看命令選項

  list command options


27. 系統數據庫目錄

  LIST DATABASE DIRECTORY

  28. 表空間

  list tablespaces

  29. 表空間容器

  LIST TABLESPACE CONTAINERS FOR 
Example: LIST TABLESPACE CONTAINERS FOR 1

  30. 顯示用戶數據庫的存取權限

  GET AUTHORIZATIONS


31. 啓動實例

  DB2START

  32. 停止實例

  db2stop

  33. 表或視圖特權

  grant select,delete,insert,update on tables to user 
grant all on tables to user WITH GRANT OPTION

  34. 程序包特權

  GRANT EXECUTE 
ON PACKAGE PACKAGE-name 
TO PUBLIC

    35. 模式特權

  GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER

  36. 數據庫特權

  grant connect,createtab,dbadm on database to user

  37. 索引特權

  grant control on index index-name to user

  38. 信息幫助 (? XXXnnnnn )

  例:? SQL30081

  39. SQL 幫助(說明 SQL 語句的語法)

  help statement 
例如,help SELECT

  40. SQLSTATE 幫助(說明 SQL 的狀態和類別代碼)

  ? sqlstate 或 ? class-code

  41. 更改與"管理服務器"相關的口令

  db2admin setid username password

  42. 創建 SAMPLE 數據庫

  db2sampl 
db2sampl F:(指定安裝盤)

  43. 使用操作系統命令

  ! dir

  44. 轉換數據類型 (cast)

  SELECT EMPNO, CAST(RESUME AS VARCHAR(370)) 
FROM EMP_RESUME 
WHERE RESUME_FORMAT = 'ascii' 
45. UDF

  要運行 DB2 Java 存儲過程或 UDF,還需要更新服務器上的 DB2 數據庫管理程序配置

,以包括在該機器上安裝 JDK 的路徑

  db2 update dbm cfg using JDK11_PATH d:\sqllib\java\jdk 
TERMINATE 
update dbm cfg using SPM_NAME sample

  46. 檢查 DB2 數據庫管理程序配置

  db2 get dbm cfg

  47. 檢索具有特權的所有授權名

  SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH 
UNION 
SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH 
ORDER BY GRANTEE, GRANTEETYPE, 3

  create table yhdab 
(id varchar(10), 
password varchar(10), 
ywlx varchar(10), 
kh varchar(10)); 
create table ywlbb 
(ywlbbh varchar(8), 
ywmc varchar(60))

48-1. 修改表結構

  alter table yhdab ALTER kh SET DATA TYPE varchar(13); 
alter table yhdab ALTER ID SET DATA TYPE varchar(13); 
alter table lst_bsi alter bsi_money set data type int; 
insert into yhdab values 
('20000300001','123456','user01','20000300001'), 
('20000300002','123456','user02','20000300002');

    生成主鍵:
    alter table  JGM_COMBINE add primary key (pk1)

48-2  在已存在的表中新增字段:
    alter table 表名 add 字段名 數據類型
    例:alter table facct_reg add isVip integer
   

  49. 業務類型說明

  insert into ywlbb values 
('user01','業務申請'), 
('user02','業務撤消'), 
('user03','費用查詢'), 
('user04','費用自繳'), 
('user05','費用預存'), 
('user06','密碼修改'), 
('user07','發票打印'), 
('gl01','改用戶基本信息'), 
('gl02','更改支付信息'), 
('gl03','日統計功能'), 
('gl04','沖帳功能'), 
('gl05','對帳功能'), 
('gl06','計費功能'), 
('gl07','綜合統計')

  二. 目錄視圖說明

說明   目錄視圖 
檢查約束  SYSCAT.CHECKS 
列     SYSCAT.COLUMNS 
檢查約束引用的列 SYSCAT.COLCHECKS  
關鍵字中使用的列   SYSCAT.KEYCOLUSE  
數據類型    SYSCAT.DATATYPES  
函數參數或函數結果   SYSCAT.FUNCPARMS  
參考約束    SYSCAT.REFERENCES  
模式    SYSCAT.SCHEMATA  
表約束    SYSCAT.TABCONST  
表     SYSCAT.TABLES  
觸發器    SYSCAT.TRIGGERS  
用戶定義函數   SYSCAT.FUNCTIONS  
視圖     SYSCAT.VIEWS 

三. 字符串類型

  二進制大對象 (BLOB) 字符串。 
字符大對象 (CLOB) 字符串,它的字符序列可以是單字節字符或多字節字符,或這兩者

的組合。 
雙字節字符大對象 (DBCLOB) 字符串,它的字符序列是雙字節字符。

  四. 數據庫範式

  第一種規範形式:表中的每一行和每一列均有一個值,永遠不會是一組值。 
第二種規範形式:不在關鍵字中的每一列提供取決於整個關鍵字的事實。 
第三種規範形式:每個非關鍵字列提供與其他非關鍵字列無關並只取決於該關鍵字的事

實。 
第四種規範形式:沒有行包含有關一個實體的兩個或更多個獨立的多值事實。

  五. 數據類型

數據類型  類型    特性     示例或範圍 
CHAR(15)  定長字符串  最大長度爲 254    'Sunny day ' 
VARCHAR(15)  變長字符  最大長度爲 4000    'Sunny day' 
SMALLINT   數字   長度爲 2 字節精度爲 5 位  範圍爲-32768 至 32767 
INTEGER   數字   長度爲 4 字節精度爲 10 位  範圍爲-2147483648 至

2147483647 
REAL    數字   單精度浮點32 位近似值   範圍爲-3.402E+38至-

1.175E-37或 1.175E-37 至-3.402E+38或零 
DOUBLE   數字   雙精度浮點64 位近似值  範圍爲-1.79769E+308 至-

2.225E-307或 2.225E-307 至 1.79769E+308或零 
DECIMAL(5,2)  數字   精度爲 5小數位爲 2  範圍爲 -10**31+1 至

10**31-1 
DATE   日期時間   三部分值   1991-10-27    
TIME   日期時間   三部分值   13.30.05    
TIMESTAMP  日期時間   七部分值     1991-10-27-

13.30.05.000000


六. 列函數

  列函數對列中的一組值進行運算以得到單個結果值。下列就是一些列函數的示例。

  AVG

  返回某一組中的值除以該組中值的個數的和

  COUNT

  返回一組行或值中行或值的個數

  MAX

  返回一組值中的最大值

  MIN

  返回一組值中的最小值

  七. 標量函數

  標量函數對值進行某個運算以返回另一個值。下列就是一些由DB2 通用數據庫提供的標

量函數的示例。

  ABS

  返回數的絕對值

  HEX

  返回值的十六進制表示

  LENGTH

  返回自變量中的字節數(對於圖形字符串則返回雙字節字符數。)

  YEAR

  抽取日期時間值的年份部

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

==========================================================================
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命令看看是否有些文件系統沒有空間.

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

===============================================================
db2命令介紹:     
 相比圖像界面而言,使用命令行的命令能節省非常多內存資源。不過寫的時候語法需要熟

悉。 
        db2start:啓動當前的DB2數據庫管理實例。  
        db2stop:停止當前的數據庫管理實例。 
     注:啓動和關閉的是數據庫管理實例,而不是單個的數據庫,而restart database:

並不是重新啓動數據庫,是平衡非正常結束而不一致狀態的數據庫,結束後,連接仍然存在

。 
        db2look:能爲表,索引,視圖和諸如此類需要產生統計信息和數據定義語言(DDL

)的對象產生需要的語句,以便重建數據庫對象和/或更新統計信息。DB2CLP下直接db2look

,可看到選項。 db2move:db2移動數據的一個工具,能在兩個不同的db2數據庫間移動數據

,這兩個DB2數據庫能在不同的服務器上,尤其是大量數據的表需要轉移的情況下,非常方

便。 DB2CLP下直接db2move,可看到選項。  
       
以下命令在“db2=>”下鍵入“? Command”能看到使用。 
       catalog:編目數據庫或節點 
       uncatalog:刪除已編目的數據庫或節點 
       這一對命令其實就實現了客戶機設置輔助程式編目數據庫的功能。 
       update:功能是更新數據庫/數據庫管理器設置參數, 
更新命令行處理器設置和監視器的開關等。 
       connect:連接到一個數據庫。 
       注:習慣顯式的關閉連接。 
attach:建立一個到實例的連接,執行實例級別的管理。 
   list:顯示一些數據庫對象或設置的相關信息 
      get:獲取一些數據庫參數的設置和狀態 
   runstats:運行統計,更新系統目錄表中的信息。 
   backup:備份數據庫 
        1、防止意外數據丟失或系統意外 
        2、重定向恢復實現整個數據庫的遷移 
        3、AIX下的備份需要指定with n buffers 和 buffer size 
      restore:還原數據庫 
注:操作系統相同纔可進行備份和恢復 
      force application:強行關閉應用程式或連接 
導入導出數據: 
文件格式: 
DEL:界定的ASCII文件,行分隔符和列分隔符將數據分開。常用 
ASC:定長的ASCII文件,行按照行分割符分開,列定長。 
PC/IXF:只能用來在db2之間導數據,根據類型數字值被打包成十進制或二進制,字符被保

存爲ASCII,只保存變量已使用了的長度,文件中包括表的定義和表的數據。 
WSF:工作表方式導入導出,不建議使用。

export:導出數據,支持IXF,DEL或WSF 
import:導入數據,能向表或視圖中導入數據,支持上面提到的4中文件。 
 注:當一個表中的主鍵被其他表引用爲外鍵時,導入數據只能選APPEND,不能選替換。   

 
load:導入數據,功能和import基本相同。支持以上說的4種格式。Load最大的缺點是變化

沒有記錄日誌,不能前滾恢復。 
Load的工作步驟: 
1、載入階段: 
 把數據載入到表中 
 收集並存儲索引 
2、建立階段 
 建立載入階段收集的索引 
3、刪除階段 
 把違反唯一鍵或主鍵約束的記錄放到例外表中 
 刪除違反主鍵和唯一鍵約束的記錄 
注:自動生成列數據導入問題。 
Load完畢之後: 
Load程式能將表或表所在的表空間處於掛起狀態。 
1、載入掛起:在載入階段發生錯誤,表空間處於此狀態 
   解決方法: 
    A:糾正錯誤後重新載入,將replace或insert換成restart。將從失敗處重新開始裝載

操作。 
    B:如果前面調用用了replace,則再使用replace做load。 
    C:用terminate選項終止load操作。 
    D:DBA撤消並重新建立表空間 
    E:從一個備份中恢復表空間(歸檔日誌下才能)。 
2、刪除掛起:在刪除階段發生錯誤,將一直處於刪除掛起狀態。 
3、備份掛起:這種策略是強迫用戶對目標表所在的數據庫或表空間做一個備份。如果load

是使用了copy no選項,並且開啓了歸檔日誌,load完後將處於該狀態。做一個備份就能消

除該狀態。 
4、檢查掛起的表:當表上存在主鍵和唯一鍵之外的約束時,load完後表將處於該狀態。包

括以下情況: 
  外鍵約束?用來強制執行內容的完整性。 
  檢查約束?用戶定義的約束,檢查合法性。 
  操作中引用了summary表,並且表設置的爲refresh immediate。 
能使用如下命令解除該狀態: 
SET CONSTRAINTS FOR TABNAME IMMEDIATE CHECKED FOR EXCEPTION IN EXP_TABLE 
load和import的不同: 
1、load的目標表必須存在,而import不必 
2、load並不創建索引,只是在原來索引的基礎上追加數據 
3、最大差別在於性能差別,import每次插入一條,每行都要進行一次限制檢查,日誌用來

記錄變化,而load插入則快的多,每次讀取數據構造頁,然後直接輸入到數據庫。插入完頁

後,索引將重新建立,違反主鍵和唯一鍵限制的記錄將被刪除並保存到另一個擴展表中。 
注:load技巧使用:大數據量刪除。 
 load from a.del of del replace into table

 

 

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

==========================================
 首先是新建數據庫,可以使用Control Center(控制中心),也可以使用Command line(命令

行) ,不過對於本次新建,我更加願意使用Command Editor(命令行處理器)。
打開之後,可以直接寫如下SQL文:
CREATE DATABASE MyDB2
ON 'D:'
USING CODESET IBM-eucJP
TERRITORY JP
COLLATE USING SYSTEM;
好像ON後面只識別到盤符,等成功以後,繼續打開CE,在Target裏選擇‘MyDB2’,其實就

是執行了‘connect to MYDB2 ;’,到了這裏的目的是爲了創建Schema,而Schema的概念即

如每個家庭都有電視機,但是歸屬不同。
寫入如下SQL: 
CREATE SCHEMA UT001 AUTHORIZATION MyDB2;
CREATE SCHEMA UT002 AUTHORIZATION MyDB2; 
      說明:CREATE SCHEMA 在當前數據庫裏輸入一個新的模式。 該模式名將在當前數據

庫裏現存的所有模式名中唯一。

至此,數據庫及Schema都已經建立完畢,開始導入建表的SQL文件了。 
現在我們每就要開始執行建表文件了。這時可以用DB2 Command Line(命令窗口)
直接在CE中寫SQL文,然後直接執行。而如果是DDL導出SQL文,再這樣一個一個執行的話,

就會很煩惱的,此時,我建議使用批量處理,我們可以寫一個bat文件,放置於IBM\SQLLIB

\BIN 下:
db2 connect to MyDB2
db2 set current schema UT001      /*修改當前模式(實例)爲UT001,一般可以解決用戶名

和實例不一致的情況*/
       db2 -tvf D:\DATA\test.sql
db2 commit work
db2 terminate
其中特別注意,第一,如果不是多個schema,則可以不用第二行。第二,第三行中的參數-

tvf,解釋如下,
-f 讀取輸入文件
-t 設置語句終止字符
-v 回送當前命令
如果文件中每個語句是直接以回車結尾,則用-vf即可,加上-t是表示沒條語句以“;”結

尾。
commit 提交當前事務. 所有事務的更改都將爲其他事務可見,而且保證當崩潰發生時的可

持續性. commit work要讓所有變更永久化.
db2 terminate: db2 命令可以啓動命令行處理器。CLP 包括前端進程(表示用戶界面)和

後端進程,可以用它們來維護數據庫連接。每次 db2 調用都啓動新的前端進程;第一次

db2 調用要啓動後端進程。擁有相同父進程的所有前端進程都是由一個後端進程提供服務的

,因此它們共享一個數據庫連接。QUIT 命令停止命令行處理器,但是不刪除關聯的後端進

程;要刪除關聯的後端進程,需要發出 TERMINATE 命令。建議在停止實例(STOP DATABASE

MANAGER 或 db2stop)之前執行 TERMINATE 命令;否則,後端進程會保持一個不再可用的

實例連接(Attachment)。
下面更新下,我們在編寫sql文件的時候,可以將連接DB2的命令語句一同寫入到sql文件中

去,包括最後的提交當前事務,讓所有變更永久化命令,如果不是在DB2服務器上,而是在

遠程DB2客戶端上,我們連DB2時還需加上用戶名和密碼 即DB2連接命令要改爲 connect to

(數據庫名) user (用戶名) using (密碼)。


修改db2字符集:
db2set db2codepage 1386


用db2客戶端工具odbctool for all DB打開數據庫是看不到表中的中文
選擇管理員登陸
1:設置工具——》配置助手——》配置——》DB2註冊表——》
2:刪除實例中的DB2CODEPAGE項,再選擇“全局”——》添加——》DB2CODEPAGE設置其中

的值爲1386


db2常用命令 1. 查看本地節點目錄
              命令窗口中輸入:db2 list node directory 
            2. 編目一個TCP/IP節點
              命令窗口:db2 catalog tcpip node <node_name> remote 
            <hostname|ip_address> server <svcname|port_number> ostype 
            <OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
            3. 取消節點編目
              db2 uncatalog node <node_name>
            4. 查看系統數據庫目錄
              db2 list database directory
            5. 查看本地數據庫目錄
              db2 list database directory on <盤符>
              
            在本地數據庫目錄中有而系統數據庫目錄中沒有的數據庫不能訪問,可以在控

制中心中選中<數據庫>右鍵單擊選擇添加,然後輸入需要添加的數據庫名稱或者點擊刷新按

鈕選擇數據庫,加入數據庫後即可以訪問。
            6. 編目數據庫
              db2 catalog database <db_name> as <db_alias> at node <node_name>
            7. 取消數據庫編目
              db2 uncatalog database <db_name>
            8. 測試遠程數據庫的連接
              db2 connect to <db_alias> user <user_id> using <password>
            9. 任何用戶均可通過設置Current Schema專用寄存器爲特定的數據庫連接設

置默認模式,初始默認值爲當前會話用戶的權限ID。
              set schema = <schema name>
              可以由用戶交互式的使用,也可在應用程序中使用,如果用Dynamicrules 
            Bind選項綁定包,這個語句就沒有作用。此語句不在事務控制之下。
            10. 代碼頁的設置
              在創建數據庫時設置字符集
              create database <db_name> using codeset <codeset> territory 
            <territiry>
              例:
              create database dbtest using codeset IBM-437 territory US
              
            也可以設置整個數據庫的代碼頁,在win2000/NT/xp中,在我的電腦-->屬

性-->高級-->環境變量中添加變量DB2CODEPAGE 
            = <codepage>,例:DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386。或者在IBM 
            DB2命令窗口輸入 db2set DB2CODEPAGE=1386,設置後需要重新啓動DB2生效。
 
            11. DB2低版本數據到高版本的遷移
              先將低版本數據備份使用恢復功能導入高版本數據庫,然後在命令窗口輸入

db2 migrate database <db_name>。
            12. 表名或模式中含有引號時訪問表
              命令窗口:db2 select * from \"tabschema\".\"tabname\"
              命令行處理器:db2=> select * from "tabschema"."tabname"
            13. 導出數據庫的表結構生成DDL文件
              命令窗口:db2look -d <db_name> -e -c -o <file_name>
              
            14. 執行腳本文件
              命令窗口:db2 -tvf <file_name>
              
            15. 代碼頁的轉換
            16. 獲取當前DB2的版本
              select * from sysibm.sysversions
            17. DB2表的字段的修改限制?
              只能修改VARCHAR2類型的並且只能增加不能減少
              alter table <tb_name> alter column <col_name> set data type 
            varchar(SIZE)
            18. 如何查看錶的結構?
              describe table <tb_name>
              or
              describe select * from <schema>.<tb_name>
            19. 如何快速清除一個大表?
              ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
            20. 如何查看數據庫的存儲過程?
              SELECT * FROM SYSCAT.PROCEDURES
            21. 如何查看錶的約束?
              SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name>
            22. 如何查看錶的引用完整約束?
              SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name>
            23. 如何知道BUFFERPOOLS狀況?
              select * from SYSCAT.BUFFERPOOLS
            24. 如何在命令行下查看修改實例和數據庫配置參數?
              查看實例配置參數:   db2 get dbm cfg
              修改實例配置參數:   db2 update dbm cfg using 參數名新值
              查看數據庫配置參數:   db2 get db cfg for <db_name>
              修改數據庫配置參數:   db2 update db cfg for <db_name> using 參數名

新值
            25. 如何修改緩衝區?
              增加緩衝區:   create bufferpool <buf_name> size <number of pages> 
            [pagesize 4096] {[not] EXTENDED STORAGE}
              修改緩衝區:   alter bufferpool <buf_name> size <number of pages>

{[not] 
            EXTENDED STORAGE}
              刪除緩衝區:   drop   bufferpool <buf_name>
              如果緩衝區大小設置爲 -1 表示緩衝池的頁面數目由數據庫配置參數

buffpage決定。
              注意: 數據庫配置參數buffpage僅對緩衝區大小設置爲 -1 的緩衝池起作用


            26. 多個字段時如何不通過使用select子句使用in/not in
              select * from tabschema.tabname where (colA, colB, colC) [not] in 
            (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), 
            ...(valueAn, valueBn, valueCn))
            27. 查看當前連接到數據庫的應用
              db2 list application [show detail]
            28. 如何確認DB2數據庫的一致性
              db2dart <db_name> /DB
              /DB表示檢查整個數據庫的一致性
            29. 測試SQL語句的性能
              db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r 
            <outfile_name>]
              -r 選項表示將查詢結果輸出到一個文件中。
            30. 導出某個表的數據
              export to <Derectry><filme>
            如:導出用戶表
              export to c:\user.ixf of ixf select * from user
            31. 導入數據
              import from 
            如:導入用戶表。導入時可以直接建立新表。如果有該表存在也可以用INSERT

插入,或者用UPDATE更新
              import from c:\user.ixf of ixf [Create/Insert into / update] 
            tablename
32.異構操作系統的數據庫數據的導出與導入
DB2MOVE DBNAME EXPORT –SN SCHEMANAME –U USERID –P PASSWORD 
DB2MOVE DBNAME IMPORT
33.導出數據庫的所有對象生成DDL文件
              命令窗口:db2look -d <db_name> -u createuser-z schemaname –I

userid –w password -o <file_name> -dp
上述命令爲特定的數據庫對象的創建用戶,指定的模式生成DDL文件,並在CREATE語句之前生

成DROP語句.
(注,在根據DDL文件生成數據庫對象時,最好是將分階段形成數據庫對象:數據庫模式\數據庫

表\數據庫視圖和存儲過程等,因爲上述命令生成時有一定的順序:按數據庫對象類別如視圖

DDL\表DDL等)

 

參數中文說明
參數名稱              說明   
DB2CODEPAGE      爲數據庫客戶機應用程序指定呈示給 DB2 的數據的代碼頁   
DB2COUNTRY       指定客戶機應用程序的國家或地區、地域或區域代碼   
DB2_PINNED_BP    用於指定在某些 AIX 操作系統上與主存中的數據庫關聯的數據庫全局內

存(包括緩衝池)   
DB2_PARALLEL_IO  用來更改 DB2 計算表空間的 I/O 並行性的方式   
DB2ATLD_PORTS    用於指定LOAD操作所使用的通信端口範圍   
DB2_HASH_JOIN    將散列連接指定爲當編譯存取方案時可能的連接方法   
DB2MEMDISCLAIM   控制 DB2 代理進程是否顯式請求 AIX 從釋放的內存中解除關聯保留的

調頁空間   
DB2MEMMAXFREE    指定未使用的專用內存的最大字節數,在將未使用的內存返回到操作系

統之前該字節數由 DB2 進程保留   
DB2_FORCE_FCM_BP 指定DB2 從數據庫全局內存中或從單獨的共享內存段(如果沒有足夠的

全局內存可用)分配 FCM 緩衝區   
DB2DBDFT        指定用於隱式連接的數據庫的數據庫別名   
DB2COMM         指定當啓動數據庫管理器時所啓動的通信管理器


DBM CFG

 
參數名稱               說明   
DFT_MON_BUFPOOL     快照監視器的緩衝池開關的缺省值   
DFT_MON_LOCK        快照監視器的鎖定開關的缺省值   
DFT_MON_SORT        快照監視器的排序開關的缺省值   
DFT_MON_STMT        快照監視器的語句開關的缺省值   
DFT_MON_TABLE       快照監視器的表開關的缺省值   
DFT_MON_TIMESTAMP   快照監視器的時間戳記開關的缺省值   
DFT_MON_UOW         快照監視器的工作單元(UOW)開關的缺省值   
HEALTH_MON          指定是否想要根據各種健康指示器來監視實例、它的相關數據庫和數

據庫對象   
SYSCTRL_GROUP       定義具有系統控制(SYSCTRL)權限的組名   
SYSMAINT_GROUP      定義具有系統維護(SYSMAINT)權限的組名   
SYSMON_GROUP        定義具有系統監視(SYSMON)權限的組名   
NUM_POOLAGENTS      確定空閒代理進程池的最大大小   
DFTDBPATH           指定在數據庫管理器下創建數據庫的缺省文件路徑   
MON_HEAP_SZ         確定分配給數據庫系統監視器數據的內存量   
JAVA_HEAP_SZ        確定由已啓動以便爲 Java DB2 存儲過程和 UDF 提供服務的 Java

解釋器使用的堆的最大大小   
SHEAPTHRES          定義排序堆的閾值   
QUERY_HEAP_SZ       指定可爲查詢堆分配的最大內存容量   
MAXAGENTS           指定可在任何給定時間接受應用程序請求的數據庫管理器代理進程(

無論是協調代理進程還是子代理進程)的最大數目   
NUM_POOLAGENTS      確定空閒代理進程池的最大大小   
NUM_INITAGENTS      確定在 DB2START 時在代理進程池中創建的初始空閒代理進程數   
SVCENAME            數據庫服務器將用於等待來自遠程客戶機節點的通信的 TCP/IP 端口

的名稱   
MAX_QUERYDEGREE     指定用於在數據庫管理器的此實例上執行的任何 SQL 語句的最大分

區內並行度   
INTRA_PARALLEL      指定數據庫管理器是否可以使用分區內並行性   
FCM_NUM_BUFFERS     指定數據庫服務器之間及內部用於內部通信(消息)的 4 KB 緩衝區


DB CFG

 
參數名稱                     說明   
DFT_QUERYOPT       指定查詢優化級別用於指導優化器使用不同程度的優化   
DFT_DEGREE         指定 CURRENT DEGREE 專用寄存器和 DEGREE 綁定選項的缺省值   
DBHEAP             制定數據庫堆的大小   
CATALOGCACHE_SZ    指定用於高速緩存系統目錄信息的內存大小   
LOGBUFSZ           指定用作日誌記錄的緩衝區的數據庫堆陣的容量   
UTIL_HEAP_SZ       指定實用程序堆的大小   
LOCKLIST           指示分配給鎖定列表的內存量   
APPGROUP_MEM_SZ    確定應用程序組共享內存段的大小   
GROUPHEAP_RATIO    指定用於應用程序組共享堆的應用程序控制共享內存集中的內存百分

比   
APP_CTL_HEAP_SZ    指定分配給應用程序的共享內存區域的平均大小   
SHEAPTHRES_SHR     指定對可一次用於排序的數據庫共享內存總量的硬限制   
SORTHEAP           定義要用於專用排序的專用內存頁的最大數目或要用於共享排序的共

享內存頁的最大數目   
STMTHEAP           語句堆在 SQL 語句的編譯期間用作 SQL 編譯器的工作空間,此參數

指定此工作空間的大小   
APPLHEAPSZ         指定代理進程或子代理進程使用的專用內存頁數目   
PCKCACHESZ         指定用於高速緩存數據庫上的靜態和動態 SQL 語句的內存的大小   
STAT_HEAP_SZ       參數指示使用 RUNSTATS 命令收集統計信息時所用的堆的最大大小。 

 
MAXLOCKS           定義應用程序所掛起的鎖定列表的百分比   
LOCKTIMEOUT        指定應用程序爲獲取一個鎖定將等待的秒數   
CHNGPGS_THRESH     指定更改的頁的級別(百分比)   
NUM_IOCLEANERS     指定數據庫的異步頁清除程序數   
NUM_IOSERVERS      指定用於數據庫的 I/O 服務器的數目   
MAXAPPLS           指定可與一個數據庫連接(本地和遠程)的併發應用程序的最大數目 

 
AVG_APPLS          定義活動應用程序的平均數目   
LOGFILSIZ          定義每個主日誌文件和輔助日誌文件的大小   
LOGPRIMARY         定義主日誌文件的數量   
LOGSECOND          定義輔助日誌文件的數量

 

轉自:http://blog.csdn.net/zb358983019/article/details/7289835

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章