DB2数据库备份恢复

原创 2015年09月23日 14:55:26

DB2数据库恢复:
一次意外的存储故障,导致表空间损坏。然而最近一次成功的完全备份是在8天前,最近8天内只有归档日志的备份。

查看表空间状态:有两个表空间无法回滚。

db2 list tablespaces show detail;

 Tablespace ID                        = 7
 Name                                 = REPLICAS
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0080
   Detailed explanation:
     Roll forward pending
 Total pages                          = 959104
 Useable pages                        = 959072
 Used pages                           = 0
 Free pages                           = 0
 High water mark (pages)              = 0
 Page size (bytes)                    = 32768
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1
 Minimum recovery time                = 2012-08-29-06.28.54.000000

 Tablespace ID                        = 8
 Name                                 = TRACKING
 Type                                 = Database managed space
 Contents                             = All permanent data. Large table space.
 State                                = 0x0080
   Detailed explanation:
     Roll forward pending
 Total pages                          = 731648
 Useable pages                        = 731616
 Used pages                           = 0
 Free pages                           = 0
 High water mark (pages)              = 0
 Page size (bytes)                    = 4096
 Extent size (pages)                  = 32
 Prefetch size (pages)                = 32
 Number of containers                 = 1
 Minimum recovery time                = 2012-09-29-08.33.08.000000

然而,笔者是个手贱的菜鸟!没做过数据库恢复,想也没想,就直接敲了 “db2 restore db rmdb11”,并没有加”use tsm”,高高兴兴的等待着数据恢复。结果当命令执行完之后发现悲剧了,df -g看到数据盘使用率变成0%了!!!

好吧,原本只需要恢复归档日志,然后rollforward就能解决。现在真的要全库恢复了!

列出所有成功的备份

$ db2adutl query      


Query for database RMDB11


Retrieving FULL DATABASE BACKUP information.
    1 Time: 20150419205821  Oldest log: S0029102.LOG  DB Partition Number: 0    Sessions: 2  
    2 Time: 20150418205817  Oldest log: S0029098.LOG  DB Partition Number: 0    Sessions: 2  
    3 Time: 20150311205822  Oldest log: S0027842.LOG  DB Partition Number: 0    Sessions: 2  
    4 Time: 20150307205821  Oldest log: S0027705.LOG  DB Partition Number: 0    Sessions: 2  
    5 Time: 20150306213640  Oldest log: S0027645.LOG  DB Partition Number: 0    Sessions: 2  
    6 Time: 20150215215435  Oldest log: S0027134.LOG  DB Partition Number: 0    Sessions: 2  
    7 Time: 20150213205848  Oldest log: S0027077.LOG  DB Partition Number: 0    Sessions: 2  

恢复数据到最近的时间点

db2 restore db rmdb11 use tsm taken at 20150419205821

前滚数据库到最近的归档日志

db2 rollforward db rmdb11 to end of logs and stop

假如找不到归档日志,首先要恢复需要的归档日志:

#dsmc
tsm>retrieve /rmdb11data/rminst11/NODE0000/SQL00001/arch/rminst11/RMDB11/NODE0000/C0000002/S002910*.LOG

这里写图片描述

重新前滚数据库:
这里写图片描述

并检查表空间状态,确认表空间状态正常。

备份
脚本

$ cat db_backup.sh
#!/bin/ksh
. $HOME/.profile > /dev/null 2>&1
DBNM=$1

db2adutl delete full keep 7 without prompting

db2 "backup db $DBNM online use tsm open 1 sessions without prompting"

===========================================

备份命令

db2 backup db rmdb11 online use tsm open 1 sessions without prompting
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/starym/article/details/48680285

ANSI、Unicode、UTF-8、DBCS等字符集及相关数据类型、函数的区别

ANSI、Unicode、UTF-8、DBCS等字符集及相关数据类型、函数的区别 UNICODE环境设置 在安装Visual Studio时,在选择VC++时需要...
  • haiross
  • haiross
  • 2015-04-17 10:01:12
  • 988

Windows Prefetch File Format

Windows Prefetch File Format A Windows Prefetch file consists of one file header and multiple f...
  • haiross
  • haiross
  • 2015-05-26 11:09:02
  • 1111

DB2 备份 恢复 详细测试

本文测试环境:Windows  XP、IBM  DB2  Express V9.5、 DB2  Quest  Center  V9.5在这里举个应用场景以说明数据库恢复备份的思路:那么假设我们周一晚上...
  • hanxin1987216
  • hanxin1987216
  • 2009-09-10 12:54:00
  • 9188

DB2在线备份恢复

DB2在线备份恢复: 1.查看数据库: [db2inst1@localhost ~]$ db2 list db directory  System Database Dire...
  • a3470194
  • a3470194
  • 2013-11-20 17:16:31
  • 1180

DB2的备份(backup)和恢复(RESTORE)数据库方法

一、备份(backup)数据库 1、离线全备份 1)、首先确保没有用户使用DB2:  db2 list applications for db sample  2)、停掉数据库并重新启...
  • zwhfyy
  • zwhfyy
  • 2014-06-06 10:59:08
  • 14445

DB2 数据库在线备份和恢复的操作步骤

1、数据库在线备份操作命令如下: DB2 backup db 数据库名 online to 备份路径 例如:db2 backup db tony online to /home/...
  • tony7706
  • tony7706
  • 2017-04-16 22:53:53
  • 3165

DB2 LOAD命令中COPY NO/COPY YES/NONRECOVERABLE的说明

主要介绍 DB2LOAD 命令所提供的 COPY NO/COPY YES/NONRECOVERABLE 选项,以及与之相关的注册表变量DB2_LOAD_COPY_NO_OVERRIDE的功能和使用...
  • liujinwei2005
  • liujinwei2005
  • 2013-03-06 00:49:47
  • 1515

Freeze file header

SQL> select * from v$version where rownum=1; BANNER ----------------------------------------------...
  • BAT_os
  • BAT_os
  • 2015-05-23 00:36:40
  • 635

db2同系统同版本简单备份和恢复

看到好多资料都是互相拷贝,还那么一大堆啰嗦的命令,这里简单些。   1、db2 backup db db_name 先走进一个建好的目录,然后执行以上命令,返回一个时间戳说明备份成功。   ...
  • Dead_Cicle
  • Dead_Cicle
  • 2013-10-31 11:37:20
  • 953

db2备份还原

一、离线备份 [python] view plaincopy su – db2inst1   #断开所有连接,关闭数据库   #db2 forc...
  • cheng731115175
  • cheng731115175
  • 2016-10-21 11:51:25
  • 674
收藏助手
不良信息举报
您举报文章:DB2数据库备份恢复
举报原因:
原因补充:

(最多只允许输入30个字)