电脑中没有oracle服务器,用AnySQL在没有oracle客户端的服务器上发送邮件
最近要監控一個沒有安裝oracle客戶端的服務器,如果發現異常,將發送郵件通知。目前已經有現成的oracle發送郵件的存儲過程,需要做的是從一個沒有oracle客戶端的服務器上調用該存儲過程。在網上搜索一番后,發現AnySQL是一個不錯的免客戶端工具。
AnySQL是一個d.c.b.a()開發的、類似于SQL*PLUS的工具,它是基于java寫的,所以運行這個工具必須要有JDK 1.4或者以上版本。
這個工具的好處是不用安裝oracle客戶端。
AnySQL只有Windows的版本直接下載, 要在Unix/Linux下使用,需要按照如下步驟做就可以了:
1、下載一個windows版本的AnySQL(http:///software/anysql.zip)
2、 確定安裝目錄, 如/usr/AnySQL.
mkdir -p /usr/AnySQL/jlib
3、 將下載得到的文件解壓,并將oasql.jar和oracle.jar拷到jlib目錄
4、 編輯一個名稱為asql的Shell文件, 以方便地運行AnySQL
文件名可隨意取,路徑也隨意。這里就放在AnySQL目錄下。
腳本內容如下:
[root@lb AnySQL]# more asql
#!/bin/sh
ASQL_CMD=`which $0`
ASQL_HOME=`dirname $ASQL_CMD`
$JAVA_HOME/bin/java -server -Xms8m -Xmx16m
-cp $ASQL_HOME/jlib/oasql.jar com.asql.tools.ASQL $*
注意:必須要安裝了JDK,并設置了JAVA_HOME。
5、 將安裝目錄放到PATH路徑中, 這樣在任何目錄運行asql就啟動了AnySQL.
編輯.bash_profile文件,把asql的路徑添加到PATH變量中。
vi ~/.bash_profile
export PATH=$PATH:/usr/AnySQL
保存后,執行source使環境變量生效。
source ~/.bash_profile
6、編寫調用發送郵件存儲過程腳本
文件名可隨意取,路徑也隨意。這里就放在AnySQL目錄下。
[root@lb AnySQL]# more Send_Mail
#set env
ORACLE_USER=system
ORACLE_PASSWORD=xxx
ORACLE_SID=xxx
ORACLE_IP=xxx.xxx.xxx.xxx
ORACLE_PORT=1521
# function
help_msg()
{
cat << help
+----------------------------------------------------+
+ you enter $# parameters
+ the total paramenter number must be $paranum
+ 1st : the email context
+ 2nd : the email title
+ 3nd : the Address the mail come from
+ 4th : the Address the mail sent to
+ 5th : 'the Email Server Address
+----------------------------------------------------+
help
}
# validate the parameters
paranum=5
if [ $# -lt $paranum ]
then
help_msg
exit
fi
#if no errors ,send email by oracle
asql
set queryonly false
exec SendEmail($1,$2,$3,$4,$5);
exit
EOF
這里由于Send_Mail已經包含在$PATH中了,所以,可以像一般命令一樣調用它了。
到這里,就差不多了。什么地方需要發送郵件的話,只需要寫一個簡單腳本調用Send_Mail就可以了。
參考文檔:
http:///anysql/anysql_in_unix.html
總結
以上是生活随笔為你收集整理的电脑中没有oracle服务器,用AnySQL在没有oracle客户端的服务器上发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php怎麼讲$字段的值截取第一个字,PH
- 下一篇: oracle获取 表名,Oracle获取