Linux下的flashback脚本

Paula ·
更新时间:2024-11-13
· 922 次阅读

  一个客户比较关心逻辑错误的恢复,我们给他推荐的方案是在容灾库上使用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

 



Linux flashback

需要 登录 后方可回复, 如果你还没有账号请 注册新账号