1.
概念
对已经分配使用的数据页进行拷贝保存
2.
分类
1
)脱机备份
在数据库处于关闭状态下进行备份还原,脱机还原的目标主机必须是关闭状态。正常退
出数据库的不需要开启归档,但对于因故障推出的数据库必须配置归档。
2
)联机备份
在数据库处于运行状态正常提供数据库服务的情况下进行备份还原。为确保备份数据一
致性必须配置本地归档。
3. 相关概念
![](https://img-blog.csdnimg.cn/direct/8e7f1069ddbc4cb9a323bf82cb9a96b2.png)
完全备份:拷贝所有已被使用分配的数据页
增量备份:指基于指定的库的某个备份(完全备份或者增量备份),备份自该备份以来
所有发生修改了的数据页。
备份集:用来存放备份过程中产生的备份数据及备份信息。一个备份集对应一次完整的
备份。一个备份集就是一个目录,包括一个或多个备份片文件以及一个备份元数据文件。
![](https://img-blog.csdnimg.cn/direct/eb28fe13ff0a42ba8ffc0f6cd493a4d4.png)
备份片:用来存储备份数据的文件。备份时,目标数据文件内容和归档日志内容经过处
理后,都会存放到各自的备份片文件中。备份片文件后缀为
.bak
。备份集中存放数据页的备
份片称为数据备份片,存放 redo 日志的备份片称为日志备份片。
![](https://img-blog.csdnimg.cn/direct/9649898e2fef433490abe5d437c2971f.png)
元数据:
元数据文件用来存放备份信息,后缀
.meta
。
![](https://img-blog.csdnimg.cn/direct/5760e2547f7949b0a7499e69895e481b.png)
元数据文件中包含以下备份信息:
1.
备份集本身相关信息:是否联机备份、备份的范围、备份加密信息、备份压缩信息等
2.
备份源库的建库参数信息:
DSC
的节点数、是否大小写敏感、
PAGE_CHECK
属性等
3.
数据文件信息:数据文件、文件大小、相关表空间信息等
4.
备份片信息:包含哪些备份片文件、备份片大小等
5.
备份库的
dm.ini
参数信息和密钥文件
数据备份和归档日志备份:
数据备份主要针对数据文件内容,包括:库备份、表空间备份、表备份
1.
库备份:对整个数据库执行备份,拷贝数据库所有数据文件的有效数据页
2.
表空间备份:针对特定表空间执行备份,必须在联机状态下执行
3.
表备份:拷贝指定表中的所有数据页到备份集中,并会记录各个数据页之间的逻辑
关系用以恢复,只能在联机状态下备份,并且一次只能备份一张表,不支持增量表备份
4.
归档日志备份:针对归档日志进行操作,扫描归档目录收集归档日志文件,并将归
档日志写入到备份集中。既可以在数据库运行状态下进行联机归档日志备份,也可以在数据
库关闭状态下进行脱机归档日志备份。
4.
脱机备份
1.
执行数据库脱机备份要求数据库处于脱机状态。
2.
若是正常退出的数据库,则脱机备份前不需要配置归档;若是故障退出的数据库,则备份
前,需先进行归档修复。
3.
因表空间备份和表备份都只能在联机状态下进行,因此脱机状态下的数据备份只包括数据
库备份和归档备份。
备份管理
DMRMAN
工具提供
SHOW
、
CHECK
、
REMOVE
、
LOAD
等命令分别用来查看、校验、删除
和导出备份集。
查看:
show backupset '/home/dmdba/dmbak/full_database'
![](https://img-blog.csdnimg.cn/direct/d96f1f9d5d0244808c581ba52527ba17.png)
![](https://img-blog.csdnimg.cn/direct/4700a2c9f3444397aa7722a23d99b5ac.png)
校验:
CHECK backupset '/home/dmdba/dmbak/full_database'
![](https://img-blog.csdnimg.cn/direct/7198a3ecd19f458b834c68ac900ae217.png)
删除:
REMOVE backupset '/home/dmdba/dmbak/full_database'
![](https://img-blog.csdnimg.cn/direct/def4fbabc5a7400e9b568d105f17e509.png)
5.
联机备份
联机方式支持数据库、用户表空间、用户表和归档的备份。在进行联机库级备份、归档
备份和表空间备份时,必须保证系统处于归档模式,否则联机备份不能进行。在
disql
工具
或图形化管理工具
SQL
编辑区中使用
BACKUP
语句可以备份整个数据库。
1.
当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名后加文
件编号。
2.
系统处于归档模式下时,才允许进行表空间备份。
3.Mount
状态下,不允许进行表空间备份。
4.MPP
集群环境不允许进行表空间备份。
表空间备份 。
![](https://img-blog.csdnimg.cn/direct/b2e5226f0d774624a4f3aa5f5e23a275.png)
表备份
![](https://img-blog.csdnimg.cn/direct/084d513695534ffdbe56e4cc617ebeac.png)
归档备份
1.
数据库必须配置归档;
2.
归档文件的
db_magic
、
permanent_magic
值和数据库的
db_magic
、
permanent_magic
值
必须一样;
3.
归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续
部分。
![](https://img-blog.csdnimg.cn/direct/2bb7e80f0fad40c8b2886b9d2b470e30.png)
已经备份完成的文件可以在默认的备份路径
/home/dmdba/dmdata/DM/bak
下找到
![](https://img-blog.csdnimg.cn/direct/acd28c9750284341ba65c811cfdaa04c.png)
6.
数据还原
达梦数据库仅支持表的联机还原,数据库、表空间和归档日志的还原必须通过脱机工具
DMRMAN
执行
1.
数据库还原与恢复
1.
数据库还原
使用
RESTORE
命令完成脱机还原操作,在还原语句中指定库级备份集,可以是脱机库
级备份集,也可以是联机库级备份集。
RESTORE DATABASE '/home/dmdba/dmdata/DM/dm.ini' FROM BACKUPSET
'/home/dmdba/dmbak/fullbak';
![](https://img-blog.csdnimg.cn/direct/4ee8f72773a740ef8fff8a0c420cf6b0.png)
2.
数据库恢复
使用
RECOVER
命令完成数据库恢复工作,可以是基于备份集的恢复工作,也可以是使
用本地归档日志的恢复工作。数据库恢复是指重做
REDO
日志,有两种方式:从备份集恢
复,即重做备份集中的
REDO
日志;或从归档恢复,即重做归档中的
REDO
日志。
方式一:从备份集恢复
##
执行还原数据库的命令之后,可以直接执行恢复数据库的命令,如下:
RMAN>RECOVER DATABASE '/home/dmdba/dmdata/DM/dm.ini' FROM BACKUPSET
'/home/dmdba/dmbak/fullbak';
![](https://img-blog.csdnimg.cn/direct/2fb8f722af0e40cc899e7fb14782ace5.png)
##
通过使用
WITH ARCHIVEDIR
关键字进行归档恢复,如下:
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' WITH
ARCHIVEDIR'/home/dm_arch/arch'
3.
数据库更新
数据库更新是指更新数据库的
DB_MAGIC
,并将数据库调整为可正常工作状态,与数据
库恢复一样使用
RECOVER
命令完成。数据库更新发生在重做
REDO
日志恢复数据库后。
RMAN>RECOVER DATABASE '/home/dmdba/dmdata/DM/dm.ini' UPDATE DB_MAGIC;
![](https://img-blog.csdnimg.cn/direct/950da3eb8e054bd2bdaab5be7cae196e.png)
2.
表空间还原与恢复
表空间还原
RESTORE DATABASE '/home/dmdba/dmdata/DM/dm.ini' TABLESPACE MAIN FROM BACKUPSET
'/home/dmdba/dmdata/DM/bak/ts_bak_01';
![](https://img-blog.csdnimg.cn/direct/396849157b3c476a91a3d04e0b67bd42.png)
注意:表空间还原的目标库只能是备份集产生的源库,否则将报错
3.
表还原
![](https://img-blog.csdnimg.cn/direct/c72588b855f14857bf4911973f4207a4.png)
4.
归档还原恢复
##
还原归档。启动
DMRMAN
,设置
OVERWRITE
为
2
,如果归档文件已存在,会报错。
##1
、指定还原的目标归档日志目录:
RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dmdba/dmdata/DM/bak/arch_bak_01' TO
ARCHIVEDIR'/home/dmdba/dmdata/DM/bak/arch_bak_01' OVERWRITE 2;
##2
、指定还原目标库的
dm.ini
文件路径:
RESTORE ARCHIVE LOG FROM BACKUPSET '/home/dmdba/dmdata/DM/bak/arch_bak_01' TO
DATABASE '/home/dmdba/dmdata/DM/dm.ini' OVERWRITE 2;
四、逻辑备份还原
1.
概念
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
逻辑导出(
dexp
)和逻辑导入(
dimp
)是
DM
数据库的两个命令行工具,分别用来实现对
DM
数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,即在数据
库服务器正常运行过程中进行的备份和还原。
2.
相关概念
1
)逻辑导出:使用
dexp
工具可以对本地或者远程数据库进行数据库级、用户级、模式级
和表级的逻辑备份。
2
)逻辑导入:
d
imp
逻辑导入工具利用
dexp
工具生成的备份文件对本地或远程的数据库进
行联机逻辑还原。
dimp
导入是
dexp
导出的相反过程
级别:
数据库级(
FULL
):导出或导入整个数据库中的所有对象。
用户级(
OWNER
):导出或导入一个或多个用户所拥有的所有对象。
模式级(
SCHEMAS
):导出或导入一个或多个模式下的所有对象。
表级(
TABLE
):导出或导入一个或多个指定的表或表分区。
3.
逻辑导出
dexp
工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备
份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外
键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以
供查看。
数据库级
FULL:
![](https://img-blog.csdnimg.cn/direct/1f273ca3a2f64519a4f037b23fcbea65.png)
![](https://img-blog.csdnimg.cn/direct/968f800e2683447fa880ddf6899a0c0b.png)
![](https://img-blog.csdnimg.cn/direct/25fb3e63230f468f93ece80de8708c39.png)
用户级 OWNER
![](https://img-blog.csdnimg.cn/direct/9cc6f64bfafb404ca0bcba0ce07e1046.png)
![](https://img-blog.csdnimg.cn/direct/89be3086b282421bafb71e0777d5ec68.png)
![](https://img-blog.csdnimg.cn/direct/ec219a8d279e44b4950a35d62fd43629.png)
模式级 SCHEMAS
![](https://img-blog.csdnimg.cn/direct/b75aee4473d0480ab51633d278722087.png)
![](https://img-blog.csdnimg.cn/direct/740735ea133a47c0b392645b8ec862ba.png)
![](https://img-blog.csdnimg.cn/direct/35695293d1ef4017abbe45a283159023.png)
表级
TABLES
![](https://img-blog.csdnimg.cn/direct/1776f252a8c3407e8666c6d43c5890ec.png)
![](https://img-blog.csdnimg.cn/direct/02ed67926c3c4ea98d68b5c470a197ff.png)
4.
逻辑导入
概念:当使用
dexp
工具在对要备份的文件进行逻辑导出后,就可以使用
dimp
工具来对数据
库进行逻辑还原,这个过程就叫逻辑导入,
dimp
是
dexp
的反过程。
级别:逻辑导入和逻辑导出相同都有四个级别
数据库级(
FULL
):导出或导入整个数据库中的所有对象。
用户级(
OWNER
):导出或导入一个或多个用户所拥有的所有对象。
模式级(
SCHEMAS
):导出或导入一个或多个模式下的所有对象。
表级(
TABLE
):导出或导入一个或多个指定的表或表分区。
数据库级
FULL
设置
FULL=Y
,导入数据库,导入的数据库文件在
/home/dmdba/
,即将生成的日志文件放在
/home/dmdba/dimp
。
![](https://img-blog.csdnimg.cn/direct/23f972024f0944b884e23d7726bfa3b3.png)
![](https://img-blog.csdnimg.cn/direct/bd2b1d7d851c4b7faaee47eac30f4d86.png)
模式级
SCHEMAS
![](https://img-blog.csdnimg.cn/direct/6942cf62d8504d1d91615fc94bf9958f.png)
表级
TABLES
![](https://img-blog.csdnimg.cn/direct/0b4f058200d545a78ec96a4599859365.png)
在导入完成后以上所有的导入日志文件可以在设置的保存位置
/home/dmdba/dimp
下找到
![](https://img-blog.csdnimg.cn/direct/2722bda22281419f8b93affc16b11f44.png)
五、总结
1.
总结
物理备份和逻辑备份的区别在于物理备份是直接扫描数据库的文件(例如数据文件,控
制文件和日志文件等)然后把已经分配使用的数据页复制和保存到备份集中,物理还原就可
以通过备份集来还原数据库。而逻辑备份是将指定数据库的指定对象(库,模式,用户,表)
的数据进行导出到文件(例如导出为
sql
语句),然后目标数据库通过导出的文件来进行导
入的方式还原数据库(导入时就相当于再执行一遍
sql
)。
2.
应用场景
根据我个人的理解逻辑备份还原涉及数据库内的对象,那么它应该适用于数据库的升级
迁移,此外当需要对数据库内的数据进行部分筛选或部分备份时逻辑备份还原应该更适用。
物理备份还原可以快速完整的恢复数据库,那么它应该适用于数据库灾难恢复的情况,
并且用于定期的完整备份,可以确保数据的完整性唯一性。
六、学习心得
通过本次对达梦数据库备份还原的深入学习,我了解了备份在数据库操作中的重要性,
认识了物理备份还原和逻辑备份还原两种主要形式,每种备份还原方式都有其独特的优势和
应用场景。
物理备份还原是通过直接复制数据文件来进行的,这种方式最大的优势就是速度快,适
合在灾难恢复和故障处理以及紧急情况下的快速恢复,通过学习我了解到在进行物理备份时
需要确保数据的一致性,以防备份还原出现问题。而逻辑备份的优势更在于它的灵活性,便
于进行数据筛选和部分备份,这种备份方式可能更适合于数据库的维护升级。
在以后的实际生产场景中,我会随时注意备份的重要性,有了备份一切就还有机会,这
次学习不仅增强了我的数据库操作能力数据库管理能力,也让我对如何有效的保护数据有了
更全面的了解。