- 論壇徽章:
- 1
|
1. 用dbuser登陸數(shù)據(jù)庫
如果當(dāng)前用戶是root,則執(zhí)行以下命令切換到dbuser。
# su - dbuser
2. 配置分析環(huán)境
配置分析環(huán)境,需要執(zhí)行以下命令:
$ . ./SYBASE.sh
$ dataserver -X
在提示輸入口令時,輸入quine(固定的口令),然后回車
Enter password:
在以下">"提示符處輸入"cat /opt/sybase/ASE-15_0",命令執(zhí)行后會顯示數(shù)據(jù)庫實例信息。
> cat /opt/sybase/ASE-15_0
根據(jù)顯示的數(shù)據(jù)庫實例信息,執(zhí)行以下命令(注意,attach后輸入的實例名根據(jù)實際顯示為準(zhǔn),本文的舉例假設(shè)為SYB)
> attach SYB
如果加載成功,則會顯示如下信息:
Attaching to server SYB, using shared memory id: 83886112
SYB:active>
隨后就可以在"SYB:active>"提示符后執(zhí)行命令,獲取需要的定位信息。
3. 分析問題
以下重點說明對于分析tempdb空間滿有幫助的幾個命令和輸出信息。
1) who
該命令可以不帶參數(shù)執(zhí)行,顯示當(dāng)前數(shù)據(jù)庫中所有在運行的數(shù)據(jù)庫連接信息。也可以帶上具體的spid號,顯示指定spid的數(shù)據(jù)庫連接的信息。
重點關(guān)注各個數(shù)據(jù)庫連接的spid,以及占用tempdb的頁數(shù)(ptempdb_pages)。
舉例說明:
SYB:active> who
以下這段顯示的是spid為2的數(shù)據(jù)庫連接的信息,可以看出這條連接使用的tempdb空間為0(ptempdb_pages: 0),這條連接是數(shù)據(jù)庫內(nèi)部系統(tǒng)進程(P_SYSTEMPROC)。
******** Active PSS Structures ********
spid: 2, kpid: 327685, pss: 0x10047ba6fc0, proc: 0x1004cdb9850
pmemusage: 0, ptempdb_pages: 0
Command: 0 DEADLOCK TUNE
Status: (0x00000200 (P_SYSTEMPROC))
*****************************************
... ...
以下這段顯示的是spid為13的數(shù)據(jù)庫連接的信息,可以看出這條連接使用的tempdb空間為26455頁(ptempdb_pages: 26455)。如果數(shù)據(jù)庫的頁面大小為8K,則這條連接占用了26455*8K=207M的tempdb空間。這條連接是應(yīng)用庫的進程(P_USERPROC)。
*****************************************
spid: 13, kpid: 1070138198, pss: 0x10047ca23e8, proc: 0x1004cedf058
pmemusage: 17, ptempdb_pages: 26455
User: sa, Command: 326 UPDATE STATISTICS
Status: (0x20000000 (P_LOGSUSPEND), 0x00010000 (P_USERPROC))
*****************************************
2) sqltext
顯示spid對應(yīng)的連接執(zhí)行的具體sql語句信息。
輸出舉例,以下語句顯示spid為13的連接正在執(zhí)行更新性能結(jié)果表統(tǒng)計信息的操作。
SYB:active> sqltext 13
*************** SPID: 13 ******************
SQL Text: update statistics tbl_Result_1157628012_2(ObjectNo)
3) locks
顯示所有被held或者等待的鎖信息。
4. 分析tempdb滿的步驟
1)先執(zhí)行命令who,然后分析所有輸出中ptempdb_pages不為0的連接,記錄這些連接的spid和ptempdb_pages(該連接占用的tempdb的容量)。
2)根據(jù)上一步收集到的spid,執(zhí)行sqltext <spid>,調(diào)查這些連接正在執(zhí)行的sql信息。
通過以上步驟,我們就可以獲知哪些任務(wù)在占用tempdb的空間,并且具體占用多少? |
|