DB2 备份 恢复 详细测试
本文测试环境:Windows XP、IBM DB2 Express V9.5、 DB2 Quest Center V9.5 在这里举个应用场景以说明数据库恢复备份的思路: 那么假设我们周一晚上做了一个数据库的备份,周二中午 12 点数据库存储介质出现了故障。如何能够实现恢复呢 ? 那么首先是把数据库
本文测试环境:Windows XP、IBM DB2 Express V9.5、 DB2 Quest Center V9.5 那么假设我们周一晚上做了一个数据库的备份,周二中午12
点数据库存储介质出现了故障。如何能够实现恢复呢
?
那么首先是把数据库恢复到我们备份的那个时刻(周一晚上),但是备份之后和周二
12
点之间对数据库已经做的交易(事物)怎么办呢?这就需要用到数据库日志,因为一旦交易提交,我们对数据库做的
SQL
(
insert
、
update
、
delete
等)都会记录到数据库日志中。所以我们就用数据库日志(前提是数据库日志没有受到损坏)把备份之后和数据库崩溃之前的所有
SQL
操作重做(
redo
)一遍,。这就是数据库备份恢复的原理。
1
结果:
在这里举个应用场景以说明数据库恢复备份的思路:
1、DB2数据备份和恢复实验准备工作
Step1:创建测试数据库TestDB
CREATE
DATABASE
TestDB
2
ON
'
E:
'
3
USING CODESET GBK TERRITORY CN
4
WITH
'
DEMO TestDB
'
;
*** SCRIPT START: Connection: LENOVO-MILO-DB2-TOOLSDB (db2admin) Jul-09-2009 14:34:49 ***
CREATE DATABASE TestDB
ON 'E:'
USING CODESET GBK TERRITORY CN
WITH 'DEMO TestDB';
completed successfully.
DB20000I CREATE DATABASE命令成功完成。
Statement processed successfully in 32.42 secs.
*** SCRIPT END : Connection: NONE Jul-09-2009 14:35:21 ***
Step2:创建数据库管理表区间Data_SP(要先设置好路径和文件)
此处的路径为:E:/DB2_Train/TestDB/UserData
文件名设置为:TestDB.UserData
1
CREATE
REGULAR TABLESPACE Data_SP
2
3
PAGESIZE 4K
4
5
MANAGED
BY
DATABASE
6
7
USING(
FILE
'
E:/DB2_Train/TestDB/UserData/TestDB.UserData
'
2560
)
8
9
BUFFERPOOL IBMDEFAULTBP;
这里设置了初始化为4K * 2560 = 10MB的表空间
结果:TableSpace里面多了一个名为Data_SP表空间
Step3:创建测试表TestTable
1
CREATE
TABLE
TestTable
2
(
3
ID
INTEGER
NOT
NULL
GENERATED ALWAYS
AS
IDENTITY
(START
WITH
0
, INCREMENT
BY
1
, NO CACHE),
4
Message
VARCHAR
(
100
),
5
PRIMARY
KEY
(ID)
6
)
IN
Data_SP;
结果:
:
Step4:在TestTable下面插入测试数据
1
INSERT
INTO
TestTable(Message)
2
VALUES
(
'
测试表建立成功
'
)
--说明:建立测试表并插入数据是为了稍后验证数据库恢复的时候用的--
结果:
或者可以使用
1
db2stop force
2
db2start
3
db2 connect
to
TestDB
4
db2
select
*
from
TestTable
Step5:DB2数据库脱机备份和恢复实验
说明:我将脱机备份的文件放在了以下路径中:E:/DB2_Train/Offline
1、完全脱机备份数据库
1
db2stop force
//
停止及启动DB2实例
2
db2start
3
4
db2 connect
to
TestDB
5
//
指定当前活动的数据库为TestDB
6
7
db2
backup
db TestDB
to
"E:/DB2_Train/Offline"
8
//
完全备份数据库,(脱机,备份时间戳为20090709152004)
9
10
2、模拟灾难现场,强制删除TestDB数据库
1
db2
drop
db TestDB
3、根据数据库完全备份恢复数据库
1
//
利用离线完全备份恢复数据库
2
db2
restore
db TestDB
from
"E:/DB2_Train/Offline" taken at
20090709152004
4、查询表TestTable里面内容,这一块要重点关注,因为它涉及三种备份方式的区别
1
db2stop force
2
db2start
3
4
db2 connect
to
TestDB
5
6
db2
select
*
from
TestTable
Step6、DB2数据库增量备份和恢复实验
1、查看数据库配置文件
1
//
查询数据库配置文件里的参数TRACKMOD的状态,默认为OFF
2
db2 get db cfg
for
TestDB
2、修改数据库配置参数TRACKMOD,使之数据库进行增量备份
1
//
设置参数TRACKMOD为YES,使之数据库可以进行增量备份
2
db2
update
db cfg
for
TestDB USING TRACKMOD YES
3、更改参数后,必须需要完全离线全备份数据库
1
//
修改参数后需要全备份数据库,脱机,时间戳为20090709163256
2
db2
backup
db TestDB
to
"E:/DB2_Train/Online"
3、查看TestTable表的内容
4、插入测试数据
这里我要说明一下为什么要在表这里插入测试据?
状态 | TestTable表里MESSAGE的值 | 备注 |
全备份 | 测试表建立成功 | |
插入数据 |
测试表建立成功 开始增量数据库备份测试 |
|
增量备份 |
测试表建立成功 开始增量数据库备份测试 |
|
还原全备份 |
测试表建立成功 |
|
还原增量备份 |
测试表建立成功 开始增量数据库备份测试 |
1
--
插入数据 开始增量数据库备份测试--
2
INSERT
INTO
TestTable(Message)
3
VALUES
(
'
开始增量数据库备份测试
'
)
5、开始增量备份(脱机备份)
1
//
增量备份数据库,脱机,时间戳为20090709170956
2
db2
backup
db TestDB incremental
to
"E:/DB2_Train/Online"
6、模拟灾难,强制删除数据库
1
//
强制删除数据库,模拟灾难现场
2
db2
drop
db TestDB
7、恢复数据库
首先还原至完全离线备份状态,然后还原至增量离线备份状态
7.1、还原至完全离线备份状态
1
//
还原离线完全备份数据库,脱机,时间戳为20090709163256
2
db2
restore
db TestDB
from
"E:/DB2_Train/Online" taken at
20090709163256
这里要注意还原完全备份后TestTable表里Message的值,也是为什么要加入测试数据的原因
7.2、还原至增量离线备份状态
1
//
--
注意:下述语句中,有一个 automatic ,它表示无论有多少个增量备份,系统将全自动检索恢复数据库的顺序并自动恢复数据库。如果没有 automatic ,则需要多次手动恢复数据库,很麻烦而且容易出错
2
db2
restore
db TestDB incremental automatic
from
"E:/DB2_Train/Online" taken at
20090709170956
3
//
然后提示想继续吗y
OR
n,然后点击y进行恢复
4
Step7、DB2联机备份和恢复实验
联
机备份数据库可以使数据库在备份的同时仍然保持在可用状态。要让数据库支持联机备份,必须更改数据库的日志归档方式。在脱机备份模式下,数据库采用循环日
志方式记录数据库日志,在联机备份模式下,数据库则采用归档日志的方式备份数据库日志。另外,对于联机备份的数据库来说,
活动日志和归档日志就很重要了,一定要经常备份、保存,像银行多数使用的是归档日志的方式,因为银行的数据关乎到民生的生活,哪怕是突然间断电了,数据库崩溃了,但是每一笔的银行交易都需要时时刻刻把交易记录保存下来,所以这里的联机备份模式就很适合这类的应用场景
1、实验开始之前,最好先重新启动数据库实例,并且连接到需要做联机备份的数据库,此例数据库为TestDB
1
db2stop force
2
db2start
3
db2 connect
to
TestDB
2、开始插入测试数据,此处为“开始联机备份恢复的测试”
1
--
开始联机备份恢复测试--
2
INSERT
INTO
TestTable(Message)
3
VALUES
(
'
开始联机备份恢复测试
'
)
3、修改数据库配置文件参数,以启动联机备份模式
1
//
查询数据库配置文件
2
db2 get db cfg
for
TestDB
主要测试的参数为
参数名 | 修改前 | 修改后 |
TRACKMOD | ON | ON |
MIRRORLOGPATH | NULL | E:/DB2_Train/Logs |
LOGRETAIN | OFF | ON |
USEREXIT | OFF | ON |
1
//
参数TRACKMOD设置为ON
2
//
参
数MIRRORLOGPATH设置为E:/DB2_Train/Logs,还有一点需要补充的是,当删除数据库的时候,它会根据数据库配置文件来自动搜寻
相关的文件,因此这个文件夹下面的数据库日志文件同样也会被删除,所以需要将它复制一份放到别的路径下,此例放在了E:/DB2_Train
/Logs_Backup,一定要注意另外保存归档好这些数据库日志文件
3
//
参数LOGRETAIN设置为ON
4
//
参数USEREXIT设置为ON
5
db2
update
db cfg
for
TestDB USING TRACKMOD
ON
MIRRORLOGPATH E:/DB2_Train/Logs LOGRETAIN
ON
USEREXIT
ON
6
7
//
更新配置文件参数好,最好重新启动一下数据库,以使参数设置成功
8
db2stop force
9
db2start
10
db2 connect
to
TestDB
11
12
//
每当更改为联机备份模式的时候,系统会要求你强制离线完全备份一次数据库
4、执行离线完全备份(脱机,时间戳为20090710113202)
1
//
执行联机模式备份之前必须执行离线完全备份一次,否则数据库处于备份暂挂的不可用状态
2
db2
backup
db TestDB
to
"E:/DB2_Train/Online"
5、插入测试数据
1
--
开始联机备份恢复测试--开始增量备份--
2
INSERT
INTO
TestTable(Message)
3
VALUES
(
'
开始联机备份恢复测试--开始增量备份
'
)
6、执行联机在线增量备份,模拟应用在线(联机增量备份,时间戳为20090710115930)
1
//
这里不需要重新断开应用程序连接,就可在线增量备份
2
db2
backup
db TestDB online incremental
to
"E:/DB2_Train/Online"
7、插入测试数据
这里模拟发生了一个应用场景,假设我早上11点钟做了离线完全备份,12点钟做了在线增量备份,但是1点钟突然间发生了不可预见的灾难性事故,数据库崩溃了,在12点钟备份后到1点钟这个时间段我做了一个插入数据“开始联机备份恢复测试-数据库日志”
1
--
开始联机备份恢复测试-数据库日志--
2
INSERT
INTO
TestTable(Message)
3
VALUES
(
'
开始联机备份恢复测试-数据库日志
'
)
这里列出所有备份所对应的TestTable表里Message字段的值
名称 |
ID |
TestTable表里Message字段的值 |
离线完全备份 |
0 测试表建立成功 |
|
在线增量备份 |
0 测试表建立成功 |
|
数据库日志 |
0 测试表建立成功 |
8、保存归档好数据库日志文件
系统默认的数据库日志文件存放位置,此路径由参数MIRRORLOGPATH设置,这里为E:/DB2_Train/Logs
1
//
一定要注意将数据库日志文件复制一份放置到另一个路径上,此处为E:/DB2_Train/Logs_Backup,并且把它归档好,归档的方法下面所述
说
明:Windows操作系统下的数据库备份文件是嵌套在一系列文件夹之下的特殊结构。上例中,D:/DB2_Train
是指备份目录,TESTDB.0是指数据库名称为 TESTDB,DB2 是指实例名称,NODE0000 是指节点名称,CATN0000
是指编目名称,20070801是指备份发生的年月日,形如YYYYMMDD,181241是指备份发生的时间,精确到秒,也就是指 18 点 12
分 41秒,形如HHMMSS,最后的 001 则是备份文件的一个序列号。
9、本例数据库日志归档整理后的文件组织结构
1
//
日志文件最好和数据库备份文件对应起来,这样子到时候比较好查询
10、模拟灾难现场,强制删除数据库
1
//
删除数据库之前,最好先重启一下DB2实例,以断开应用程序和数据库的连接
2
db2stop force
3
db2start
4
//
强制删除数据库
5
db2
drop
db TestDB
11、根据离线完全备份恢复数据库
1
//
离线完全备份恢复数据库
2
db2
restore
db TestDB
from
"E:/DB2_Train/Online" taken at
20090710113202
12、根据在线增量备份恢复数据库
1
//
在线增量备份恢复数据库,记得加上automatic,系统会自动寻找相关的增量备份文件
2
db2
restore
db TestDB incremental automatic
from
"E:/DB2_Train/Online" taken at
20090710115930
3
//
然后根据系统提示,输入y确认恢复
13、前滚恢复数据库,并指定归档日志位置
1
//
前滚恢复数据库,最大程度的保留了数据
2
db2 ROLLFORWARD
DATABASE
TestDB
TO
END
OF
LOGS
AND
COMPLETE OVERFLOW
LOG
PATH("E:/DB2_Train/Logs_Backup/TestDB.
0
/DB2/NODE0000/CATN0000/
20090710
/
115930.001
")
14、查看数据完整性
1
//
查询TestTable表的内容,检查数据的完整性
2
db2 "
select
*
from
TestTable"
15、总结及展望
这
个教程花了我两天的时间来整理和撰写,但是还是感觉到对文章组织结构、逻辑推理方面还远远不够,这篇教程的用意是为了让自己更加深刻的理解DB2数据库的
各种备份和恢复类型,也作为一个知识字典,下次忘记语句了,还可以过来查找,希望自己更加的努力学习DB2数据库,它的魅力实在太大了。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











WeChat을 열고 내 설정을 선택하고 일반을 선택한 다음 저장 공간을 선택하고 저장 공간에서 관리를 선택한 다음 파일을 복원하려는 대화를 선택하고 느낌표 아이콘을 선택합니다. 튜토리얼 적용 모델: iPhone13 시스템: iOS15.3 버전: WeChat 8.0.24 분석 1 먼저 WeChat을 열고 내 페이지에서 설정 옵션을 클릭합니다. 2 그런 다음 설정 페이지에서 일반 옵션을 찾아 클릭합니다. 3일반 페이지에서 저장 공간을 클릭하세요. 4 그런 다음 저장 공간 페이지에서 관리를 클릭하세요. 5마지막으로 파일을 복구하려는 대화를 선택하고 오른쪽의 느낌표 아이콘을 클릭하세요. 보충: WeChat 파일은 일반적으로 며칠 내에 만료됩니다. WeChat에서 받은 파일을 클릭하지 않은 경우 WeChat 파일을 본 경우 WeChat 시스템에서 해당 파일을 지웁니다.

WinRE(Windows 복구 환경)는 Windows 운영 체제 오류를 복구하는 데 사용되는 환경입니다. WinRE에 들어간 후 시스템 복원, 공장 초기화, 업데이트 제거 등을 수행할 수 있습니다. WinRE로 부팅할 수 없는 경우 이 문서에서는 문제 해결을 위한 수정 사항을 안내합니다. Windows 복구 환경으로 부팅할 수 없습니다. Windows 복구 환경으로 부팅할 수 없는 경우 아래 제공된 수정 사항을 사용하십시오. Windows 복구 환경 상태 확인 다른 방법을 사용하여 Windows 복구 환경으로 들어가십시오. 실수로 Windows 복구 파티션을 삭제하셨습니까? 아래에서 전체 업그레이드 또는 Windows 새로 설치를 수행하십시오. 이러한 모든 수정 사항에 대해 자세히 설명했습니다. 1] Wi-Fi 확인

창의성과 활력이 넘치는 짧은 동영상 플랫폼 Douyin에서는 다양하고 흥미로운 콘텐츠를 즐길 수 있을 뿐만 아니라, 같은 생각을 가진 친구들과 심도 있는 소통을 할 수 있습니다. 그중에서도 채팅 스파크는 두 당사자 간의 상호 작용 강도를 나타내는 중요한 지표이며, 종종 의도치 않게 우리와 친구 사이의 감정적 유대에 불을 붙입니다. 그러나 때로는 어떤 이유로 인해 채팅 스파크가 끊어질 수 있습니다. 그렇다면 채팅 스파크를 복원하려면 어떻게 해야 합니까? 이 튜토리얼 가이드는 모든 사람에게 도움이 되기를 바라며 콘텐츠 전략에 대해 자세히 소개합니다. Douyin 채팅의 불꽃을 복원하는 방법은 무엇입니까? 1. Douyin 메시지 페이지를 열고 채팅할 친구를 선택하세요. 2. 서로 메시지를 보내고 채팅을 해보세요. 3. 3일 동안 지속적으로 메시지를 보내면 스파크 로고를 받을 수 있습니다. 3일 단위로 서로 사진이나 동영상을 보내보세요

Xiaomi Cloud Photo Album을 로컬로 복원하는 방법 Xiaomi Cloud Photo Album 앱에서 Xiaomi Cloud Photo Album을 로컬로 복원할 수 있지만 대부분의 친구들은 Xiaomi Cloud Photo Album을 로컬로 복원하는 방법을 모릅니다. 클라우드 포토앨범을 로컬로. 로컬 방식의 그래픽 튜토리얼, 관심 있는 사용자가 와서 살펴보세요! Xiaomi 클라우드 사진 앨범을 로컬로 복원하는 방법 1. 먼저 Xiaomi 휴대폰에서 설정 기능을 열고 메인 인터페이스에서 [개인 아바타]를 선택합니다. 2. 그런 다음 Xiaomi 계정 인터페이스에 들어가서 [클라우드 서비스] 기능을 클릭합니다. Xiaomi로 이동 클라우드 서비스 기능의 경우 [클라우드 백업]을 선택합니다. 4. 마지막으로 아래와 같은 인터페이스에서 [클라우드 앨범]을 클릭하여 앨범을 로컬로 복원합니다.

Furmark에 대해 어떻게 생각하시나요? 1. 메인 인터페이스에서 "실행 모드"와 "디스플레이 모드"를 설정하고 "테스트 모드"도 조정한 후 "시작" 버튼을 클릭하세요. 2. 잠시 기다리면 그래픽 카드의 다양한 매개변수를 포함한 테스트 결과가 표시됩니다. Furmark는 어떻게 자격을 갖추었나요? 1. 푸르마크 베이킹 머신을 사용하여 약 30분 동안 결과를 확인합니다. 기본적으로 85도 정도, 최고 온도는 87도, 실내 온도는 19도입니다. 대형 섀시에 섀시 팬 포트 5개 전면 2개, 상단 2개, 후면 1개로 구성됐으나 팬은 1개만 설치됐다. 모든 액세서리는 오버클럭되지 않습니다. 2. 정상적인 상황에서 그래픽 카드의 정상 온도는 "30-85℃" 사이여야 합니다. 3. 주변온도가 너무 높은 여름에도 정상온도는 "50~85℃"

PHP에서 MySQL 데이터베이스를 백업하고 복원하는 작업은 다음 단계에 따라 수행할 수 있습니다. 데이터베이스 백업: mysqldump 명령을 사용하여 데이터베이스를 SQL 파일로 덤프합니다. 데이터베이스 복원: mysql 명령을 사용하여 SQL 파일에서 데이터베이스를 복원합니다.

제목: 호스트 파일 삭제 후 복원 방법 요약: 호스트 파일은 운영체제에서 매우 중요한 파일로 도메인 이름을 IP 주소에 매핑하는 데 사용됩니다. 실수로 호스트 파일을 삭제한 경우 특정 웹 사이트에 액세스하지 못하거나 기타 네트워크 문제가 발생할 수 있습니다. 이 문서에서는 Windows 및 Mac 운영 체제에서 실수로 삭제된 호스트 파일을 복구하는 방법을 소개합니다. 텍스트: 1. Windows 운영 체제에서 호스트 파일을 복원합니다.

Emmo Diary는 기분을 기록하기 위해 특별히 고안된 소프트웨어로 매일 중요하거나 사소한 일을 기록할 수 있는 개인 일기 공간을 제공합니다. 독특한 감정 인식 기술을 통해 Emmo Diary는 감정을 더 잘 이해하고 처리하는 데 도움을 줄 수 있습니다. 하지만 때로는 내 일기장이 실수로 삭제되어 복원 방법을 모르는 경우가 있습니다. 따라서 이 튜토리얼 가이드는 도움이 필요한 모든 사람에게 도움이 되기를 바라며 자세한 복구 가이드를 제공합니다. Emmo는 어떻게 이전 일기를 검색할 수 있나요? 1. Emmo 선택 화면 좌측 하단의 [설정] 아이콘을 클릭하여 진입합니다. 2. 화면에서 [데이터 백업 및 복원] 아이콘을 선택하고 해당 작업에 들어갑니다.
