熱門文章

2011年1月4日 星期二

ORACLE DBMS_RESOURCE_MANAGER Package 使用心得

理論上DBA都知道最好把ONLINE跟OLAP作業分開,
但是現實與理想總是有落差的,工作上往往很難把這些USER拆開,
結果有時候就出現資源被OLAP吃掉,造成ONLINE作業反應速度慢,
甚至拖垮整個主機效能的情況.
很不幸的我就遇到了.(雪上加霜的是AP的SQL已經到哀莫大於心死的地步)
基本上對跑報表的人道德勸說是無用的.因為他們不會覺得自己有錯.
我曾經請他們可以sequential跑,不要一次全灑下去,
顯然效果不好,他們只想賭我不會一直都在盯session,
還是一次全下.

ORACLE提供了一個package(從哪版開始有我不確定)
DBMS_RESOURCE_MANAGER
下面是我使用的三個例子

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看下欄位

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還在記憶體裡,卻已經異常的情形
目前還沒有找到方法,等找到會在改善這隻小程式