DB2数据库的备份与恢复

一、    查看数据库

[[email protected] ~]$ db2 list db directory

二、    创建测试数据库

$ db2 create database test

三、    启动进入创建的测试库

$ db2 connect to test

l  列出激活的库

$ db2 list active databases

l  查看表空间

$ db2 list tablespaces

l  列出库中的表

$ db2 list tables

Table/View                      Schema          Type  Creation time

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

0 record(s) selected.

l  创建表

$ db2 "create table student(id int,fname varchar(30),age int)"

l  赋予用户权限

db2 "grant use of tablespace  TABLESPACE_TEST to user XXX"

l  向表中插入数据

$ db2 "insert into student values (1,‘Tom‘,22)"

l  查询表内容

四、    在线备份

备份指定库

$ db2 backup db TEST online to /opt/dbbak  include logs

如果报:

SQL2413N  Online backup is not allowed because the database is not recoverable

or a backup pending condition is in effect.

原因:数据库在线备份需要启用归档日志功能,刚装的数据库是没有启用的

备份到null

db2 backup db idsldap online to /dev/null

Backup successful. The timestamp for this backup image is : 20161228092925

增量备份:

/usr/bin/su - db2inst1  -c "db2 backup db FDBKDB61 online incremental use tsm >>/IBM/tsm/db2inst1/FDBKDB61_incbk.log 2>&1"

l  查看归档设置

$ db2 get db cfg for test|grep -i LOGARCHMETH

l  设置归档路径

$ db2 update db cfg using logarchmeth1 disk:/opt/dbbak/arch

如果报

SQL1024N  A database connection does not exist.  SQLSTATE=08003

原因:需要备份数据库一次,然后在修改主日志文件和此日志文件的归档路径

解决方法:要连接数据库时要备份一下。

解决方法:(需要离线备份一次,再连接数据库)

l  显示应用状态

$ db2 list applications

l  停掉数据库应用

$ db2 force applications all

l  再查看应用状态,无输出

$ db2 list applications

SQL1611W  No data was returned by Database System Monitor.

l  做离线备份

$ db2 backup db TEST  to /opt/dbbak

l  生成备份文件和归档日志

l  查看备份记录

> db2adutl query  //该命令是TSM集成命令,无TSM环境不能执行

$ db2 list history backup all for test

l  启动进入库

$ db2 connect to test

l  再做在线备份,可以进行

$ db2 backup db TEST online to /opt/dbbak include logs

五、    删除数据库模拟破坏

$ db2 drop db test

$ db2 connect to test

SQL1013N  The database alias name or database name "TEST" could not be found.

SQLSTATE=42705

六、    恢复数据库

$ db2 restore db TEST from /opt/bak taken at 20170123152954

$ db2 restore db test taken at 20160513020408

这时候,连接数据库,提示:

SQL1117N  A connection to or activation of database "TEST" cannot be made

because of ROLL-FORWARD PENDING.  SQLSTATE=57019

在前滚已经过大于或等于 这个 的时间点之前,数据库 "XXX"

不能脱离前滚暂挂状态,因为节点 "0" 中包含比指定时间更新的信息

解决办法:前滚日志

$ db2 rollforward database test to end of logs and complete

如果报:

SQL4970N  Rollforward recovery stopped on the database named "TEST" because

the rollforward utility cannot reach the specified stop point (end-of-log or

point-in-time) on the following database partitions: "0".

解决办法:恢复日志

$ db2 restore db test logs from /opt/dbbak/ taken at 20160513020408 logtarget /opt/dbbak/

复制恢复的归档文件

$ cp /opt/dbbak/S0000000.LOG /home/db2inst1/db2inst1/NODE0000/SQL00002/LOGSTREAM0000/LOGSTREAM0000

l  启动进入数据库

l  查询表和数据

数据恢复回来

l  关闭应用和库

$ db2 force applications all

$ db2stop force

SQL1064N  DB2STOP processing was successful.

时间: 2024-10-11 03:27:24

DB2数据库的备份与恢复的相关文章

Db2数据库的备份和恢复

DB2数据库备份与恢复 1.    备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库 C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications STEP 3 停掉数据库应用 C:\

MariaDB数据库的备份与恢复

MariaDB数据库的备份与恢复 前提条件: 开启二进制日志:二进制日志可用于数据库恢复时使用,建议二进制日志与数据库数据分开存放. 开启二进制日志的方法: [ [email protected]~]# vim /etc/my.cnf [mysqld] log_bin=/data/binary-log/mariadb-bin 注:日志会存放在/data/binary-log目录下,文件名为mariadb-bin.000001下 mysqldump 逻辑备份工具,适用所有存储引擎,温备:支持完全或

windows下安装DB2数据库以及使用Aqua Data Studio链接数据库

本文只是作为自己的心得体会,不具有一般性! 1.其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意.我安装的DB2数据库版本如下图所示: 2.拿到数据库的版本之后,解压缩,如下图的目录结构: 然后点击setup.exe.出现如下图的安装界面,选中安装产品: 3.会出现如下图所示的界面: 稍微等待一会,会出现如下图所示的界面: 4.然后点击下一步,出现如下图所示的安装界面,选择我既接受IBM条款....然后选择下一步 5.接下来出现如下图所示的界面,可以选择

远程连接db2数据库

在db2数据库中,需要理解catalog(编目)这个概念,理解前先说下db2数据库的体系结构:由系统(节点)也就是主机,下面是实例,实例下面是数据库,然后是表空间,再是数据库对象.现在假设你有一个数据库服务器建立在MDMNODE1 的机器上,你有一个客户端在windows.linux或任何平台上,你现在想建立一个客户端到服务器端的连接,具体步骤如下: <第一步> 要在客户端的机器上能够把远程的服务器能够识别出来,怎么做? 在DB2使用编目(catalog)方式,具体来说就是通过编目把远程的服务

DB2数据库中DB2字符串类型

DB2字符串是DB2数据库中的基础知识,下面就为您分类介绍DB2字符串,供您参考,如果您对DB2字符串方面刚兴趣的话,不妨一看. DB2字符串是字节序列.DB2字符串包括 CHAR(n) 类型的定长字符串和 VARCHAR(n).LONG VARCHAR 或 CLOB(n) 类型的变长字符串.字符串的长度就是序列中的字节数. *定长字符串,CHARACTER(n) 或 CHAR(n):定长字符串的长度介于 1 到 254 字节之间.如果没有指定长度,那么就认为是 1 个字节. *变长字符串,VA

如何在aix环境下创建DB2数据库

创建DB2(DB2认证 DB2培训 )数据库(数据库培训 数据库认证 )应该是每个DB2使用者都需要掌握的知识,下面就为您介绍在AIX(AIX认证考试 IBM AIX培训 )环境下创建DB2数据库的方法,如果您在创建DB2数据库方面遇到过问题,不妨一看. 查看环境变量 db2set 如果发现db2set中db2codepage不是819,执行 以下是代码片段: db2set db2codepage=819 db2 create database test05 on /home/db2inst1

Shell脚本实现DB2数据库表导出到文件

该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文<Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件>中通过Java代码实现调用该脚本并传入参数. 1 #!/usr/bin/env sh 2 3 DBSCHEMA=$1 4 DBUSER=$2 5 DBPASSWORD=$3 6 TABLENAME=$4 7 FILEPATH=$5 8 DELIMITER=$6 9 EXPORTLIMIT=$7 10 11 SQLERR="NO ERROR MSG&

Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件

本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import

DB2数据库表示时间的类型

天王盖地虎,宝塔镇河妖,春雷一声吼,码农满街走! 这是菜鸟级码农人生的第一篇博客,来谈谈我在工作中遇到的问题:DB2数据库表示时间的类型,这是我今天在工作中遇到的一个比较2的问题, 由于我比较菜,当时没有第一时间找到问题处在哪儿,首先我先谈一谈我遇到的问题,在Dao层的实现中对DB2数据库进行数据插入的时候, 我定义的Date类型是这样的 DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") 然而它进入数据库的时