Linux系統(tǒng)重啟db2數(shù)據(jù)庫命令實例詳解
Linux系統(tǒng)重啟db2數(shù)據(jù)庫命令實例詳解
Linux系統(tǒng)中db2數(shù)據(jù)庫的啟動關(guān)閉可以通過命令來實現(xiàn)。下面由學(xué)習(xí)啦小編為大家整理了Linux系統(tǒng)重啟db2數(shù)據(jù)庫命令實例詳解,希望對大家有幫助!
Linux系統(tǒng)重啟db2數(shù)據(jù)庫命令實例詳解
DB2重啟數(shù)據(jù)庫實例時,有時停止實例會失敗,此時需要先確認(rèn)沒有應(yīng)用鏈接數(shù)據(jù)庫,然后再關(guān)閉數(shù)據(jù)庫實例,并重新啟動。
1.查看是否有活動的鏈接
命令:db2 list applications for db db_name
發(fā)現(xiàn)有兩個活動鏈接,此時需要將鏈接進(jìn)行關(guān)閉。
2.關(guān)閉連接
命令:db2 force application all
3.再執(zhí)行一次步驟1中的命令,查看鏈接是否全部關(guān)閉。
4.執(zhí)行停止實例命令
命令:db2stop
注意:命令中沒有空格
5.執(zhí)行實例啟動命令
命令:db2start
6.如果此時,發(fā)現(xiàn)連接不了數(shù)據(jù)庫,莫慌,需要激活目標(biāo)數(shù)據(jù)庫
首先查看是否有活躍的數(shù)據(jù)庫
命令:db2 list active databases
如果沒有,需要對目標(biāo)數(shù)據(jù)庫進(jìn)行激活設(shè)置
命令:db2 activate database db_name
然后再次使用上一條命令,就可查看到當(dāng)前已有活躍的數(shù)據(jù)庫了,此時可進(jìn)行連接并執(zhí)行數(shù)據(jù)庫操作。
在停止數(shù)據(jù)庫實例失敗時,也有一種直接迅速的方法可以停止實例,不過不建議使用,最好還是按照上述的步驟進(jìn)行。
快速方法
執(zhí)行命令:db2stop force
Linux系統(tǒng)db2數(shù)據(jù)庫常用命令
啟動數(shù)據(jù)庫:
啟動db2服務(wù):db2start
激活數(shù)據(jù)庫實例:db2 activate database <db_name>
查看激活狀態(tài)的數(shù)據(jù)庫:db2 list active databases
關(guān)閉數(shù)據(jù)庫:
失效數(shù)據(jù)庫實例:db2 deactivate database <db_name>
關(guān)閉數(shù)據(jù)庫服務(wù):db2stop
查看數(shù)據(jù)庫:db2 list db directory
查看數(shù)據(jù)庫應(yīng)用:db2 list applications
查看數(shù)據(jù)庫應(yīng)用和進(jìn)程號:db2 list applications show detail
查看數(shù)據(jù)庫表空間:db2pd -db <db_name> -tablespace
查看數(shù)據(jù)庫配置:db2 get db cfg for <db_name>
連接數(shù)據(jù)庫:db2 connect to <db_name>
db2 connect to <db_name> user[user_name] using [password]
斷開數(shù)據(jù)庫連接:db2 connect reset/db2 terminate
創(chuàng)建數(shù)據(jù)庫:db2 create db <db_name>
刪除數(shù)據(jù)庫:db2 drop database <db_name> (如果不能刪除,嘗試斷開激活的連接或者重啟db2)
列出系統(tǒng)表:db2 list tables for system
列出所有用戶表:db2 list tables
列出所有表:db2 list tables for all
列出特定用戶表:db2 list tables for schema [user]
復(fù)制一張表:db2 create table t1 like t2
顯示表結(jié)構(gòu):db2 describe table tablename
查詢表:db2 "select * from table tablename where ..."
執(zhí)行SQL腳本:db2 -tvf scripts.sql
查看錯誤代碼信息:db2 ? 10054
停止激活的連接:db2 force application all;\db2 force application all;\db2 force application all;\db2stop
查看死鎖: db2 get snapshot for locks on <db_name>
db2 "select agent_id,tabname,lock_mode from table(snap_get_lock('<db_name>')) as aa"
殺掉進(jìn)程: db2 force application(NUM)
監(jiān)控DB2消耗多的SQL語句:
eg:(DB_NAME=CMSDB)
db2top -d CMSDB -----查看消耗資源 按照提示按 l,出現(xiàn)Application Handle,找到資源消耗大的Application Handle(stat)
記下app handle。
db2pd -d CMSDB -dyn -application > /tmp/db2pd1.txt ----到處會話語句,準(zhǔn)備進(jìn)行調(diào)優(yōu)
設(shè)置連接方式(重啟才會生效):
db2set DB2COMM=tcpip
Linux下db2數(shù)據(jù)庫的備份與還原
步驟:
1.打開SSH的client,在Profiles下找到要連接的服務(wù)器,輸入密碼,進(jìn)入系統(tǒng)。
2.新建存放備份文件的目錄。
(1)如果不是用root用戶登錄的系統(tǒng),要先切換到root用戶。
執(zhí)行命令 su root。
(2)創(chuàng)建存放備份文件的目錄。執(zhí)行命令:mkdir /home/db2as。
/home/db2as是我新建的目錄。
(3)把該目錄的操作權(quán)限賦給數(shù)據(jù)庫用戶,假如數(shù)據(jù)庫用戶名是lilax。被賦予權(quán)限的目錄是/home/db2as
執(zhí)行命令: chown lilax:users /home/db2as。
(4)切換到lilax用戶。執(zhí)行命令:su lilax。
3.切換到要備份到的目錄。執(zhí)行命令:cd /home/db2as
4.停掉Tomcat服務(wù)。
5.首先確保沒有用戶使用DB2。
執(zhí)行命令:db2 list applications for db pbcmoney。pbcmoney是我要備份的數(shù)據(jù)庫名。
6.停掉數(shù)據(jù)庫。執(zhí)行命令:db2stop force
7.啟動數(shù)據(jù)庫服務(wù),以便斷掉所有的鏈接。執(zhí)行命令:db2start
8.備份數(shù)據(jù)庫。執(zhí)行命令:db2 backup db pbcmoney。pbcmoney是我要備份的數(shù)據(jù)名。
備份成功后將會返回一個時間戳。
9.把備份文件復(fù)制到本地。打開SSH的file transfer。在右邊服務(wù)器目錄中切換到home/db2as目錄,找到剛剛備份的文件。將文件拖到右邊你想復(fù)制到的本地目錄。注意,左邊的本地目錄路徑不能有中文。
10.還原
把備份文件放到/home/lilax目錄下,lilax是我的數(shù)據(jù)庫用戶名。
在SSH中執(zhí)行命令:db2 restore db pbcmoney taken at 20101122205614 without rolling forward,其中pbcmoney 是我要還原的數(shù)據(jù)庫名,20101122205614 是備份文件的時間戳,如備份文件名是PBCMONEY.0.lilax.NODE0000.CATN0000.20101122205614.001,則20101122205614即是時間戳Times。