linux shell 指令碼 調用資料庫

來源:互聯網
上載者:User

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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.