【发布时间】:2019-01-26 18:13:54
【问题描述】:
我需要在我们的 oracle 数据库中执行一个简单的选择计数查询。但这需要几个小时才能完成。我想使用 shell 脚本来做,这样我就不需要时不时地监视查询是否仍在运行,并且想在我的电子邮件中发送输出,因为我只需要计数
我在远程服务器上执行此操作,并且没有管理员权限来禁用断开连接前的时间限制。
提前感谢您的帮助。
这是我编写的初始代码。
#!/bin/ksh
######################################################################
# File Name : counts.sh
# Created : 2019/27/19
# Author :
#-----------------------------------------------------------------------
# $Revision: 1.0 $
# $Date: 2019/01/27 08:00:00 $
#-----------------------------------------------------------------------
# Modification History:
# No Date Author Note
#
#-----------------------------------------------------------------------
#
#
########################################################################
DB_USERNAME=$1
DB_PASSWORD=$2
DB_DBASE=$3
#------------------------------------------------------------
# Start Log
#------------------------------------------------------------
DB_CONN=${DB_USERNAME}/${DB_PASSWORD}@${DB_DBASE}
LOG_DATETIME=`date +%Y-%m-%d:%H:%M:%S`
LOG_FILE=/tmp/$LOG_DATETIME.log
EGREP=/bin/egrep
ORA_ERR_STR=ORA
#==Start Table Space ========================================
sqlplus -S ${DB_CONN} > $LOG_FILE << ORAEND
set serveroutput on;
set feedback off
SPOOL /tmp/counts.txt
PROMPT COUNTS
SELECT COUNT(*) FROM schema.db;
spool off;
ORAEND
mailx -s "Counts on $DB_DBASE is" user@gmail.com < /tmp/counts.txt
#===end of script=========#
我将使用 nohup 命令调用 shell 脚本。
调用脚本:nohup ksh counts.sh 用户密码 DB &
【问题讨论】:
-
我只需要查询的实际计数。
标签: linux oracle shell unix scripting