Unix shell脚本并行运行SQL脚本

时间:2013-08-13 04:31:57

标签: sql oracle shell parallel-processing ksh

如何在完成tst1.sql之后设置此KornShell(ksh)脚本以在并行中运行SQL脚本2,3然后在2,3完成后运行tst4.sql?这可能吗?

#/usr/bin/ksh
#SET ENVIRONMENT ORACLE

sqlplus user1/pw @/home/scripts/tst1.sql
sqlplus user1/pw @/home/scripts/tst2.sql
sqlplus user1/pw @/home/scripts/tst3.sql
sqlplus user1/pw @/home/scripts/tst4.sql
exit 0

1 个答案:

答案 0 :(得分:3)

第一个命令应该同步运行......

如果您将最后两个命令作为后台进程启动(在命令末尾添加&),它们将并行运行。

您是否希望脚本在离开之前等待最后两个进程完成?

这样的事情应该有效:

  sqlplus user1/pw @/home/scripts/tst1.sql
  sqlplus user1/pw @/home/scripts/tst2.sql &
  pid2=$!
  sqlplus user1/pw @/home/scripts/tst3.sql &
  pid3=$!
  # pseudo-code:
  # while (`ps -p"$pid2,$pid3" | wc -l` != "1");
  sqlplus user1/pw @/home/scripts/tst4.sql