[db2]数据备份与还原

简介: [db2]数据备份与还原

前言

备份还原db2数据库一般有两种方式,一种是使用db2 backup + db2 restore,另一种是db2move + db2look。前者备份的数据库文件不能使用后者的方式进行还原。

  • 实例所有者用户:db2inst1
  • 待备份数据库:testdb,授权用户:zsusr/zspwd

备份

方式1: 使用db2 backup

  1. 切换到实例用户:
su - db2inst1
  1. 显示所有连接数据库的客户端
db2 list application
  1. 显示所有激活的数据库:
db2 list active databases
  1. 强制关闭所有数据库实例(断开所有客户端连接)
db2 force application all
  1. 关闭完实例后立即备份
# 备份完成后会显示: Backup successful. The timestamp for this backup image is : ...
# 注意时间戳
# 语法: db2 backup db <db name> to <path>
db2 backup db testdb to /home/db2inst1/backup

方式2: 使用db2 move

  1. 连接到数据库(不连也行)
db2 connect to testdb
  1. 用db2look生成表结构dll脚本(执行这一步之前最好先找个空目录)
# -d: 指定数据库
# -e: 抽取数据库对象的DDL
# -a: 所有的用户和模式
# -o: 指定输出文件名称
db2look -d testdb -a -e -o db2look_testdb.sql
  1. 备份数据
db2move testdb export -sn testdb -u zsusr -p zspwd

还原

方式1(对应备份方式1)

db2 restore db dbbak from /home/db2inst1 taken at 20200401160847 into dbbak01

方式2(对应备份方式2)

  1. 连接数据库(数据库需要先创建)
db2 connect to testdb user zsusr using zspwd
  1. 使用db2look生成的ddl文件生成表结构
db2 -tvf db2look_testdb.sql
  1. 导入数据
db2move testdb load

补充

  • 还原出来的新库,查看部分表时可能会报错:SQL0668N Operation not allowed for reason code "1" on table xxx SQLSTATE=57016
  • 解决:需要执行:set integrity for <schema_name>.<table_name> immediate checked
  • 原因:部分表依赖其他表,而其他表还没还原出来,所以表呈暂挂状态。
相关文章
|
5月前
|
关系型数据库 数据库 PostgreSQL
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
postgresql|数据库|恢复备份的时候报错:pg_restore: implied data-only restore的处理方案
202 0
|
SQL 关系型数据库 MySQL
Mysql 备份和还原
Mysql 备份和还原
|
SQL 关系型数据库 MySQL
MySQL之数据的备份与还原
MySQL之数据的备份与还原
207 0
|
SQL 数据库
sql server 备份与恢复系列四 大容量模式下的备份与还原
原文:sql server 备份与恢复系列四 大容量模式下的备份与还原 一. 概述   在sql server 备份与恢复系列的第一篇里,有讲到大容量模式下备份与还原的相关知识。这篇重点来演示在大容量模式下常用的备份与还原模式“完整备份+差异备份+日志备份”。
1048 0
|
SQL 存储 监控
MySQL-备份与还原
前言 对于我们运维来说,在mysql数据库领域,别的不说,最起码要会两大技能! 第一大技能:备份与还原 第二大技能:主从异步 关于这两大技能我们先来说说第一个 备份与还原 备份:我们按时定点来备份数据,当下数据最值钱,所以我们要确保数据的安全。
3722 0
|
存储 关系型数据库 MySQL
|
SQL 关系型数据库 MySQL
|
SQL 存储 关系型数据库
|
数据库 数据安全/隐私保护 Windows
下一篇
无影云桌面