2011年2月22日 星期二

Solaris上校時設定紀錄(NTP setup)

幫系統校時大概很久才有機會設一次,每次都不記得之前怎麼做.
這次順手把在SOLARIS上作的流程簡單做個紀錄.
由於系統放在防火牆內,無法去對time.stdtime.gov.tw這個位置要求標準時間.
所以之前就沒有對時,後來內部用LINUX架了一個NTP server
想先用簡單的ntpdate來把時間校準

root@sun:/etc>ntpdate -qv 10.33.4.55
8 Feb 17:39:35 ntpdate[19634]: ntpdate 3-5.93e+sun 03/06/05 23:16:45 (1.4)
server 10.33.4.55, stratum 3, offset -0.001039, delay 0.02663
8 Feb 17:39:35 ntpdate[19634]: adjust time server 10.33.4.55 offset -270.001039 sec


從這結果可以看出跟NTP server差了270秒,
用Linux的話這個指令應該已經透過NTP校正了系統時間,
但是不知道為什麼,在我這台Solaris上系統時間沒有校正成功.
所以還是乖乖的把ntp的service設定好.

root@sun:/>svcs -l ntp
fmri svc:/network/ntp:default
name Network Time Protocol (NTP)
enabled true
state online
next_state none
state_time Tue Feb 08 15:27:28 2011
logfile /var/svc/log/network-ntp:default.log
restarter svc:/system/svc/restarter:default
contract_id 588
dependency optional_all/none svc:/platform/sun4u/dscp (disabled)
dependency require_all/error file://localhost/usr/sbin/ntpq (online) file://localhost/usr/sbin/ntpdate (online)
dependency require_any/error svc:/network/service (online)
dependency optional_all/error svc:/milestone/name-services (online)

系統上的NTP daemon 有起來

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

2008年12月30日 星期二

Windows VISTA檔案總管突然Ctrl A及選取複數檔失效

Image Hosted by ImageShack.us
因為懶得重灌,所以我一直跟今年三月買的
ASUS 12吋筆記型電腦上的WINDOWS VISTA相安無事.
除了我為了讓它操作更接近XP我能關的就關.
對於我們這種IT勞工來說,視覺效果沒很大吸引力.
只有操作更快更順暢才是王道.

沒想到悲劇還是發生了,上周赫然發現
慣用的Keyboard Shortcut居然失效了!!!
任何一個必須寫程式改設定的IT人
都不能接受失去Ctrl+A Ctrl+C Ctrl+X Ctrl+V

按住Shift一次選擇多個檔案不行
更可怕的是連用滑鼠圈選整批檔案也不行
真是IT工作者,不,是所有需要用PC工作的人的惡夢

2008年12月18日 星期四

VNCSERVER簡單操作及相關REP-3000問題

管理UNIX的使用者有時會需要使用X-Window,
去做些圖形化介面下的操作,

簡單的vncserver操作介紹:
停止 vncserver服務的語法,本例使用的是port 5804
$vncserver -kill :4

使用port 5804去開vncserver的指令
$vncserver :4

授權所有用戶端都可以連線到server上的這個服務
$xhost +


REP-3000的原因與解決方法
另外ORACLE EBS R12跑report出現
REP-3000: Internal error starting Oracle Toolkit
這種Error時,
一個追查可能方向是check主機的vncserver是否正常啟動
因為Report Server需要X-Window的support

在EBS R12
要確認$ADMIN_SCRIPTS_HOME底下的adcmctl.sh
有沒有下列這兩行的設定
DISPLAY="localhost:1.0"
export DISPLAY


相關資料
安裝可以參考這位的X-Window安裝講解
VNC Server 在 Linux 下的安裝

VNC下載點
http://www.realvnc.com/download.html

Setting UP VNC by AIX Tips
http://www.aixtips.com/AIXtip/vnc_setup.htm

2008年12月11日 星期四

ORACLE APP的Patch Level 及 Package的版本檢查

除了查file的版本外,上PATCH前還常要確認Patch level,還有Package的版本
用APPS進DB去檢查下列的資料,來幫助你update SR
查目前AP的Patch level

select * from FND_PRODUCT_INSTALLATIONS
where patch_level like '%AP%'
--跟SR叫你指定的Patch Level 比較


開SR請ORACLE Support幫忙查問題時,常常會遇到要檢查Package 版本的問題

SELECT name ||' '|| text
FROM dba_source
WHERE line = 2
AND type LIKE 'PACKAGE%'
AND owner = 'APPS'
AND NAME LIKE 'FND%'
ORDER BY name, type;

Oracle EBS上Patch前確認檔案版本

在使用R12上patch前常常會要先做一個確認版本的動作
這除了讓你判斷patch該不該上之外,
如果你的Instance已經有比較新版的檔案
也許你有可能要換個方向去找問題解決方案


查特定檔案的版本
UNIX 指令
strings -a $AP_TOP/patch/115/sql/appvndrb.pls |grep '$Header'

這個指令基本上是用strings去object or binary檔中找出可印出的字元
然後用grep 去抓去有$Header的那行.

Oracle另外提供的工具
adident Header $AP_TOP/patch/115/sql/appvndrb.pls
作用與上面那個差不多

如何除去上傳到UNIX上文字檔裡的Ctrl-M

對於大部分UNIX上的程式或系統來說
因為UNIX與WINDOWS的text file的換行符號控制碼不同
所以用binery方式傳上去unix的檔
在用vi去處理的時候
就會看到每行的尾巴多了個很醜的^M

最近很不幸的,我遇到了個shell去呼叫有^M會失敗的程式(可能是R12的FNDLOAD)
只好再次把這個以前用過的好用一行SHELL從書裡挖出來

tr -d  '\015' <oldfile>newfile

這樣就可以產生一個除去所有^M的全新檔案了.
有相同困擾的朋友,夾去配不用客氣.