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
版权声明:本文为博主原创文章,未经博主允许不得转载。

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

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

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

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

DB2_备份恢复(离线&在线)

转自: http://blog.csdn.net/sand_ant/article/details/10508917 一、离线备份 [python] view plai...
  • duanbeibei
  • duanbeibei
  • 2015年04月15日 13:23
  • 2395

Linux下DB2数据库的备份及还原

Linux下DB2数据库的备份及还原 背景: 放数据库DB2的服务器是windows server操作系统,又在上面安装了Linux虚拟机,然后在虚拟机上安装了DB2。应用服务器上...
  • huangweiloveyou
  • huangweiloveyou
  • 2013年11月04日 17:06
  • 2407

利用DB2控制中心还原数据库[图解]

1、首先进入DB2控制中心:   所有数据库-创建数据库-从备份
  • muzai
  • muzai
  • 2013年08月28日 12:28
  • 1174

DB2 只进行单个表空间的恢复

问题:我有一个DB2的备份要拿到新环境来恢复,但由于某些原因,比如磁盘空间不足,只想恢复其中的一个表空间,如何做? 方法:可以使用表空间级别的恢复,测试过程如下 1.) 查看当前数据库的状态,...
  • qingsong3333
  • qingsong3333
  • 2016年05月04日 14:42
  • 1668

DB2离线备份与恢复

DB2离线备份最简单的命令可以是这样:db2 backup db sample to c:\db2bak    但实际做定时备份时哪这么简单,我整理了UNIX/Linux及Windows下做定时离线备...
  • xcltapestry
  • xcltapestry
  • 2013年12月12日 19:51
  • 1824

db2数据库重定向还原

生产服务器:P550 aix5.3 测试机:P650 aix5.3 DB2的版本号为:DB2 v9.1 目标:在生产数据库服务器上备份,然后将这个备份重定向恢复到测试数据库上。  1 首先...
  • cheng731115175
  • cheng731115175
  • 2016年11月15日 16:09
  • 785

db2数据库重定向恢复整理

自动生成重定向恢复脚本以及重定向恢复状态查询
  • sx5273
  • sx5273
  • 2014年11月25日 16:05
  • 3530

IBM DB2 备份和恢复

本文档记录DB2数据库的基本全备份和恢复操作过程。 参考知识库 http://www-01.ibm.com/support/docview.wss?uid=swg27023555#ic http...
  • bestlanzi
  • bestlanzi
  • 2015年09月06日 17:40
  • 454
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DB2数据库备份恢复
举报原因:
原因补充:

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