DB2在线备份恢复,无法回滚。 求大神帮忙解决

f1956 f1956 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#!/bin/sh

#数据库名
DB_NAME="AMFEDB"
#备份目录
HBAK_DIR="/tmp"
#备份文件名
FILE_NAME=`ls -t $HBAK_DIR|grep $DB_NAME|head -1`
#备份时间戳
TIMESTAMP=`echo "$FILE_NAME" | awk -F . '{ print $6 }'`

if [ -z "$FILE_NAME" ];then
echo "备份文件不存在!"
exit 99
fi
if [ -z "$TIMESTAMP" ];then
echo "最新备份文件[$FILE_NAME]格式不正确!"
exit 99
fi

echo "使用备份文件[$FILE_NAME]对数据库[$DB_NAME]进行恢复"
echo `date "+%Y-%m-%d %H:%M:%S"`"开始恢复..."

#数据库恢复恢复
RES=`db2 "restore db $DB_NAME incremental automatic from $HBAK_DIR taken at $TIMESTAMP logtarget /tmp/"<<EOF
y
EOF`
echo "$RES"
if [ "$RES" = "SQL1035N The database is currently in use. SQLSTATE=57019" ];then
#重启数据库
echo "开始重启数据库..."
db2stop force
db2start
echo "数据库重启结束"
RES=`db2 "restore db $DB_NAME incremental automatic from $HBAK_DIR taken at $TIMESTAMP logtarget /tmp/"<<EOF
y
EOF`
echo "$RES"
fi

#数据库前滚恢复
db2 "rollforward db $DB_NAME to end of backup and stop overflow log path(/tmp)"
if [ $? -ne 0 ];then
echo "恢复数据库[$DB_NAME]失败!"
else
echo "恢复数据库[$DB_NAME]成功!"
fi

#删除第一步生成的log文件
echo "正在删除临时文件..."
rm -r /tmp/NODE0000



使用备份文件[AMFEDB.0.db2inst1.NODE0000.CATN0000.20150928192955.001]对数据库[AMFEDB]进行恢复
2015-09-28 20:18:58开始恢复...
SQL1035N The database is currently in use. SQLSTATE=57019
开始重启数据库...
2015-09-28 20:19:00 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
09/28/2015 20:19:02 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
数据库重启结束
SQL2539W Warning! Restoring to an existing database that is the same as the
backup image database. The database files will be deleted.
Do you want to continue ? (y/n) DB20000I The RESTORE DATABASE command completed successfully.
SQL1268N Roll-forward recovery stopped due to error "24" while retrieving log
file "S0000004.LOG" for database "AMFEDB" on node "0".
恢复数据库[AMFEDB]失败!
正在删除临时文件...
rm: 鏃犳硶鍒犻櫎"/tmp/NODE0000": 娌湁閭d釜鏂囦欢鎴栫洰褰
2015-09-28 20:19:33恢复结束





[db2inst1@ACS222 dbdate]$ db2 rollforward db amfedb to end of logs
SQL1265N The archive log file "S0000003.LOG" is not associated with the
current log sequence for database "AMFEDB" on node "0".



[db2inst1@ACS222 dbdate]$ db2 rollforward database amfedb to end of backup and complete
SQL1274N The database "AMFEDB" requires roll-forward recovery and the
point-in-time must be to the end of logs.



db2 "rollforward db amfedb to end of logs and stop OVERFLOW LOG PATH (/u01/dbdate/db2inst1/NODE0000/SQL00001/SQLOGDIR)"
SQL4910N Overflow log path "/u01/dbdate/db2inst1/NODE0000/SQL00001/SQLOGDIR"
is not valid.

在线备份数据库,然后使用上面脚本在本机恢复数据库,前滚失败导致数据恢复失败,试了网上的各种方法进行前滚都无效,停止回滚也不行。 求大神帮忙看看有什么解决方法。不甚感激
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
f1956
DB2 5,886 成员 11,654 内容