linux shell 脚本 调用数据库

最近一直在忙项目,做的过程中遇到一个很纠结的事情。需要用shell脚本轮训数据库,数据执行完毕以后才能调用其他的shell脚本。在这里总结一下,与大家共享。

脚本如下:

shell 脚本如下:

#!/bin/sh

SQL_DIR=/home/tang/tek/sql/tek
SHELL_DIR=/home/tang/tek/sh/tek
LOG_DIR=/home/tang/tek/logs

. /home/tang/.bash_profile


#$SHELL_DIR/runsql.sh /home/tang/tek/sh/tek/test.sql > test.txt

log_check=1

checkCount=0

while [[ $log_check -ne 0 ]]; do
newlog_check=`sqlplus -s/nolog 用户名/密码@Sid<<-EOF
set heading off feedback off pages 0
select count(*)
from tek.admin_user sn
where sn.name is null
exit
EOF`


log_check=$newlog_check

echo "log check value is:" $log_check
let checkCount=$checkCount+1
if [ $checkCount -gt 2 ]; then
sqlplus -s/nolog 用户名/密码@Sid<<-EOF
update tek.user_info bm set bm.name=0 where bm.name='tangpengtao';
commit;
exit
EOF
let checkCount=0
fi
echo $checkCount
#休眠3秒。再轮训

sleep 3
done

. $SHELL_DIR/tpt.sh

linux下安装一个客户端。步骤如下:

1.创建用户
#groupadd dba
#useradd -d /usr/local/oracle -g dba oracle
#passwd oracle

2.解压软件
#gunzip ship_9204_linux_disk1.cpio.gz
#gunzip ship_9204_linux_disk2.cpio.gz
#gunzip ship_9204_linux_disk3.cpio.gz
#cpio -idvm < ship_9204_linux_disk1.cpio
#cpio -idvm < ship_9204_linux_disk2.cpio
#cpio -idvm < ship_9204_linux_disk3.cpio
#cp -rf Disk1 /usr/local/oracle
#cp -rf Disk2 /usr/local/oracle
#cp -rf Disk3 /usr/local/oracle

3.打补丁
#unzip p3006854_9204_LINUX.zip
#cp -rf 3006854 /usr/local/oracle
#sh /usr/local/oracle/3006854/rhel3_pre_install.sh

4.配置oracle用户环境变量

$vi .bash_profile内容如下:

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

#ORACLE

export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/home/ora/ora9
export ORACLE_HOME=/home/ora/ora9/oracle
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

#NoUse
export ORACLE_SID=unixdb
export ORACLE_TERM=xterm
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.US7ASCII

#LIB,CLASS
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

export PATH=$PATH:$ORACLE_HOME/bin

CLASSPATH=$CLASSPATH:$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib
export CLASSPATH

unset USERNAME

5.安装
#xhost +
#su - oracle
$unset LANG
$Disk1/runInstaller

6.图形化界面时提示操作
#sh orainstRoot.sh
#sh /usr/local/oracle/OraHome1/root.sh

7.编辑配置
#vi /usr/local/oracle/OraHome1/network/admin/sqlnet.ora
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
#vi /usr/local/oracle/OraHome1/network/admin/tnsnames.ora
ORACLE_192.168.0.6 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.6)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ORACLE)
(SERVER = DEDICATED)
)
)


8.测试连接
$sqlplus /nolog
SQL>connect sys/change_on_install@oracle_192.168.0.6 as sysdba
SQL>connected.//表示连接成功

备注:

1.若要重装oracle,则应该删除以下部分:

/usr/local/oracle/下面除Disk1,2,3外所有内容

/tmp/下面OraInstall文件名所有内容

/etc/oraInst.loc

/etc/oratab

2.若连接不上服务端,可以尝试多个用户名,另外,可以尝试服务端的防火墙关闭或设置例外

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值