日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

db2总结

發布時間:2025/7/14 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 db2总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
------------------------------------------安裝-----------------------------------------------
?1 創建用戶和組
? ?groupadd ?db2asgrp
? groupadd ?db2instgrp
? ?groupadd ?db2fencgrp
? ?useradd -g db2asgrp db2as
? ?useradd -g db2instgrp db2inst1 --實例用戶
? ?useradd -g db2fencgrp db2fenc1 --安全用戶
? ? ?
?2 輸入 ./db2_install?
? ?提示 Do you want to choose a different directory to install [yes/no] ? ? --安裝目錄
? ?輸入 no ? -- 使用默認目錄就可以了
? ?輸入 ESE ?--選擇安裝ESE,即enterprise server edition
? ?
?3 安裝license
? ?[root@seagull bin]# cd /opt/ibm/db2/V9.1/adm/
? ?[root@seagull adm]# ./db2licm -a /tmp/seagull/db2v9/license/db2ese_c.lic
? ?[root@seagull adm]# ./db2licm -a /tmp/seagull/db2v9/license/db2dpf.lic
? ?[root@seagull adm]# ./db2licm -a /tmp/seagull/db2v9/license/db2xmlese.lic
? ?
?4 創建實例和樣本數據庫
? ?[root@seagull V9.1]# cd /opt/ibm/db2/V9.1/instance
? ?[root@seagull instance]# ./db2icrt -p 50000 -u db2fenc1 db2inst1 ?--創建實例
? ?[root@seagull instance]# tail -n 6 -f /etc/services
# Local services
DB2_db2inst1 ? ?60000/tcp
DB2_db2inst1_1 ?60001/tcp
DB2_db2inst1_2 ?60002/tcp
DB2_db2inst1_END ? ? ? ?60003/tcp
[root@seagull ~]# su - db2inst1
[db2inst1@seagull ~]$ db2sampl ?--創建sample示例數據庫
[db2inst1@seagull sqllib]$ db2start
[db2inst1@seagull sqllib]$ db2 connect to sample
[db2inst1@seagull sqllib]$ db2 "select * from staff"
?
? 5 創建das管理服務器
? ? 為了遠程客戶端能夠用控制中心來控制數據庫服務器,需要在數據庫服務器上安裝das,當然,如果只是遠程連接而不是遠程管理,可以不用裝。
? ?[root@seagull instance]# ./dascrt -u db2as
? ?[root@seagull instance]# su - db2as
? ?[db2as@seagull ~]$ db2admin start


? 6.確認一下db2inst1實例的服務名?
? ?[db2inst1@seagull ~]$ db2 get dbm cfg|grep SVCENAME
? ? ? TCP/IP Service name ? ? ? ? ? ? ? ? ? ? ? ? ?(SVCENAME) = 50000


? 7.可以看一下license情況?
? ?[db2inst1@seagull ~]$ db2licm -l
? ? Product name: ? ? ? ? ? ? ? ? ? ? "DB2 Enterprise Server Edition"
License type: ? ? ? ? ? ? ? ? ? ? "CPU Option"
Expiry date: ? ? ? ? ? ? ? ? ? ? ?"Permanent"
Product identifier: ? ? ? ? ? ? ? "db2ese"
Version information: ? ? ? ? ? ? ?"9.7"
Enforcement policy: ? ? ? ? ? ? ? "Soft Stop"
Features:
DB2 Performance Optimization ESE: "Not licensed"
DB2 Storage Optimization: ? ? ? ? "Not licensed"
DB2 Advanced Access Control: ? ? ?"Not licensed"
DB2 Geodetic Data Management: ? ? "Not licensed"
IBM Homogeneous Replication ESE: ?"Not licensed"


?8 windows 遠程連接
? ?db2cmd
? ?db2 catalog tcpip node 節點名 remote IP地址 server 50000
? ?db2 catalog db 庫名 as 本地庫別名 at node 節點名
? ?此時打開控制中心,就可以操作遠程的數據庫了


?9 問題 1 ,如果在linux能連上庫,用客戶端連不上可以用以下命令解決
? ?root用戶進入db2的instance目錄下
? ?執行 ./db2iupdt db2inst1


-------------------------------------------------------------------------------------------------
db2inst1 環境變量
if [ -f /home/db2inst1/sqllib/db2profile ]; then
? ? . /home/db2inst1/sqllib/db2profile
fi


rewsdb2 環境變量
if [ -f /home/db2inst1/sqllib/db2profile ]; then
?. /home/db2inst1/sqllib/db2profile
fi


? ----------------------------------------—命令------------------------------------------------
使索引生效 ?
db2 runstats on table schema.表名 and detailed indexes all ?
??
0 DB2日志
DB2HOME/sqllib/db2dump/db2diag.log
??
1 建立編目
catalog tcpip ?node ?節點名 remote IP地址 server 端口號
? ?
2 卸載節點編目
uncatalog ?node ?節點名


3 查看機器上節點目錄
db2 list node directory | more


4 數據庫編目
db2 catalog db 節點上庫名 as 本地庫別名 at node 節點名 ? --as 本地庫別名可不加


5 卸載數據庫編目
db2 uncatalog db 庫名


6 察看數據庫的編目
db2 list db directory | more


7 連接節點上的數據庫
db2 connect to 庫名 user 用戶名 using 密碼 ?


8 導出數據
db2 export to 目錄/myfile.ixf of ixf messages msg select * from tb1
db2 export to 目錄/myfile.dat of del modified by coldel0x03 nochardel datesiso select * from tb1 WITH UR


9 導入數據
db2 import from 目錄/myfile.ixf of ixf messages msg replace into tb1
db2 "import from c:\zj\321104\bbsybsj.ixf of ixf modified by forcein insert into bbsybsj"
db2 import from 目錄/myfile.dat of del modified by coldel0x03 nochardel keepblanks CODEPAGE=1386 replace into tb1
db2 load from myfile.dat of del modified by coldel0x03 nochardel keepblanks CODEPAGE=1386 replace into M_TDL_F_F_GL_PUB_CMVCA


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)


load from tempfile of del modified by delprioritychar replace into 表名 nonrecoverable;
說明:
在不相關的數據表export數據時,可以采取并發的形式,以提高效率;
modified by delprioritychar防止數據庫記錄中存在換行符,導致數據無法裝入的情況;
replace into對現數據庫中的內容進行替換,即將現行的數據記錄清理,替換為數據文件內容;
nonrecoverable無日志方式裝入;




10 啟動實例(db2inst1)
db2start


11 停止實例(db2inst1):
db2stop
db2stop force


12 列出所有實例(db2inst1)
db2ilist


13 列出當前實例:
db2 get instance


14 察看示例配置文件:
db2 get dbm cfg|more


15 寫數據庫管理程序配置
db2 update dbm cfg using 參數名 參數值


16 創建數據庫:
db2 create db 庫名 using codeset GBK territory CN


17 察看數據庫配置參數信息
db2 get db cfg for 庫名|more


18 更新數據庫參數配置信息
db2 update db cfg for 庫名 using 參數名 參數值


修改數據庫日志大小
db2 update db cfg for etl2 using LOGFILSIZ ?42000
db2 update db cfg for etl2 using LOGPRIMARY ?50
db2 update db cfg for etl2 using LOGSECOND 20


19 刪除數據庫:
db2 drop db 庫名


20 連接數據庫
db2 connect to 庫名


21 列出所有表空間的詳細信息。
db2 list tablespaces show detail


13.列出容器的信息
db2 list tablespace containers for 表空間id show detail


14 列出所有表
db2 list tables


15 列出所有的系統表
list tables for system


16.創建表:
db2 ceate table tb1(id integer not null,name char(10))
17.插入數據:
db2 insert into tb1 values(1,’sam’);
db2 insert into tb2 values(2,’smitty’);
18.查詢數據:
db2 “select * from tb1”
19.刪除數據:
db2 delete from tb1 where id=1
20.創建索引:
db2 create index idx1 on 表名(字段);
21.創建視圖:
db2 create view 視圖名 as select id from 表名


22 執行文中的sql
db2 -tvf 文件名.sql
23 執行一個批處理文件
db2 –tf 批處理文件名 (文件中每一條命令用 ;結束)


24 備份數據庫
db2 backup db 庫名 to 目錄地址


25 恢復數據庫
db2 restore db 庫名 from 目錄地址


26 查看數據表結構
db2 “describe select * from 表名”


27 查詢表建的索引
DESCRIBE INDEXES FOR TABLE 表名 SHOW DETAIL
db2 "select INDNAME, COLNAMES FROM syscat.indexes where tabname='表名'"


28 查詢一張表的狀態
db2 "load query table 表名"


29 查詢數據庫里有沒有表鎖了。
db2 "select * from sysibmadm.locks_held"


30 A用戶安裝DB2后(安裝在默認目錄),如何用B用戶啟動DATABASE?


? ? 在B用戶下的.PROFILE中加上


? ? ./HOME/DB2INST/SQLLIB/DB2PROFILE


31 查詢連接到db2庫的應用
db2 list application for db 庫名 show detail
?
31.關閉所有應用連接
? ? db2 force application all
? ? db2 force application ID1,ID2,,,Idn MODE ASYNC?
? ??
31 查看版本?
? db2level ?


32 查看數據庫字符集 ?
? db2 get db cfg|grep code ?
? Database code page ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?= 1208
? Database code set ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = UTF-8
? Database country/region code ? ? ? ? ? ? ? ? ? ? ? ? ? ?= 1
? #注解,在客戶端,要設置db2codepage變量與數據庫一致,這樣才能正確的顯示漢字,客 戶端設置方法db2set db2codepage=1208,在windows 上,db2codepage默認為1386(GBK),linux上默認為1208(UTF-8),aix上默認為819(ISO8859-1),要注意 這個問題,我在客戶端查詢t1表時就發現是亂碼,后來設置了客戶端變量db2codepage才搞定。
? 另外一種可行的辦法是,在服務器上創建生產庫時,指定數據庫字符集為GBK,這樣windows客戶端就不用改db2codepage變量了,這個方法我以前用過,當時在服務器上創建生產數據庫的腳本為:
??
su - db2inst1
db2set db2codepage=1386 ?#為了能創建gbk字符集數據庫
exit ?#退一次為了使得設置生效
su - db2inst1
db2 create db GZDC using codeset GBK territory CN
? ?
connect to gzdc
db2 grant dbadm on database to db2admin
db2 "create bufferpool BP_8K size -1 ?pagesize 8192 not extended storage"
db2 "alter bufferpool IBMDEFAULTBP immediate size 50000"
CREATE system temporary TABLESPACE TS_SYSTEMP_04 ?PAGESIZE 4096 ?MANAGED BY DATABASE USING (FILE '/db2data/db2data01/stmp4k1.dbf' 1024M, FILE ?'/db2data/db2data02/stmp4k2.dbf' 1024M) ?EXTENTSIZE 32 PREFETCHSIZE 64
CREATE system temporary TABLESPACE TS_SYSTEMP_08 ?PAGESIZE 8192 ?MANAGED BY DATABASE USING (FILE '/db2data/db2data01/stmp8k1.dbf' 5G, FILE ?'/db2data/db2data02/stmp8k2.dbf' 5G) ?EXTENTSIZE 192 PREFETCHSIZE 384 BUFFERPOOL BP_8K
CREATE LARGE TABLESPACE HOSPITALSPACE PAGESIZE 8192 MANAGED BY DATABASE USING?
(FILE '/db2data/db2data01/HOSPITAL_01.dbf' 50G,
?FILE '/db2data/db2data02/HOSPITAL_02.dbf' 50G,
?FILE '/db2data/db2data01/HOSPITAL_03.dbf' 50G,
?FILE '/db2data/db2data02/HOSPITAL_04.dbf' 50G,
?FILE '/db2data/db2data01/HOSPITAL_05.dbf' 50G,
?FILE '/db2data/db2data02/HOSPITAL_06.dbf' 50G,
?FILE '/db2data/db2data01/HOSPITAL_07.dbf' 50G,
?FILE '/db2data/db2data02/HOSPITAL_08.dbf' 50G,
?FILE '/db2data/db2data01/HOSPITAL_09.dbf' 50G,
?FILE '/db2data/db2data02/HOSPITAL_10.dbf' 50G)?
EXTENTSIZE 192 ?PREFETCHSIZE 384 ? BUFFERPOOL BP_8K;
CREATE LARGE TABLESPACE MANAGERSPACE PAGESIZE 8192 MANAGED BY DATABASE USING (FILE '/db2data/db2data01/MANAGER_01.dbf' 25G) ? ? ? EXTENTSIZE 192 ?PREFETCHSIZE 384 ? ? ? ?BUFFERPOOL BP_8K
alter tablespace managerspace add (file '/db2data/db2data02/MANAGER_02.dbf' 25G)


33 db2advis 根據優化器的配置以及機器性能給出提高查詢性能的建議,種建議主要集中于如何創建索引,這些索引可以降低多少查詢代價,需要創建哪些表或者 Materialized Query Table(MQT) 等
1)創建temp.sql里面寫需要優化的sql語句,以";"結束
2)執行
? db2advis -d 庫名 -n sample -a 用戶名/密碼 -i temp.sql >test.log
??
34 查看表空間的狀況?
? ? select * from ?sysibm.SYSTABLESPACES


35 db2batch 測試SQL的執行性能
db2batch -d 庫名 -f select.sql -a 用戶名/密碼 > test.log
(select.sql中有查詢的sql語句,以";"結束)


36 db2expln 獲得文本形式的查詢計劃
db2expln -d 庫名 -user 用戶名 密碼 -stmtfile sql文件(文件中的sql結束沒有;)-z @ -output 輸出結果文件 -g
(db2expln 將存取計劃以文本形式輸出,它只提供存取計劃中主要的信息,并不包含每一個操作占用多少 CPU、I/O、占用Buffer 的大小以及使用的數據庫對象等信息,方便閱讀。但是 db2expln 也會將各項有關存取計劃的信息存入 Explain表中,用戶可以使用db2exfmt 察看詳細的格式化文本信息。
? -z @: -z參數指定多個查詢之間的分隔符,之處的分隔符為@)


37 獲取連接的進程
db2 list applications


38 刪除當前正在使用的application:
db2 "force application (Id1,Id2,Id3)"
Id1,Id2,Id3 是List顯示的應用號


39 刪除所有的進程
db2 force application all


40 查看當前應用號的執行狀態:
db2 get snapshot for application agentid 299 |grep Row


41 查看數據庫配置
db2 get db cfg for 庫名?


42 將數據庫的參數設置為默認數值 ?
reset db cfg for 庫名


43 修改數據庫配置參數數值
update db cfg for 庫名 using 參數名 參數值
update db cfg for etl2 using LOGFILSIZ 100000


44 設置表不記錄日志
db2 "alter table 表名 activate not logged Initially" ? ??


45 如何重新啟動數據庫?
? ? Restart db db_name
46 如何激活數據庫?
? ? Activate db db_name
47 如何停止數據庫?
? ? Deactivate db db_name
48 如何重命名表?
? ? Rename old_tablename to new_tablename




----------------------------------------—緩沖池 表空間------------------------------------------------


1 創建緩沖池
db2 create bufferpool 緩沖池名 immediate size 100 automatic pagesize 32k
db3 CREATE BUFFERPOOL BP_FM IMMEDIATE ALL DBPARTITIONNUMS SIZE 50000 NUMBLOCKPAGES 0 PAGESIZE 16K;
??
2 修改緩沖池
db2 alter bufferpool 緩沖池名 size 10240


3 刪除緩沖池
db2 drop bufferpool 緩沖池名


4 查看緩沖池狀況
db2 "select * from ?sysibm.sysbufferpools"?


4 創建表空間
DB2 CREATE REGULAR TABLESPACE 表空間名 PAGESIZE 4K MANAGED BY AUTOMATIC STORAGE BUFFERPOOL 緩沖池名


CREATE LARGE TABLESPACE TBS_DATA_FM ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
PAGESIZE 16K ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
MANAGED BY AUTOMATIC STORAGE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
EXTENTSIZE 32 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
PREFETCHSIZE AUTOMATIC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
BUFFERPOOL BP_FM ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
INITIALSIZE 10G ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
INCREASESIZE 2G
NO FILE SYSTEM CACHING ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
AUTORESIZE YES;?


5 DB2快照
? 1、打開db2監控開關
  #db2 connect to eos
  #db2 update monitor switches using statement on
  #db2 reset monitor all
  2、幾分鐘之后,我們收集sql統計快照
  #db2 get snapshot for dynamic sql on eos > dysqlstatus.out


select * from sysibmadm.top_dynamic_sql where (stmt_text like '%CACHE_%' OR STMT_TEXT LIKE ?'%cache_%') and (stmt_text like 'select%' or stmt_text like 'insert%' or stmt_text like 'delet%') order by average_execution_time_s desc fetch first 30 rows only;
----------------------------------------—sql------------------------------------------------
??
1 查詢去除重復記錄
select ?c.cstno,c.name,c.v1?
from (select row_number() over( partition by a.cstno,a.name ) as rn, a.cstno,a.name,b.v1
? ? ? ? ?from test1 a , test2 b where a.cstno=b.cstno) c
where ?c.rn = 1 ?


2 列出表中前10條數據 ?fetch first 10 rows ?only?
? select * from <表名> fetch first 10 rows only
??
3 對是null的字段進行值轉換 coalesce(字段名,轉換后的值)?
? select coalesce(id,1) ?from <表名> ? ?--對表中id如果為null轉換成1
??
4 計算出日期中是周幾(1是周日,2是周一.......7是周六) ?dayofweek(日期)
? 計算出日期中是周幾(1是周一.......7是周日) ? ? dayofweek_iso(日期)
? ?dayofweek(date(2008-01-16)) ? --它會返回是4,代表星期三
? ?dayofweek_iso(date(2008-01-16)) ? --它會返回是3,代表星期三
? ?
? ?注意:參數中日期的格式是YYYY-MM-DD的形式,如果不是需要進行轉換,否則函數不能使用
? ?
5 一年中的第幾天,范圍在1-366范圍之內 ? dayofyear(日期)


6 把參數1加上連接值組成一個新值 concatt(參數1,連接值)
? concat('aa','b') ? ?--返回是aab


7 轉義字符
? 如果你想查詢字符串中包含‘%’或‘_’ ,就得使用轉義字符,比如,要想查詢testtab中包含字符串’99%’的紀錄
? SELECT * FROM testtab WHERE title like '%99!%%' escape '!'


8 表壓縮
? 在建表語句后加 COMPRESS YES;
----------------------------------------—linux------------------------------------------------
1 每兩秒查一次io讀寫
iostat -t 2 ??
l

總結

以上是生活随笔為你收集整理的db2总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。