Linux下的flashback脚本

发表于:2014-5-22 09:52

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:su377486    来源:51Testing软件测试网采编

  一个客户比较关心逻辑错误的恢复,我们给他推荐的方案是在容灾库上使用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  1\2 :\c"
read STYPE
case $STYPE in
1)
flashtime
;;
2)
flashscn
;;
*)
echo "your enter is error,please enter 1 or 2 !!!"
exit
;;
esac
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号