最近一直在忙項目,做的過程中遇到一個很糾結的事情。需要用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.若串連不上服務端,可以嘗試多個使用者名稱,另外,可以嘗試服務端的防火牆關閉或設定例外