理論上DBA都知道最好把ONLINE跟OLAP作業分開,
但是現實與理想總是有落差的,工作上往往很難把這些USER拆開,
結果有時候就出現資源被OLAP吃掉,造成ONLINE作業反應速度慢,
甚至拖垮整個主機效能的情況.
很不幸的我就遇到了.(雪上加霜的是AP的SQL已經到哀莫大於心死的地步)
基本上對跑報表的人道德勸說是無用的.因為他們不會覺得自己有錯.
我曾經請他們可以sequential跑,不要一次全灑下去,
顯然效果不好,他們只想賭我不會一直都在盯session,
還是一次全下.
ORACLE提供了一個package(從哪版開始有我不確定)
DBMS_RESOURCE_MANAGER
下面是我使用的三個例子
熱門文章
2011年1月4日 星期二
2010年10月25日 星期一
ORACLE 10G 的資源回收桶
萬一不小心把TABLE DROP了,
是否有辦法像WINDOWS一樣從資源回收桶找回來.
在ORACLE 10G版本,recyclebin預設是啟用的.可以透過
USER_RECYCLEBIN and DBA_RECYCLEBIN還有機會找回來被DROP的TABLE
(下面指令是用DBA的身分執行,如果需要用一般USER請自行改用USER_RECYCLEBIN及相關適當修改)
不過要注意TABLESPACE的使用率,如果TABLESPACE滿到一個程度
資源回收的部分會被PURGE掉,
DESC DBA_RECYCLEBIN看下欄位
是否有辦法像WINDOWS一樣從資源回收桶找回來.
在ORACLE 10G版本,recyclebin預設是啟用的.可以透過
USER_RECYCLEBIN and DBA_RECYCLEBIN還有機會找回來被DROP的TABLE
(下面指令是用DBA的身分執行,如果需要用一般USER請自行改用USER_RECYCLEBIN及相關適當修改)
不過要注意TABLESPACE的使用率,如果TABLESPACE滿到一個程度
資源回收的部分會被PURGE掉,
DESC DBA_RECYCLEBIN看下欄位
| Name | Null? | Type |
| ----------------------------------------- | -------- | ---------------------------- |
| OWNER | NOT NULL | VARCHAR2(30) |
| OBJECT_NAME | NOT NULL | VARCHAR2(30) |
| ORIGINAL_NAME | VARCHAR2(32) | |
| OPERATION | VARCHAR2(9) | |
| TYPE | VARCHAR2(25) | |
| TS_NAME | VARCHAR2(30) | |
| CREATETIME | VARCHAR2(19) | |
| DROPTIME | VARCHAR2(19) | |
| DROPSCN | NUMBER | |
| PARTITION_NAME | VARCHAR2(32) | |
| CAN_UNDROP | VARCHAR2(3) | |
| CAN_PURGE | VARCHAR2(3) | |
| RELATED | NOT NULL | NUMBER |
| BASE_OBJECT | NOT NULL | NUMBER |
| PURGE_OBJECT | NOT NULL | NUMBER |
| SPACE | NUMBER |
2009年1月7日 星期三
嘗試用短短的shell script去寫Watchdog
最近有時候會遇到vncserver的process出問題
慘劇分為兩種
第一種目前我還沒有找到解決方式
ps -ef|grep vnc
process還活著,可是整個遠端X Window呈現灰色
只能操作一個悽涼的X游標
一種是標準的整個process就乾淨地死掉了
ps -ef|grep vnc
那個process就是掛點了,沒有process殘留著
試著做個像watchdog的shell小程式
放進crontab去每隔一段時間就執行
#!/bin/ksh
TEST=`ps -ef| grep Xvnc | grep -v grep | wc -l`
if [ $TEST = 1 ]
then
#VNC server is still alive.
exit
else
#It's dead.
echo "Vncserver is dead. Restart the VNC server" >>chk_vnc.log
vncserver :6
xhost +
date +%Y/%m/%d_%T>>chk_vnc.log
fi
這個程式很簡單的檢查vnc的process還在不在
如果不在了就重新啟動vncserver
至於要是process還在記憶體裡,卻已經異常的情形
目前還沒有找到方法,等找到會在改善這隻小程式
慘劇分為兩種
第一種目前我還沒有找到解決方式
ps -ef|grep vnc
process還活著,可是整個遠端X Window呈現灰色
只能操作一個悽涼的X游標
一種是標準的整個process就乾淨地死掉了
ps -ef|grep vnc
那個process就是掛點了,沒有process殘留著
試著做個像watchdog的shell小程式
放進crontab去每隔一段時間就執行
#!/bin/ksh
TEST=`ps -ef| grep Xvnc | grep -v grep | wc -l`
if [ $TEST = 1 ]
then
#VNC server is still alive.
exit
else
#It's dead.
echo "Vncserver is dead. Restart the VNC server" >>chk_vnc.log
vncserver :6
xhost +
date +%Y/%m/%d_%T>>chk_vnc.log
fi
這個程式很簡單的檢查vnc的process還在不在
如果不在了就重新啟動vncserver
至於要是process還在記憶體裡,卻已經異常的情形
目前還沒有找到方法,等找到會在改善這隻小程式
訂閱:
文章 (Atom)