DB2在线备份恢复,无法回滚。 求大神帮忙解决
#!/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.
在线备份数据库,然后使用上面脚本在本机恢复数据库,前滚失败导致数据恢复失败,试了网上的各种方法进行前滚都无效,停止回滚也不行。 求大神帮忙看看有什么解决方法。不甚感激
...全文
相关推荐
DB2中常用备份,恢复命令和db2move,db2look的使用
```sql db2backup <dbname> usetsm ``` 2. **在线增量备份**:当数据库处于运行状态时,可以使用增量备份来捕获自上次备份以来发生的变化。
DB2误删除表的恢复
#### 四、回滚并完成恢复恢复表空间后,还需要进一步处理才能使表完全可用。这一步骤通常涉及将数据库回滚到某个状态,然后完成整个恢复过程。
DB2备份及恢复技术简介
备份与恢复是数据库管理的重要环节,DB2提供了离线和在线备份两种方式,以满足不同场景的需求。离线全备份通常在数据库无用户使用时进行,首先需确保没有活动应用,然后停止并重启数据库,接着执行备份命令。
DB2数据库备份及恢复详解.doc
DB2 数据库备份及恢复详解DB2 数据库备份是指将数据库中的数据和结构复制到另一个存储介质上,以便在数据丢失或损坏时可以恢复数据。DB2 数据库备份可以分为离线备份和在线备份两种方式。
无废话DB2备份和恢复-基础篇
##### 3.2 恢复策略- **数据库是否可以恢复**:评估数据库在故障后的恢复可能性。- **是否可以在线备份与恢复**:确定备份过程中数据库是否可以继续运行。


