最近一直在忙项目,做的过程中遇到一个很纠结的事情。需要用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.若连接不上服务端,可以尝试多个用户名,另外,可以尝试服务端的防火墙关闭或设置例外