DB2数据库的备份还原详解
备份:
一、连接数据库服务器(在服务器端建立备份文件夹)
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数据库的备份还原详解相关推荐
- Linux系统使用rsync命令进行本地备份还原详解
简介 rsync是实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限.时间.软硬链接等附加信息,该软件是通过ssh协议来传输文件. rsync 命令的基本格式有多种,分别是: [roo ...
- sql2005备份还原详解
1.备份 点击要备份的数据库右键-任务-备份 备份类型:完整 2.还原 点击数据库右键-还原数据库 目标数据库:(数据库名) 选择 原 ...
- php mysql source_Mysql数据库导入命令Source详解
Mysql数据库导入命令Source详解 几个常用用例: 1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u root -p data ...
- 删除oracle数据库的三种方法,oracle数据库的删除方法详解
oracle数据库的删除方法详解 1.图形界面删除 练习之前记得创建快照 执行命令之前要保证数据库属于open状态 SQL> alter database open; [oracle@local ...
- linux oracle 用户创建,LINUX下Oracle数据库用户创建方法详解
本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切 ...
- 数据库mysql_row_MYSQL数据库mysql found_row()使用详解
<MYSQL数据库mysql found_row()使用详解>要点: 本文介绍了MYSQL数据库mysql found_row()使用详解,希望对您有用.如果有疑问,可以联系我们. mys ...
- oracle数据库中索值,Oracle数据库中的索引详解
Oracle数据库中的索引详解以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一 ROWID的概念 存储了row在数据文 ...
- 数据库自动备份还原成新库脚本
数据库自动备份还原成新库脚本 BACKUP DATABASE [源数据库名] TO DISK = N'G:\testbackup.bak' WITH COMPRESSION,NOUNLOAD , NA ...
- oracle tns 代理配置_oracle数据库tns配置方法详解
TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS ...
- mysql数据库的函数_详解数据库_MySQL: mysql函数
一.内置函数 1.数学函数 rand() round(num) ceil(num) floor(num) 随机 四舍五入 向上取整 向下取整 2.字符串函数 length() 字节长度 char_le ...
最新文章
- 判断1000素数的c语言程序,C语言求1~1000素数的简单程序
- SVN报Previous operation has not finished; run 'cleanup' if it was interrupted错误的解决方法
- 垃圾邮件分类器_如何在10个步骤中构建垃圾邮件分类器
- look look C#7
- mysql简单聚合函数根据条件单表查询
- sqlite管理工具
- php获取微信图片访问权限,微信小程序访问图片出现403,图片防盗链的解决办法...
- 笔记五:python字符串
- centos7中firewall防火墙命令详解
- OpenGL学习笔记2 —— 画立方体
- shell进阶之tree、pstree、lsof命令详解
- git拉取远程计算机上的代码 并 与本地进行比较(git fetch; git pull)
- 图神经网络-图与图学习笔记-中
- 儒雅计算机导师,龙桂鲁:儒雅的学者,严慈的良师-清华大学新闻网
- 使用高德地图API实现历史轨迹查询
- 云服务器(Centos7)搭建jdk环境
- 获取树莓派4系统信息
- PID中各个参数意义
- git commit 命令详解
- 4.什么是MESI缓存一致性协议?怎么解决并发的可见性问题?
热门文章
- lopatkin俄大神精简中文系统Windows 8.1 Pro 19599 x86-x64 ZH-CN SM
- html简洁api文档模板,完整word版-API文档模板1.0.0.doc
- max(tm)财务进销存管理系统1.3.3.2mysql网络版_Max(TM)财务进销存管理系统
- 基于大数据的图书推荐系统
- iOS C语言~bzero函数、memset函数
- 移动互联应用技术和计算机网络技术,移动互联应用技术团队介绍
- 20200409_W_Fluid-Structure Interaction and OpenSeesPy
- Linux 添加中文字体库
- Unity插件-HighlightingSystem(边缘光)
- 数据库系统概论 思维导图