DB2数据库的备份还原详解

article/2025/11/1 16:24:30

备份:

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

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目标表名或者新表名.

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


http://chatgpt.dhexx.cn/article/OqBIrJeu.shtml

相关文章

数据库——数据库的备份和还原

文章目录 一、数据库的备份二、数据库的还原1. 第一种方式步骤1:在数据库服务器内部创建数据库步骤2:在cmd窗口执行 2. 第二种方式步骤1:在数据库服务器内部创建数据库步骤2:切换到该数据库,使用source命令还原 一、数…

达梦数据库的备份还原

与Oracle数据库类似,达梦数据库的备份包含物理备份和逻辑备份。 逻辑备份和物理备份各有优劣,一般来说,物理备份拷贝有效的数据页,恢复速度比较快,占用空间比较大;逻辑备份导出数据库中逻辑数据&#xff0…

达梦数据库的备份与还原

目录 一、物理备份还原 1、冷备 (1)使用DM控制台工具console备份 (2)使用dmrman工具进行备份 2、热备 (1)开启归档 (2)联机备份 3、还原恢复 (1)表联…

SQLServer数据库备份与还原

一、Microsoft SQL Server Management Studio是什么? Microsoft SQL Server Management Studio,顾名思义,是微软 SQL Server的管理工具,说白了,就是微软官方管理自家数据库的软件。可以对数据库和表操作,本…

MySQL数据库备份与还原

MySQL数据库备份与还原 一、通过Navicat设置计划1 : 备份文件存储位置2 : 新建计划3 : 测试计划 二、通过Navicat设置自动任务1 : 设置计划任务时间 三、通过Windows设置自动任务1 : 打开任务计划程序2 : 创建基本任务 四、mysql还原五、说明 一、通过Navicat设置计划 1 : 备份…

pgAdmin4数据库备份还原

1、右键数据库选择备份(backup) 2、选择backup格式,输入名字,直接点击备份,备份完成 3、恢复前先删掉所有的表,再右键选择恢复(Restore) 直接选择备份文件点击恢复,恢复…

DM数据库备份与还原

目录 一、基本概述 二、DM8备份还原的方法 2.1备份还原工具 2.2配置归档 2.3使用联机执行 SQL 语句进行备份还原 2.3.1数据库备份 2.3.2表空间备份 2.3.3表备份 2.3.4归档备份 2.3.5数据备份高级主题 2.3.6管理备份 2.3.7数据还原还原 2.4使用DMRMAN工具进行备份还…

达梦数据库备份与还原

一、基础知识 达梦的备份分为逻辑备份和物理备份。 其中物理备份分为完全备份和增量备份。完全备份是指一个备份包含指定数据库或表空间的所有数据。增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。物理备份…

ps高光抠图

原图 目标,给它换一个颜色的背景 我们只需按ctrlalt2提取高光选区,然后ctrlJ复制图层 新建一个新图层,填充其他颜色即可。

PS用套索工具抠图,并修改背景颜色

1.在工具栏找到套索工具,右键选中磁性套索工具,如图: 2.抠出自己想要的部分: 3.新建图层,添加背景色 4.添加背景色,AltDelete 5.系统操作步骤:

ps婚纱抠图

婚纱抠图 1.ctrlJ 复制图层 2.图像→计算→两个通道改为灰色→确定 3.路径→ctrl路径1→前景色调成黑色(altdelete) 4.ctrl工作路径→前背景色调成白色(altdelete) 5.选择→反向→画笔前背景色黑色→涂抹

PS教程之在线抠图的步骤,如何将一张图抠图到另一张图片

Ps是使用较多的专业修图软件,不仅功能齐全,而且操作很方便,所以不管是外出旅游拍照还是艺术照亦或者是证件照都会修图,而对于稍微专业一点的人来说都会使用到PS软件,但是直接在电脑上安装PS软件,常常会出现…

ps选择并遮住抠图

我们一般的证件照要换底,可以使用这个方法。 原图 把猫扣出来 我们先用套手工具把猫咪围一圈 右键选择并遮住 选择第二个画笔,点击加号,画笔大小调大一点 然后在猫咪周围进行涂抹, 最后勾选输出设置的净化颜色,没勾…

PS如何快速使用对象选择工具抠图?

打开Photoshop软件,Ctrl O打开要抠图的素材。 Ctrl J复制一个新的图层,保证原图不受破坏。 点击对象选择工具如下图 使用对象选择工具把图中的对象扣下来 成功抠出图中对象如下图所示 补充:如在软件左边工具栏中没有找到对象选择工具&#…

手把手教你如何用PS抠白底图教程

欢迎来到慕恬瑶平面设计,今天给大家介绍PS抠白底图教程:如何快速用ps抠图。本ps精修教程中包含PS基础的一些工具的技巧使用,请大家跟着教程仔细操作,反复练习,直到能够熟练掌握。接下来,小编就带你正式进入…

怎样抠图怎么把背景换成白色?几个步骤教你轻松掌握

有时候我们一些照片背景色比较杂乱需要想要换成纯色,或者一些证件照需要更换白色底该怎么操作呢?相信一些制作简历,或者从事电商图片制作的小伙伴可能都遇到过这种问题,但是很多在线处理的小网页也不敢上传图片怕会泄漏出去&#…

PS抠图后有毛边怎么处理?

1、打开PS,导入照片,CtrlJ复制出背景副本; 2、在工具箱中选择“魔棒工具/魔术橡皮擦”点击图片中白色区域,去除白色背景; 3、设置前景色为纯黑色,新建图层,填充前景色,发现抠图边缘出…

PS 抠图去除背景

上网找一张素材,如下图,这张图是白底的,没法叠加在其他图片上 用ps打开图片,选择 > 色彩范围 此时,鼠标自动变成吸管,此时你需要: 吸取背景颜色调整颜色容差使得下方预览图中的背景被正确…

PS图片背景透明(抠图)

适用于简单的边界明显的图片,使用版本PS2022。 1、图片准备 2、套索工具圈住要扣的对象 3、ctrlj 将套索出的对象复制为新图层 4、打开通道,选择对比对最大的通道,并右键该通道,复制出一个新通道。 5、点击此通道按下ctrlL&#…

ps-发丝抠图

title: ps-发丝抠图 categories: Photoshop tags: [art, ps, ta] date: 2022-05-14 13:09:09 comments: false mathjax: true toc: true ps-发丝抠图 前篇 PS教程:摄影师教你发丝抠图新方法,混合模式快速去除背景反光! - https://www.ixigua…