您的位置:程序门 -> db2 -> 基础类



db2数据库备份还原问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


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容易出现各种各样的问题,因为是生产环境,我又不敢随便乱操作了。

烦请各位指点一下,用什么操作命令进行备份还原为好?
能具体写一下操作命令吗,我看了一些每个命令有很多参数,我也不知道该用哪些参数为好?
发表于:2007-11-23 13:43:361楼 得分:10
这种需求,你们为什么不克隆一个库,然后再在克隆的库上进行处理,生产环境的东西就不需要动了
发表于:2007-11-23 16:36:232楼 得分:30
以前做的项目的数据库备份和恢复,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


发表于:2007-11-26 11:15:133楼 得分:10
db2move只备份了数据.
如果你担心出错.用楼上的方法,对整个数据库环境都进行备份.


快速检索

最新资讯
热门点击