一、数据库离线(脱机)备份

1、cd /db2_backup 切换到存放备份文件的目录,如果没有要新建

2、db2 list applications for db dbName(数据库名) 确保没人使用数据库断开连接

3、db2stop force

4、db2stop db2start  重启数据库实例保证断开全部连接

5、db2 backup db dbName 执行备份命令

6、ll  查看备份目录会有一个后缀为.001的一个备份文件生成其中包含当前时间戳。

二、数据库在线备份

1、在线备份

$ db2 backup db dbname online to 路径 include logs

$ db2 restore db dbname from 路径 taken at 时间戳

$ db2 "rollforward db dbname to 2013-02-31-20.00.00.000000 using local time and complete overflow log path (/backup/logs)"    前滚日志恢复至指定时间点

2、查看备份记录

$ db2 list history backup all for dbname   可以看到备份的纪录

三、数据库直接还原

1、cd /db2_backup  进入到备份目录

2、db2 restore db dbName taken at  20101122205614 without rolling forward

执行上述命令则可以还原数据库,如果有同名数据库将会提示是否覆盖,如果选择Y将会覆盖本地数据库。20101122205614 是备份文件的时间戳,如备份文件名是PBCMONEY.0.lilax.NODE0000.CATN0000.20101122205614.001,则20101122205614即是时间戳Times。

还原完成后则要测试连接是否正确 db2 connect to dbName 如果成功则显示数据库信息,否则还原失败。

3、可能遇到的问题:

注意:如果还原后提示一个或者多个表空间无法还原则可能是磁盘空间不够,需要扩容后重新还原

注意:如果还原后提示SQL1117N  由于 ROLL-FORWARD PENDING,不能连接或激活数据库 "XXX"。

SQLSTATE=57019

执行命令:rollforward db XXX to end of logs and complete

报错:SQL4970N 由于数据库分区 "0" 上的日志文件丢失或损坏,所以对数据库 "XXX"

执行的前滚恢复操作无法到达指定的停止点(日志末尾或时间点)。前滚恢复操作在处理日

志文件 "S0036188.LOG" 时停止。

从客户环境数据库服务器获取S0036188.LOG

3.查询该还原目标数据库日志文件路径

执行命令:get db cfg for XXX

找到日志文件路径,把第3点获得的日志拷贝到该路径

4.前滚数据库

命令:rollforward db XXX to end of logs and complete

5.还原数据库完成。

四、数据库重定向还原

1、获得A库备份文件,考到B库服务器上;

2、执行命令通过备份文件自动生成重定向脚本;

$ db2 restore db [A库名称] <from ‘[备份文件存放地址]’> taken at [备份文件时间戳] redirect generate script [生成脚本名称]

Eg:

$ db2 restore db regiedb taken at 20160817162305 redirect generate script 20160818_regiedb2sznhm_redirect.sql

[db2hyzm@hyzmdb2sertemplate ~]$ cd hnzmbackup201608

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$ ll

总用量 1442180

-rw-r--r--. 1 db2hyzm db2iadm1 1476788224 8月  18 18:47 REGIEDB.0.db2hyzm.DBPART000.20160817162305.001

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$ db2 restore db regiedb taken at 20160817162305 redirect generate script 20160818_regiedb2sznhm_redirect.sql

SQL1433N  应用程序已与 "SZMHN"

相连,同时在发出命令时要求与 "REGIEDB"

连接,以便成功执行该命令。

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$ db2 connect reset

DB20000I  SQL 命令成功完成。

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$ db2 restore db regiedb taken at 20160817162305 redirect generate script 20160818_regiedb2sznhm_redirect.sql

DB20000I  RESTORE DATABASE 命令成功完成。

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$ ll

总用量 1442196

-rw-r--r--. 1 db2hyzm db2iadm1      13495 8月  18 22:55 20160818_regiedb2sznhm_redirect.sql

-rw-r--r--. 1 db2hyzm db2iadm1 1476788224 8月  18 18:47 REGIEDB.0.db2hyzm.DBPART000.20160817162305.001

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$

3、不用创建库直接回复就会创建数据库了,查看生成的脚本,参考脚本将一些目录修改成想要还原导的地址即可;

Eg:修改后的脚本

db2 RESTORE DATABASE REGIEDB[p1]  TAKEN AT 20160817162305[p2]  ON '/home/db2server/zmyhn'[p3]  DBPATH ON'/home/db2server/zmyhn/zmhn'[p4]  INTO SZMHN[p5]  REDIRECT WITHOUT ROLLING FORWARD

-------------------------------------------

db2 SET TABLESPACE CONTAINERS FOR 4 USING "( FILE '/home/db2server/zmyhn/tablesps/zmhn/[p6] datafile01.dat' 32000, FILE '/home/db2server/zmyhn/tablesps/zmhn/datafile02.dat' 32000, FILE '/home/db2server/zmyhn/tablesps/zmhn/datafile03.dat' 32000, FILE '/home/db2server/zmyhn/tablesps/zmhn/datafile04.dat' 32000, FILE '/home/db2server/zmyhn/tablesps/zmhn/datafile05.dat' 32000)"[p7]

-----------------------------------------

db2 RESTORE DATABASE REGIEDB[p8]  CONTINUE

-----------------------------------------

提示:整个过程需一气呵成,否则会很多意想不到错误。有问题就从头再来一次就好了。

4、恢复完成后,连接数据库检查是否正常。

$ db2 connect to SZMHN user db2admin using db2admin

如有此类错误:

SQL1762N 不能与数据库相连,因为没有足够的空间用来分配活动的日志文件。SQLSTATE=08004

【01】可先查看数据库配置:

$ db2 get db cfg for SZMHN|grep LOG

目录高速缓存大小 (4KB)                (CATALOGCACHE_SZ) = 300

日志缓冲区大小 (4KB)                          (LOGBUFSZ) = 2150

日志文件大小 (4KB)                          (LOGFILSIZ) = 2048

主日志文件的数目                           (LOGPRIMARY) = 5

辅助日志文件的数目                          (LOGSECOND) = 20

已更改的至日志文件的路径                   (NEWLOGPATH) =

日志文件路径                                            = /home/db2server/zmyhn/zmhn/db2hyzm/NODE0000/SQL00001/LOGSTREAM0000/

溢出日志路径                          (OVERFLOWLOGPATH) =

镜像日志路径                            (MIRRORLOGPATH) =

磁盘上已满的块日志                    (BLK_LOG_DSK_FUL) = NO

非记录块操作                          (BLOCKNONLOGGED) = NO

事务使用的最大主日志空间的百分比        (MAX_LOG)= 0

1 个活动 UOW 的活动日志文件的数目        (NUM_LOG_SPAN) = 0

第一个日志归档方法                        (LOGARCHMETH1) = OFF

logarchmeth1 的归档压缩   (LOGARCHCOMPR1) = OFF

logarchmeth1 的选项                        (LOGARCHOPT1) =

第二个日志归档方法                        (LOGARCHMETH2) = OFF

logarchmeth2 的归档压缩   (LOGARCHCOMPR2) = OFF

logarchmeth2 的选项                        (LOGARCHOPT2) =

在索引构建期间记录页                    (LOGINDEXBUILD) = OFF

日志 DDL 语句                           (LOG_DDL_STMTS) = NO

日志应用程序信息                        (LOG_APPL_INFO) = NO

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$

【02】查看磁盘设备空间使用情况:

$ df -h

Filesystem            Size  Used Avail[p9]  Use% Mounted on

/dev/mapper/vg_hyzm-lv_root

50G   39G  7.7G  84% /

tmpfs                 2.9G  248K  2.9G   1% /dev/shm

/dev/sda1             477M   42M  410M  10% /boot

/dev/mapper/vg_hyzm-lv_home

43G   36G  5.2G[p10]   88% /home

/dev/sr0              3.6G  3.6G     0 100% /media/RHEL-6.7 Server.x86_64

[db2hyzm@hyzmdb2sertemplate hnzmbackup201608]$

由于把归档日志主日志大小和个数设置过大,导致日志文件所在盘空间不足连接数据库时提示上述错误。此时需要修改主日志大小或个数。

Eg:

$ db2 update db cfg for szmhn[p11]  using logfilsiz 2048[p12]  logprimary 5[p13]

再次连接,检查表,nickname、视图的可用性。

员数据库名称

备份文件的时间戳。

数据的存储目录,系统管理表空间会在此目录以【原实例名】/【NODE0000】/【新库名】/* 的结构创建。

数据库的主目录,存放日志、管理文件等。

新库名称。

序号为4的表空间文件存放的目录,自行定义,但要先用Linux系统用户 root创建,并赋予至少775的权限。

括号首位加双引号,否则报语句错误。

原库的名称。

剩余的空间

此挂节点设备剩余空间

数据库名

日志文件大小

主日志文件个数

DB2数据库学习之数据库备份还原相关推荐

  1. dm归档文件配置、sql 日志的开启和关闭以 及基本的操作、创建定时备份和删除备份的作业、数据库物理、逻辑备份还原

    1.达梦数据库中归档文件配置. 生产环境必须开启归档日志,且必须限制归档日志保留量,限制方法: 设置归档空间大小限制即指定 SPACE_LIMIT 参数(单位是 MB). 定期删除归档日志(设置定时作 ...

  2. 达梦数据库联机与脱机备份还原

    一.备份还原简介 数据库备份是 DBA 日常最重要的工作内容.备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态. 下面主要讲一下以联机执行SQL 语 ...

  3. oracle临时表经常被锁_数据库学习——Oracle 数据库了解与使用

    一. 数据库相关概念 1 什么是数据库 所谓的数据库其实就是数据的集合.用户可以对集合中的数据进行新增.查询.更新.删除等操作.数据库是以一定方式储存在一起.能与多个用户共享.具有尽可能小的冗余度.与 ...

  4. h2数据库学习------h2数据库介绍

    介绍 H2是一款内存数据库,适合我们在开发阶段.学习阶段调试代码使用,并不适用于生产阶段,可以满足我们学习与调试代码的需求. H2 数据库是一个用 Java 开发的嵌入式(内存级别)数据库,它本身只是 ...

  5. linux恢复mysql数据库_linux下如何备份还原mysql数据库

    本文介绍了linux下如何备份与恢复mysql数据库. 数据库备份是非常重要的.如果定期做好备份,这样就可以在发生系统崩溃时恢复数据到最后一次正常的状态,把损失减小到最少. 一. 用命令实现备份 My ...

  6. 【数据库学习】——数据库可视化--Navicat下载安装连接教程

    目录 进入网站 下载可视化软件 安装 双击桌面图标,选择试用 连接数据库 查看数据库中的表,如下所示 常用数据库有: MySQL.sqlite等 进入网站 Navicat | 产品https://ww ...

  7. linux系统中mysql表中能添加中文_数据库学习之数据库增删改查(另外解决Mysql在linux下不能插入中文的问题)(二)...

    数据库增删改查 增加 首先我们创建一个数据库user,然后创建一张表employee create table employee( id int primary key auto_increment, ...

  8. 数据库学习--DQL(数据库查询语言)

    查询语句 select * from 表 where 条件 [inner/left/right join 表1 on 条件] group by 列名 having 组 order by 列名 limi ...

  9. h2数据库学习----h2数据库基本使用

    依赖 <dependency><groupId>org.glassfish.hk2</groupId><artifactId>hk2</artif ...

最新文章

  1. 超级简单的jquery轮播图demo
  2. R语言数据格式转换函数、数据类型判断函数(numeric、character、vector、matrix、data.frame、factor、logical)、R语言数据格式类型转换
  3. java resume_Java JPushInterface.resumePush方法代码示例
  4. php职能等级,php如何设置报错级别
  5. Zookeeper .Net客户端代码
  6. Lua 学习笔记(一)
  7. 宝塔LNMP使用步骤nginx+php 7.2
  8. 轻量化网络MobileNet解析
  9. 大数据之-入门_Hadoop发展历史---大数据之hadoop工作笔记0009
  10. 2019青海大学计算机调剂,2019青海大学招收硕士研究生调剂公告
  11. java 制作动态手机壁纸_android 动态切换壁纸实例 利用service机制实现 附完整源码 带动态截图...
  12. [C++] map 迭代器 查找
  13. @DateTimeFormat 和 @JsonFormat 注解的区别和使用
  14. Go 开发关键技术指南 | 带着服务器编程金刚经走进 2020 年
  15. win11怎么装回win10系统
  16. 大学计算机协会大一面试,大一学生社团面试自我介绍
  17. HDOJ-1823(矩形树,点更新 + 区间查询)
  18. php 中%3cspan%3e,vue实战(4)——网站统计之——友盟百度统计
  19. 设计模式之内容观察者模式
  20. 3D建模师这个职业薪资高吗?晋升路线有哪些?

热门文章

  1. java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题
  2. JoVE肿瘤转移专刊征稿,写方法拍视频教程发SCI
  3. NPOI之C#下载Excel
  4. 安装虚拟机Ubuntu 18.04基础配置
  5. 【移花接木】Maven项目结构调整解决方案
  6. 异步编程:.NET4.X 数据并行
  7. root is not in the sudoers file.  This incident will be reported的解决方案
  8. Java+JSP基于ssm驾校预约管理系统-计算机毕业设计
  9. 抠图中的前景蒙版(alpha matte)与掩膜(mask)的区别
  10. linux xenserver教程,XenServer教程:XenCneter实现热迁移步骤