DB2数据库的备份还原详解

news/2024/10/30 18:19:18/

备份:

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

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://www.ppmy.cn/news/598431.html

相关文章

使用 Navicat 备份还原数据库

基本步骤: 1.将服务器的备份文件夹复制到本; 2.打开软件; 3.选择要备份的数据库; 4.点击备份,然后点击确认。

SQL Server 备份还原教程

看了众多教程,自己也写个增强记忆,错误地方麻烦指出。 ----------------------------------------------------------------------备份-------------------------------------------------------------------- 1.打开数据库,成功连接 2.找到…

dism 如备份服务器系统,还在用 Ghost?系统备份还原 DISM 超详细使用方法

对于Vista及以前的操作系统来说,使用Ghost备份、还原系统无疑是最好的方法,但如果我们使用的是Win7或Win8系统,那么,使用系统自身提供的DISM命令备份、还原系统就是个不错的选择。和Ghost相比,使用DISM命令进行备份、还原系统具有三大优点:一是备份文件的体积极小,可极大…

达梦数据库联机与脱机备份还原

一、备份还原简介 数据库备份是 DBA 日常最重要的工作内容。备份的主要目的是数据容灾,保证数据的安全性,在数据库发生故障时,通过还原备份集,将数据恢复到可用状态。 下面主要讲一下以联机执行SQL 语句进行备份还原和脱机工具 D…

sql.gz还原mysql_mysql 数据备份还原

悲剧的一天,不小心将数据库删了。。。 命令行备份数据库 1、mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所必需的所有SQL语句。该命令的基本语法如下: $ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.…

PROXMOX VE备份还原

PROXMOX VE备份还原 内容 备份模式 备份文件名 恢复 组态 挂钩脚本 文件排除 例子 备份是任何明智的IT部署所必需的,并且Proxmox VE利用每种存储和每种来宾系统类型的功能提供了一个完全集成的解决方案。这使系统管理员可以通过mode选项在备份的一致性和来…

server 2016备份还原

jqjq在环境布置完成情况下安装一个 新建一个磁盘 新建一个用户 进行备份命令行输入 删除用户yu 也可以进行自动备份 backuP_sysstate.bat文件 进入安全模式 CTRLc中段 输入ntdsuil在输入activate instance ntds 输入authoritative restore输入 restore object cnyu&#xf…

Veeam 备份还原操作手册

目录 一、安装Bakup&Replication 1.1 选择-Backup &Replication 1.2 选择Install安装 二、添加VC主机 2.1 VMWARE VSPHERE 添加 2.2 VC主机名 2.3 用户认证 三、配置存储 3.1 新建存储 3.2 设置存储的路径 四、备份 4.1 虚拟机的整机备份 4.1.1 选择新建备…