备份:

一、连接数据库服务器(在服务器端建立备份文件夹)

windows下(win+r mstsc)输入db2cmd,linux下(我使用的是xshell)

若当前用户为root则需要切换用户至数据库管理员 db2inst1

su - db2inst1

在服务器端,建立备份文件夹backup并赋予写入权限(我一般简单粗暴的赋予全部权限)

chmod -R 777 backup

将DB2命令行窗口的当前路径切换到刚建好的备份目录下

二、导出数据库的表的数据。在切换好的目录下,输入如下命令

db2move sample export -sn db2inst1 -u db2inst1 -p 123

sample 为数据库实例名

-sn 指定要导出的模式名

-u 指定导出所使用的用户

-p 指定导出所使用用户的密码

回车执行后,会在指定的备份目录下,创建很多.ixf和.msg,每张表都会产生2个文件,带lob文件的表会多一个.lob的文件。此外还有EXPORT.out文件,记录了导出的日志,db2move.lst文件记录了,导出的表与导出文件的对应关系。

注意:导出表时可能会报如下错误

解决方法:

  • 查看数据库级配置文件db2codepage(db2 get db cfg命令)查看Database code page的值
  • 查看实例级注册变量的值(db2set -all)查看Database code page的值与之前查出的是否一样,不一样的话就设置成一样的 ,如:db2set DB2CODEPAGE=1386
  • 重启实例(db2stop force db2start)

三、导出数据库表空间、表结构、索引、视图。

db2look -d sample -z db2inst1 -l -e -o create.sql -i db2inst1 -w 123

(-e 表结构 ,-l 表空间 ,-o 文件格式)

-d 指定导出的数据库实例名

-z 指定导出数据库的模式名

-l –e 固定参数1l-

-o 指定导出的文件名和文件格式

-i 指定导出的用户名

-w 指定导出的用户密码

回车执行后,备份目录下会创建一个sql文件,里面记录了所有的表空间、表结构、视图、索引的创建语句。

四、完成数据结构以及数据的导出后进行打包压缩

1、使用tar命令进行打包

tar -cvf backup.tar backup

(backup为打包后的新文件,backup为要打包的文件夹)

tar -cvf(或xvf)+文件名+设备

c:是本地到其他设备

x:是其他设备到本地

r:是追加,比如打包时将其他文件追加进来使用该参数

t:显示tar包里边的内容,但还原文件

2、使用gzip命令对其进行压缩

gzip backup.tar

到此备份过程over!

还原

一、创建数据库表空间

切换用户

su - db2inst1

--创建管理系统数据库 test

create database "test" alias "test" using codeset gbk territory cn

--连接数据库

db2 connect to test user db2inst1 using 123

--建缓冲池

create bufferpool aispool immediate size 1000 automatic pagesize 32 k

--建表空间 AISCOMMON (常规)

CREATE  LARGE  TABLESPACE AISCOMMON PAGESIZE 32 K  MANAGED BY DATABASE  USING ( file '/data/test/aiscommon' 1G ) AUTORESIZE YES  EXTENTSIZE 32 OVERHEAD 7.5 PREFETCHSIZE 32 TRANSFERRATE 0.06 BUFFERPOOL  aispool NO FILE SYSTEM CACHING DROPPED TABLE RECOVERY ON

/data/test 为表空间存放目录

--建表空间 AISSYSSPACE(系统临时)

create system temporary tablespace aissysspace pagesize 32k managed by database using (file '/data/test/aissysspace' 12800 ) extentsize 32 overhead 10.67 prefetchsize 32 transferrate 0.04 bufferpool aispool

--建表空间 AISUSERSPACE(用户临时)

create user temporary tablespace aisuserspace pagesize 32 k managed by database using (file '/data/test/aisuserspace' 12800 ) extentsize 32 overhead 10.67 prefetchsize 32 transferrate 0.04 bufferpool aispool

至此,建库工作已准备完成,接下来进入还原步骤

二、数据还原

1、将服务器上传至指定目录并解压(解压之后会生成一堆 .msg和.ixf文件)

tar -xvf backup.tar.gz

注意:

在执行create.sql脚本前,需在create.sql脚本里修改为connect to 新建数据库名;

修改create.sql中CONNECT TO 连接需还原的数据库

对解压的文件进行授权操作

chmod -R 777 /backup

2、执行create.sql建立表结构

进入到备份数据目录下

cd /backup

执行如下语句建立表结构(进行表结构建立,完成后检查 create.log,确认是否有报错出现。(update语句报错可以无视)

db2 -vtf create.sql -z create.log

-z 指定建表过程中生成的日志文件

3、装载数据

上一步无报错之后在执行 以下语句进行数据装载

db2move sample load -lo replace -u db2inst1 -p 123>dataload.log

住:sample为数据库名 -u后为数据库用户 -p后为数据库用户密码 dataload为新生成的日志文件名

数据装载日志中无报错之后打开数据库查询工具(我用的是ADS),连接到新建的数据库,输入语句,查询出解锁表语句

select 'SET INTEGRITY FOR DB2INST1.'||tabname|| ' CHECK, FOREIGN KEY, GENERATED COLUMN, MATERIALIZED QUERY, STAGING IMMEDIATE UNCHECKED;' from syscat.tables where status='C'

解表语句查询出的结果复制在执行

注意:解表操作需反复执行多次直至如上查询结果为0时。

查看表是否都已解锁成功的语句如下,若结果为空则表示数据还原成功

select tabname,status,const_checked from syscat.tables where status='C'

至此,数据还原工作over!!

备份单张数据表

db2 connect to 数据库名 user 登陆名 using 登陆密码

备份:

db2 export to t1.ixf of ixf select * from 表名

恢复:

db2 import from t1.ixf of ixf insert into目标表名或者新表名.

因为在工作过程中经常性的会进行数据还原操作,索性发布到网络上,共勉之

DB2数据库的备份还原详解相关推荐

  1. Linux系统使用rsync命令进行本地备份还原详解

    简介 rsync是实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息,该软件是通过ssh协议来传输文件. rsync 命令的基本格式有多种,分别是: [roo ...

  2. sql2005备份还原详解

    1.备份    点击要备份的数据库右键-任务-备份            备份类型:完整 2.还原     点击数据库右键-还原数据库             目标数据库:(数据库名)    选择 原 ...

  3. php mysql source_Mysql数据库导入命令Source详解

    Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...

  4. 删除oracle数据库的三种方法,oracle数据库的删除方法详解

    oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...

  5. linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解

    本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...

  6. 数据库mysql_row_MYSQL数据库mysql found_row()使用详解

    <MYSQL数据库mysql found_row()使用详解>要点: 本文介绍了MYSQL数据库mysql found_row()使用详解,希望对您有用.如果有疑问,可以联系我们. mys ...

  7. oracle数据库中索值,Oracle数据库中的索引详解

    Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...

  8. 数据库自动备份还原成新库脚本

    数据库自动备份还原成新库脚本 BACKUP DATABASE [源数据库名] TO DISK = N'G:\testbackup.bak' WITH COMPRESSION,NOUNLOAD , NA ...

  9. oracle tns 代理配置_oracle数据库tns配置方法详解

    TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS ...

  10. mysql数据库的函数_详解数据库_MySQL: mysql函数

    一.内置函数 1.数学函数 rand() round(num) ceil(num) floor(num) 随机 四舍五入 向上取整 向下取整 2.字符串函数 length() 字节长度 char_le ...

最新文章

  1. 判断1000素数的c语言程序,C语言求1~1000素数的简单程序
  2. SVN报Previous operation has not finished; run 'cleanup' if it was interrupted错误的解决方法
  3. 垃圾邮件分类器_如何在10个步骤中构建垃圾邮件分类器
  4. look look C#7
  5. mysql简单聚合函数根据条件单表查询
  6. sqlite管理工具
  7. php获取微信图片访问权限,微信小程序访问图片出现403,图片防盗链的解决办法...
  8. 笔记五:python字符串
  9. centos7中firewall防火墙命令详解
  10. OpenGL学习笔记2 —— 画立方体
  11. shell进阶之tree、pstree、lsof命令详解
  12. git拉取远程计算机上的代码 并 与本地进行比较(git fetch; git pull)
  13. 图神经网络-图与图学习笔记-中
  14. 儒雅计算机导师,龙桂鲁:儒雅的学者,严慈的良师-清华大学新闻网
  15. 使用高德地图API实现历史轨迹查询
  16. 云服务器(Centos7)搭建jdk环境
  17. 获取树莓派4系统信息
  18. PID中各个参数意义
  19. git commit 命令详解
  20. 4.什么是MESI缓存一致性协议?怎么解决并发的可见性问题?

热门文章

  1. lopatkin俄大神精简中文系统Windows 8.1 Pro 19599 x86-x64 ZH-CN SM
  2. html简洁api文档模板,完整word版-API文档模板1.0.0.doc
  3. max(tm)财务进销存管理系统1.3.3.2mysql网络版_Max(TM)财务进销存管理系统
  4. 基于大数据的图书推荐系统
  5. iOS C语言~bzero函数、memset函数
  6. 移动互联应用技术和计算机网络技术,移动互联应用技术团队介绍
  7. 20200409_W_Fluid-Structure Interaction and OpenSeesPy
  8. Linux 添加中文字体库
  9. Unity插件-HighlightingSystem(边缘光)
  10. 数据库系统概论 思维导图