Linux下的flashback脚本

更新日期:2021-10-15

来源:纯净之家


系统大全为您提供
一个客户比较关心逻辑错误的恢复,我们给他推荐的方案是在容灾库上使用flashback技术,下面是一个简单的linux的脚本。
  #!/bin/bash
  export LOGIN_USER=test
  export LOGIN_PWD=test
  ##########################function###########################
  flashscn()
  {
  echo -e "enter scn:c"
  read SCNNUM
  STR1="flashback table $OWNER.$TABLE_NAME to scn $SCNNUM;"
  echo $STR1
  T1=`sqlplus -silent $LOGIN_USER/$LOGIN_USER 《EOF
  set pagesize 0 feedback off verify off heading off echo off
  alter table $OWNER.$TABLE_NAME enable row movement;
  $STR1
  alter table $OWNER.$TABLE_NAME disable row movement;
  EOF`
  if [ -z "$T1" ];then
  echo "######"
  echo "flashback table $TABLE_NAME OK!"
  else
  echo "######"
  echo "flashback tabel $TABLE_NAME error:"
  echo $T1 |awk -F "ORA-" '{print "ORA-" $NF}'
  fi
  }
  flashtime()
  {
  echo -e "enter time (example 2014-05-18 20:34:21):c"
  read STIME
  STR2="flashback table $OWNER.$TABLE_NAME to timestamp to_timestamp('$STIME','yyyy-mm-dd hh24:mi:ss');"
  echo $STR2
  T2=`sqlplus -silent $LOGIN_USER/$LOGIN_USER 《EOF
  set pagesize 0 feedback off verify off heading off echo off
  alter table $OWNER.$TABLE_NAME enable row movement;
  $STR2
  alter table $OWNER.$TABLE_NAME disable row movement;
  EOF`
  if [ -z "$T2" ];then
  echo "######"
  echo "flashback table $TABLE_NAME OK!"
  else
  echo "######"
  echo "flashback tabel $TABLE_NAME error:"
  echo $T2 |awk -F "ORA-" '{print "ORA-" $NF}'
  fi
  }
  ############################################main start##############################################
  echo -e "enter flashback table owner:c"
  read OWNER
  echo -e "enter flashbackup table name:c"
  read TABLE_NAME
  echo -e "chose flashback type 1)time 2)scn 12 :c"
  read STYPE
  case $STYPE in
  1)
  flashtime
  ;;
  2)
  flashscn
  ;;
  *)
  echo "your enter is error,please enter 1 or 2 !!!"
  exit
  ;;
  esac 
 
  
  以上就是系统大全给大家介绍的如何使的方法都有一定的了解了吧,好了,如果大家还想了解更多的资讯,那就赶紧点击系统大全官网吧。 
 
本文来自系统大全http://www.win7cn.com/如需转载请注明!推荐:win7纯净版