db2数据库备份还原问题

bba1116 2007-11-23 10:56:39
我们现在有个系统用到了db2数据库,我现在想对表数据先进行备份,然后要对数据进行一些测试计算操作,最后要把这备份还原回来(表很多,有100多张,不能单个export出来)。

我查了一下资料,有两种方法:
1、是用db2move export进行备份,然后用db2move import 或者db2move load进行还原。
2、db2 backup db进行备份,db2 restore db进行还原。
但是我看了一些资料说db2move容易出现各种各样的问题,因为是生产环境,我又不敢随便乱操作了。

烦请各位指点一下,用什么操作命令进行备份还原为好?
能具体写一下操作命令吗,我看了一些每个命令有很多参数,我也不知道该用哪些参数为好?
...全文
563 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuqiong 2007-11-26
  • 打赏
  • 举报
回复
db2move只备份了数据.
如果你担心出错.用楼上的方法,对整个数据库环境都进行备份.
littleboys 2007-11-23
  • 打赏
  • 举报
回复
以前做的项目的数据库备份和恢复,windows版本db2 7.2
你可以在新建立一个数据库测试一下。

DB2数据库备份与恢复
运用一个实例说明数据库的备份与恢复操作,实例将数据库备份在D盘,并从D盘恢复:
1.备份数据库
D:\>DB2 BACKUP DB SAMPLES

备份成功。此备份映象的时间戳记是:20050122134413

1.1 除去数据库,再建立同名数据库时候,会提示错误,需要删除数据库
D:\>db2 catalog db dbname on d:
SQL1005N 在本地数据库目录或系统数据库目录中已经存在数据库别名 "dbname" 。

D:\>db2 drop db dbname
DB20000I DROP DATABASE 命令成功完成。
2.恢复
2.1 恢复到一个新数据库,恢复过程自动创建数据库
拷贝备份文件(dbname.0)到D 盘
D:\>DB2 RESTORE DB dbname INTO dbname WITHOUT ROLLING FORWARD WITHOUT PROMPTING

2.2 恢复成功,但是有错误 (57019)
D:\>db2 connect to dbname user db2admin using xxxxxx
SQL1117N 由于 ROLL-FORWARD PENDING,不能连接或激活数据库 "dbname"。
SQLSTATE=57019

D:\>db2 rollforward db dbname to end of logs

前滚状态

输入数据库别名 = dbname
节点数已返回状态 = 1

节点号 = 0
前滚状态 = DB 工作
下一个要读取的日志文件 = S0000000.LOG
已处理的日志文件 = -
上次提交的事务 = 2005-03-14-17.47.33.000000

DB20000I ROLLFORWARD 命令成功完成。

D:\>db2 connect to dbname user db2admin using xxxxx
SQL1117N 由于 ROLL-FORWARD PENDING,不能连接或激活数据库 "dbname"。
SQLSTATE=57019

D:\>db2 rollforward db dbname complete

前滚状态

输入数据库别名 = dbname
节点数已返回状态 = 1

节点号 = 0
前滚状态 = 未暂挂
下一个要读取的日志文件 =
已处理的日志文件 = -
上次提交的事务 = 2005-03-14-17.47.33.000000

DB20000I ROLLFORWARD 命令成功完成。

D:\>db2 connect to dbname user db2admin using xxxxxx

数据库连接信息

数据库服务器 = DB2/NT 7.2.1
SQL 授权标识 = DB2ADMIN
本地数据库别名 = dbname


D:\>db2 select count(*) from t_user

完成!!!!




2.2 恢复到一个原有数据库
D:\>DB2 RESTORE DB SAMPLES USER USERNAME USING PASSWORD

如果该条语句执行时出现:“容器路径不正确”提示,则采取重定向恢复。
3.重定向恢复
3.1
D:\>DB2 RESTORE DB SAMPLES INTO NEWDB REDIRECT
SQL1277N 恢复已检测到一个或多个表空间容器不可访问,或者已将它们的状态设置为“必须定义存储器”。
DB20000I RESTORE DATABASE 命令成功完成。
3.2列出新数据库的各个表空间
D:\>DB2 LIST TABLESPACES SHOW DETAIL

当前数据库的表空间

表空间标识 = 0
名称 = SYSCATSPACE
类型 = 系统管理的空间
内容 = 任何数据
状态 = 0x2001100
详细说明:
恢复暂挂
必须定义内存
可以定义内存

表空间标识 = 1
名称 = TEMPSPACE1
类型 = 系统管理的空间
内容 = 系统临时数据
状态 = 0x2001100
详细说明:
恢复暂挂
必须定义内存
可以定义内存

表空间标识 = 2
名称 = USERSPACE1
类型 = 系统管理的空间
内容 = 任何数据
状态 = 0x2001100
详细说明:
恢复暂挂
必须定义内存
可以定义内存

表空间标识 = 3
名称 = QQ
类型 = 数据库管理的空间
内容 = 任何数据
状态 = 0x2001100
详细说明:
恢复暂挂
必须定义内存
可以定义内存

SQL1350N 应用程序未处于正确状态而不能处理此请求。原因码 = "1"。
3.3根据各表空间的性质重新指定容器
C:\>DB2 LIST TABLESPACE CONTAINERS FOR 0

表空间 0 的表空间容器

容器标识 = 0
名称 = C:\DB2\NODE0000\SQL00001\SQLT0000.0
类型 = 路径

D:\>DB2 SET TABLESPACE CONTAINERS FOR 0 USING (PATH "D:\NEWDB\NODE0000\ SQL00001\SQLT0000.0" )
DB20000I SET TABLESPACE CONTAINERS 命令成功完成。

C:\>DB2 LIST TABLESPACE CONTAINERS FOR 1

表空间 1 的表空间容器

容器标识 = 0
名称 = C:\DB2\NODE0000\SQL00001\SQLT0001.0
类型 = 路径
D:\>DB2 SET TABLESPACE CONTAINERS FOR 1 USING (PATH "D:\NEWDB\NODE0000\SQL00001\SQLT0001.0" )
DB20000I SET TABLESPACE CONTAINERS 命令成功完成。

C:\>DB2 LIST TABLESPACE CONTAINERS FOR 3

表空间 3 的表空间容器

容器标识 = 0
名称 = D:\ww
类型 = 文件
D:\>DB2 SET TABLESPACE CONTAINERS FOR 3 USING (FILE "D:\NEWDB\WW" 5000 )
DB20000I SET TABLESPACE CONTAINERS 命令成功完成。
4.继续恢复
D:\>DB2 RESTORE DB SAMPLES CONTINUE
DB20000I RESTORE DATABASE 命令成功完成。
5.测试连接
D:\>DB2 CONNECT TO NEWDB

数据库连接信息

数据库服务器 = DB2/NT 7.2.1
SQL 授权标识 = ADMINIST...
本地数据库别名 = NEWDB


yangxiao_jiang 2007-11-23
  • 打赏
  • 举报
回复
这种需求,你们为什么不克隆一个库,然后再在克隆的库上进行处理,生产环境的东西就不需要动了
PostgreSQL是以加州大学伯克利分校计算机系开发的POSTGRES,现在已经更名为PostgreSQL. PostgreSQL支持大部分SQL标准并且提供了许多其它现代特性:复杂查询、外键、触发器、视图、事务完整性等。PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。事实上, PostgreSQL 的特性覆盖了 SQL-2/SQL-92 和 SQL-3/SQL-99,首先,它包括了可以说是目前世界上最丰富的数据类型的支持,其中有些数据类型可以说连商业数据库都不具备, 比如 IP 类型和几何类型等;其次,PostgreSQL 是全功能的自由软件数据库,很长时间以来,PostgreSQL 是唯一支持事务、子查询、多版本并行控制系统(MVCC)、数据完整性检查等特性的唯一的一种自由软件的数据库管理系统。 Inprise 的 InterBase 以及SAP等厂商将其原先专有软件开放为自由软件之后才打破了这个唯一。最后,PostgreSQL拥有一支非常活跃的开发队伍,而且在许多黑客的努力下,PostgreSQL 的质量日益提高。从技术角度来讲,PostgreSQL 采用的是比较经典的C/S(client/server)结构,也就是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查询请求,生成规划树,进行数据检索并最终把结果格式化输出后返回给客户端。为了便于客户端的程序的编写,由数据库服务器提供了统一的客户端 C 接口。而不同的客户端接口都是源自这个 C 接口,比如ODBC,JDBC,Python,Perl,Tcl,C/C++,ESQL等, 同时也要指出的是,PostgreSQL 对接口的支持也是非常丰富的,几乎支持所有类型的数据库客户端接口。这一点也可以说是 PostgreSQL 一大优点。本课程作为PostgreSQL数据库管理一,主要讲解以下内容: 1.     PostgreSQL 存储过程基本知识2.     PostgreSQL 用户自定义函数3.     PostgreSQL 控制结构4.     PostgreSQL 游标和存储过程5.     PostgreSQL 索引6.     PostgreSQL 视图7.     PostgreSQL 触发器8.     PostgreSQL 角色、备份和还原9.     PostgreSQL 表空间管理

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧