STATSPACK清除数据时没有删除STATS$UNDOSTAT
上一篇 / 下一篇 2008-07-08 23:36:03 / 个人分类:Bug
Oracle在清除STATSPACK数据的时候,漏掉了STATS$UNDOSTAT表。
无论是删除STATS$SNAPSHOT表的时候,还是使用SPPURGE.SQL脚本,都无法清除这张表的记录。
SQL> SELECT SNAP_ID FROM STATS$SNAPSHOT;
SNAP_IDITPUB个人空间i?;GP?.Ua'V
----------ITPUB个人空间6_*Y!H3?5B
1
SQL> SELECT COUNT(*) FROM STATS$UNDOSTAT;
COUNT(*)
1f(I;K;SaU
L0----------
7["@-I.A-x&y0 55
SQL> SELECT COUNT(*) FROM STATS$SGASTAT;
COUNT(*)ITPUB个人空间1bb1QCd/Pq|S
----------
1Z(N"` LF+?
{0 41
SQL> DELETE STATS$SNAPSHOT;
已删除1行。
SQL> SELECT COUNT(*) FROM STATS$SGASTAT;
COUNT(*)ITPUB个人空间XT1y+g'm:i K#{
----------ITPUB个人空间%q[ rB"@ b0tY$m?
a
0
SQL> SELECT COUNT(*) FROM STATS$UNDOSTAT;
COUNT(*)ITPUB个人空间-T:r^|u1h$w0R
----------
Wvo o5gx!p^mh0 55
使用SPPURGE.SQL脚本也是一样:
SQL> ROLLBACK;
回退已完成。
SQL> @?/rdbms/admin/sppurge.sql
o:Gl.B7m.W
^
w0SQL> RemITPUB个人空间%m5{tre6P;_]@c
SQL> Rem $Header: sppurge.sql 20-mar-2002.18:02:43 vbarrier Exp $ITPUB个人空间*KLguhqA/C
SQL> RemITPUB个人空间Q8FP+Q so6Ir
SQL> Rem sppurge.sqlITPUB个人空间B)^e&@
DQ
SQL> RemITPUB个人空间rr6P?j~
SQL> Rem Copyright (c) 2000, 2002, Oracle Corporation. All rights reserved.ITPUB个人空间N1|2n0R
w
SQL> Rem
K|lAf;q)Wo0SQL> Rem NAME
+`1oj/_6gFoV#D;g0SQL> Rem sppurge.sql - STATSPACK Purge
4Z@(E&q)Od'Ed)E0SQL> RemITPUB个人空间D{ O"it8UG
A
SQL> Rem DESCRIPTION
D4W|9B`!S0@0SQL> Rem Purge a range of Snapshot Id's between the specifiedITPUB个人空间4T t4I
@Gn9y
SQL> Rem begin and end Snap Id's
9xVI5\Q0xD,o3[0SQL> RemITPUB个人空间-[4^.c8q(L
W
K:p"|
SQL> Rem NOTES
:{6LuF d
pwuE0SQL> Rem Should be run as STATSPACK user, PERFSTAT.ITPUB个人空间|1O
KUTo_
SQL> RemITPUB个人空间*t
Z@bTO
bu,VP
SQL> Rem Running purge may require the use of a large rollbackITPUB个人空间1E.g:Y@S
SQL> Rem segment; to avoid rollback segment related errorsITPUB个人空间7h1JcGf*T
SQL> Rem explicitly specify a large rollback segment before runningITPUB个人空间zR
Vm
Ers8r
SQL> Rem this script. by using the 'set transaction use rollback segment..'ITPUB个人空间 i ]$m1hM+H
SQL> Rem command, or alternatively specify a smaller range of
,MZZI W0SQL> Rem Snapshot Id's to purge.ITPUB个人空间g:@#CQ T
SQL> RemITPUB个人空间rn-g4b%X&jTr
}
SQL> Rem
X*Mg~'I[
F6M"H0SQL> Rem MODIFIED (MM/DD/YY)ITPUB个人空间|? lUkK
SQL> Rem vbarrier 03/20/02 - Optional stats$seg_stat_obj purge
1Z0r ]G0pvY}%q%rm3cuN0SQL> Rem cdialeri 04/12/01 - 9.0
4b:q4m9E.dI0T"~0SQL> Rem cdialeri 04/11/00 - 1261813ITPUB个人空间X |
ny7R9S
SQL> Rem cdialeri 03/15/00 - Conform. to new structureITPUB个人空间(\7cNTh"L9M? X
SQL> Rem densor.uk 05/00/94 - Allow purge of range of snaps
*M|'f)f#K$V}0SQL> Rem gwood.uk 10/12/92 - Use RI for deletes to most tables
3_y:PC9eA0SQL> Rem cellis.uk 11/15/89 - Created
Iz#WX(C*c&Q!@ G0SQL> Rem
+i-x)|?"g{%i'LN0Z0SQL>ITPUB个人空间d_sR*T6G
SQL> set feedback off verify off pages 999
M-XT4tEg0SQL> undefine dbid inst_num losnapid hisnapid
e!Rbl6`6q0SQL> whenever sqlerror exit rollback
+sCA3bm?h3f!`Z0SQL>ITPUB个人空间qQ0U#Ye@r
SQL> spool sppurge.lis
y4t'[Rb5c{;ri*nM0SQL>
n%r8X
v'TW0SQL>
u~.T-v]0SQL> /* ------------------------------------------------------------------------- */ITPUB个人空间I]8TA*fp
SQL>ITPUB个人空间q&v.Z9w9I
SQL> --
aY6V[{WL0SQL> -- Get the current database/instance information - this will be used
LH+G1K3dc}l#N0SQL> -- later in the report along with bid, eid to lookup snapshotsITPUB个人空间ydoZQ:n7M'K
SQL>ITPUB个人空间2|3W
s0HFrG
SQL> prompt
SQL> prompt
SQL> prompt Database Instance currently connected toITPUB个人空间\7B5o9y v+{YO
i\7|
Database Instance currently connected to
}/|k
iA`0SQL> prompt ========================================
5E|L8g ~
}5t|0========================================ITPUB个人空间0C3GwV2Ya
SQL>ITPUB个人空间,zK:r!^7G2bF\
SQL> column inst_num heading "Inst Num" new_value inst_num format 99999;
,R4s)N8nH;F0SQL> column inst_name heading "Instance|Name" new_value inst_name format a10;
d)^F.r T,`5T'L0SQL> column db_name heading "DB Name" new_value db_name format a10;ITPUB个人空间_? jC
?pC@
SQL> column dbid heading "DB Id" new_value dbid format 9999999999 just c;
!L0i;j5g(x,f#Dd!M7lZ0SQL> select d.dbid dbid