注册
数据库组成
技术分享/ 文章详情 /

数据库组成

狂妄 2025/10/24 112 0 0

数据库组成
第一章 基本概念
1.1 表空间与数据文件
DM8数据库支持多种表空间类型,每种类型具有特定的功能和限制:

​表空间分类:​​

​SYSTEM表空间​:存储系统字典和元数据信息

​ROLL表空间​:管理事务回滚段,保证数据一致性

​TEMP表空间​:处理临时数据和排序操作(不支持TEMP表空间备份还原)

​MAIN表空间​:默认用户表空间

​HMAIN表空间​:HUGE表专用存储空间(不支持HMAIN表空间备份还原)

​用户自定义表空间​:用户根据业务需求创建的表空间

1.2 重做日志(REDO日志)
重做日志是数据库恢复机制的核心组件,具有以下特性:

​日志功能:​​

记录所有物理页的修改操作

包含操作类型、文件编号、页号、页内偏移等详细信息

DML操作(INSERT/DELETE/UPDATE)和DDL操作最终都转化为数据页修改

​默认配置:​​

DM8默认创建两个联机重做日志文件:DAMENG01.log、DAMENG02.log

采用循环写入机制,确保日志文件的连续性

1.3 归档日志
归档模式为数据库提供了更高级别的数据保护:

​生成机制:​​

在归档模式下,联机REDO日志被连续拷贝到归档目录

归档日志文件以时间戳命名,如:ARCHIVE_LOCAL1_20160217171507968.log

​性能影响:​​

开启归档模式会对系统性能产生一定影响

提供更安全的数据保护,支持时间点恢复

1.4 PWR记录
PWR(Page Written Record)是重做日志中的特殊记录类型:

​记录内容:​​

表空间ID、文件ID、数据页号和当前LSN信息

每次数据刷盘操作都会生成对应的PWR日志

​优化作用:​​

提升系统故障恢复速度

避免无用I/O操作,快速判断数据是否已写入磁盘

1.5 检查点与日志序列号
检查点和LSN机制共同保证数据的一致性:

​检查点功能:​​

按数据修改顺序将缓冲区中的脏页写入磁盘

动态调整CKPT_LSN值,释放日志空间

​LSN(日志序列号):​​

表示REDO日志产生的顺序

系统为每个REDO日志分配唯一的LSN值

1.6 备份集
备份集是备份操作的基本单位,具有完整的组织结构:

​备份集组成:​​

备份集目录/
├── 备份片文件(.bak) # 存储备份数据
└── 元数据文件(.meta) # 存储备份信息
​元数据内容:​​

备份集本身的相关信息

备份源库的建库参数信息

备份数据文件信息

备份片文件信息

第二章 备份还原核心概念
2.1 备份
备份是将数据经过处理后写入备份文件的过程:

​备份分类标准:​​

​按组织形式​:物理备份 vs 逻辑备份

​按数据库状态​:联机备份 vs 脱机备份

​按粒度大小​:

库备份

表空间备份

归档备份(支持联机和脱机)

表备份

​按数据一致性​:一致性备份 vs 非一致性备份

​按数据完整性​:完全备份 vs 增量备份

​归档备份特性:​​

将归档文件备份到备份片

必要时可使用归档备份集还原归档

2.2 还原
还原是将备份数据写回到目标数据库的过程:

​还原特性:​​

还原后的数据通常处于非一致性状态

需要执行恢复操作才能使数据一致

分类标准与备份类似

2.3 恢复
恢复是应用归档日志使数据达到一致状态的过程:

​恢复类型:​​

​更新DB_MAGIC​:直接更新数据库标识

​从备份集恢复​:利用备份集中的日志

​从归档恢复​:重做本地归档日志

​恢复灵活性:​​

支持恢复到最新状态

支持恢复到指定时间点或LSN值

第三章 备份还原技术原理
3.1 归档机制
3.1.1 本地归档
​工作原理:​​

Redo日志写入联机日志文件后,由归档线程写入本地归档

相对于直接拷贝数据文件,备份集更小,I/O效率更高

​管理工具:​​

sql

– 按时间删除归档日志
SF_ARCHIVELOG_DELETEBEFORE_TIME(time_val);

– 按LSN删除归档日志
SF_ARCHIVELOG_DELETEBEFORE_LSN(lsn_val);
3.1.2 远程归档
​配置方式:​​

共享本地归档的远程归档

通过MAL发送的远程归档

​与本地归档区别:​​

主要区别在于REDO日志写入的位置

远程归档将日志写入其他节点的指定目录

3.1.3 归档切换
​功能说明:​​

确保已写入联机日志但未写入归档的REDO日志完整归档

保证归档日志备份的完整性

​切换语句:​​

sql

– 以下三条语句功能相同,任选其一执行
ALTER DATABASE ARCHIVELOG CURRENT;
ALTER SYSTEM ARCHIVE LOG CURRENT;
ALTER SYSTEM SWITCH LOGFILE;
3.1.4 归档修复
​应用场景:​​

数据库异常关闭导致部分REDO日志未写入归档

归档内容比实际可恢复数据少

​修复流程:​​

收集本地归档日志文件

扫描获取最后一个有效RLOG_PKG偏移

截取有效内容,创建新的归档日志文件

扫描联机日志,拷贝缺失的REDO日志

3.2 备份技术
3.2.1 备份内容关键指标
​CKPT_LSN​:检查点LSN,标识已持久化的修改

​BEGIN_LSN​:备份开始点(CKPT_LSN+1)

​END_LSN​:备份结束点

​FILE_LSN​:文件级别的LSN值

3.2.2 加密与压缩
​压缩配置:​​

压缩级别:1-9级,默认级别1

级别越高压缩比越高,但压缩速度越慢

​加密配置:​​

支持简单加密和完全加密

可指定加密算法

先压缩后加密的处理顺序

​增量备份加密要求:​​

必须与基备份使用相同的加密算法和密码

3.2.3 PWR优化
​优化原理:​​

通过扫描PWR日志比较LSN值与基备份BEGIN_LSN

直接确定需要备份的数据页,提高增量备份效率

​启用方式:​​

sql

– 在备份语句中指定USE PWR启用优化
BACKUP DATABASE INCREMENT USE PWR WITH BACKUPDIR ‘/backup’;
3.2.4 并行备份
​支持范围:​​

库级、归档备份、表空间级并行备份

​配置参数:​​

PARALLEL:指定并行数,默认4

最大并行数受目标数据文件数量限制

并行数为0或1时按非并行处理

​备份结果结构:​​

备份集目录/
├── 主备份集目录
└── 子备份集目录(多个)
3.3 还原与恢复技术
3.3.1 还原过程
​数据还原:​​

将数据页从备份集写回到目标数据文件

库还原需要准备匹配的目标库

表空间还原只能在源库上执行

​归档还原流程:​​

读取元数据文件,校验备份集有效性

收集并过滤需要还原的归档文件

根据OVERWRITE参数处理已存在文件

执行还原操作(解压缩、解密等处理)

3.3.2 恢复过程
​备份集恢复场景:​​

备份集包含归档日志:生成临时归档文件并重做

备份集不包含归档日志:重做本地归档的指定段

无日志需要重做:直接更新DB_MAGIC

3.3.3 解密和解压缩
​解密流程:​​

验证用户输入的加密密码和算法

读取备份数据后执行解密操作

写入目标文件前完成解密

​解压缩:​​

自动进行,无需用户干预

处理顺序:先解密后解压缩

3.3.4 并行还原
​使用条件:​​

仅支持并行备份集的还原

使用目标备份集的并行数

支持非并行还原(指定NOT PARALLEL)

3.4 介质管理层(MML)
​SBT接口架构:​​

DM8自定义的API函数层

负责备份数据在存储介质上的实际读写操作

​存储介质支持:​​

磁盘介质(DISK):dmsbt(Windows:dmsbt.dll,Linux:dmsbt.so)

磁带介质(TAPE):dmsbtex(Windows:dmsbt.ex,Linux:dmsbtex.so)

​第三方集成:​​

只需替换相应的dmsbtex文件即可集成第三方存储

第四章 应用场景分析
4.1 备份还原方式选择
4.1.1 库级备份还原
​适用场景:​​

物理损坏修复

严重逻辑损坏或表空间被删除

要求目标库脱机且正常退出

​工具要求:​​ 需使用DMRMAN工具完成

4.1.2 表空间级备份还原
​适用场景:​​

表空间内多个表数据逻辑损坏

支持从库级备份中还原表空间

4.1.3 归档备份还原
​优势:​​

利用归档文件修复数据

建议保留尽量多的归档文件

4.1.4 表级备份还原
​适用场景:​​

个别表数据逻辑损坏

重要表的频繁备份

表数据迁移操作

​特点:​​ 联机执行,不影响其他表正常工作

4.1.5 完全备份与增量备份
​增量备份策略:​​

基础数据量大、修改不频繁时建议使用

定期重新执行完全备份(如每N次增量备份后)

4.2 恢复方式选择
4.2.1 从备份集恢复
​适用条件:​​

备份集为联机备份集(LEVEL=0)

备份时包含日志(未指定WITHOUT LOG参数)

只需恢复到备份时状态

4.2.2 从归档恢复
​灵活性:​​

所有备份集都支持

可恢复到指定LSN或时间点

不指定则恢复到最新状态

​最终步骤:​​ 所有恢复操作后都需要更新DB_MAGIC

第五章 备份还原实践方法
5.1 联机SQL备份
5.1.1 前置条件
必须配置归档模式

系统处于OPEN状态

5.1.2 数据库备份
​完全备份:​​

sql

– 基本完全备份
BACKUP DATABASE BACKUPSET ‘/backup/bak_full01’;

– 完整语法(FULL参数可省略)
BACKUP DATABASE FULL BACKUPSET ‘/backup/full_bak_01’;

– DDL_CLONE参数:只备份定义不备份数据
BACKUP DATABASE FULL DDL_CLONE BACKUPSET ‘/backup/structure_only’;
​增量备份:​​

sql

– 自动搜索基备份
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/backup/base’;

– 指定基备份
BACKUP DATABASE INCREMENT BASE ON BACKUPSET ‘/backup/full_bak_01’
BACKUPSET ‘/backup/inc_bak_01’;
5.1.3 表空间备份
​完全备份:​​

sql

BACKUP TABLESPACE MAIN BACKUPSET ‘/backup/ts_main_full’;
​增量备份:​​

sql

BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR ‘/backup/base’
BACKUPSET ‘/backup/ts_main_inc’;
​限制条件:​​ MOUNT状态/MPP环境不允许表空间备份

5.1.4 高级备份选项
​完整备份示例:​​

sql

BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET ‘/backup/bak_20231220’
DEVICE TYPE DISK
BACKUPINFO ‘完整数据库备份’
MAXPIECESIZE 300
COMPRESSED LEVEL 5
PARALLEL 6;
​加密备份:​​

sql

BACKUP DATABASE BACKUPSET ‘/backup/encrypted_backup’
IDENTIFIED BY “password123”
WITH ENCRYPTION 2
ENCRYPT WITH RC4;
5.1.5 表备份
​特性:​​

均为联机完全备份

不需要备份归档日志

不支持增量备份

​基本语法:​​

sql

BACKUP TABLE tab_01 BACKUPSET ‘/backup/table_bak’;
​限制:​​ 备份状态/MOUNT状态/MPP环境不允许表备份

5.1.6 归档备份
​前提条件:​​ 服务器必须配置归档

​备份语法:​​

sql

BACKUP ARCHIVE LOG ALL BACKUPSET ‘/backup/arch_bak’;
5.1.7 跟踪日志
​配置示例:​​

sql

BACKUP DATABASE BACKUPSET ‘/backup/with_trace’
TRACE FILE ‘/logs/backup_trace.log’
TRACE LEVEL 2;
​参数说明:​​

TRACE FILE:跟踪日志文件路径

TRACE LEVEL:1-不启用,2-启用(默认1)

5.2 备份管理
5.2.1 备份信息视图
DM8提供完整的备份监控视图体系:

视图名称

功能描述

V$BACKUPSET

备份集基本信息

V$BACKUPSET_DBINFO

备份集的数据库信息

V$BACKUPSET_DB

备份集中数据库文件信息

V$BACKUPSET_ARCH

备份集的归档信息

V$BACKUPSET_BKP

备份片的详细信息

V$BACKUPSET_SEARCH_DIRS

备份集搜索目录

V$BACKUPSET_TABLE

备份表信息

V$BACKUPSET_INDEX

备份索引信息

V$BACKUPSET_SUBS

并行子备份集信息

5.3 还原操作
5.3.1 工具选择
​Disql工具​:支持表还原和库还原

​DMRMAN工具​:表空间还原必须使用

5.3.2 表空间还原条件
表空间必须处于完整状态

支持从表空间完全/增量备份或数据库备份还原

5.3.3 表还原特性
不需要配置归档

表处于OPEN状态时可执行

需要恢复操作完成数据一致性

第六章 最佳实践建议
6.1 备份策略设计
​完全备份频率:​​

生产环境:每周至少一次完全备份

开发测试环境:根据变更频率调整

​增量备份策略:​​

数据变更频繁:每天执行增量备份

结合业务低峰期安排备份窗口

6.2 恢复演练
定期进行恢复测试,验证备份有效性

制定详细的灾难恢复预案

记录恢复时间和成功率的监控指标

6.3 性能优化建议
​备份性能:​​

根据存储性能调整并行度

使用压缩减少网络传输和存储占用

合理设置备份片大小,避免文件过大

​恢复性能:​​

预先准备恢复环境,减少等待时间

根据业务优先级制定恢复顺序

监控恢复进度,及时调整资源分配

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服