注册
达梦数据库的备份与还原(一)
技术分享/ 文章详情 /

达梦数据库的备份与还原(一)

勇往直前 2024/08/02 955 0 0

参考书籍《达梦数据库运维实战》

1 备份与还原类型

达梦数据库的备份与还原有两种类型:逻辑备份与还原和物理备份与还原。

1.1 逻辑备份与还原

逻辑备份是将指定对象(库级、模式级、表级、用户级)的数据导出到文件的备份的方式。
逻辑备份针对的是数据内容,不关心这些数据物理存储在什么位置,利用DEXP导出工具实现。
逻辑还原是逻辑备份的逆过程,利用DIMP工具,将由DEXP导出的备份数据重新导入到目标数据库。

1.2 物理备份与还原

物理备份直接扫描数据库文件(数据文件、控制文件和日志文件等),找出那些已经分配、使用的数据页,复制并保存到备份集中。在物理备份过程中,不关心数据页的具体内容是什么,页不关心数据页属于哪一张表,只是简单地根据数据库文件系统的描述,来挑选有效的数据页。物理备份分为联机备份(SQL备份)和脱机备份(DMRMAN工具)。
物理还原是物理备份的逆过程,物理还原一般是通过DMRMAN工具(或者SQL语句),读取备份集中的数据页(数据文件、数据页、归档文件),并将数据页写入目标数据库对应数据文件相应位置的过程。
使用SQL语句进行联机备份期间,数据库处于运行状态,可以对外提供服务。因此可能有一些处于活动状态的事务正在执行,所以联机备份是非一致性备份,为确保备份数据的一致性,需要将备份期间产生的REDO日志一起备份。因此,只能在配置本地归档,且开启本地归档的数据库上执行联机备份。非一致性备份的备份集只包含数据文件相关内容,没有归档日志信息,利用非一致性备份与还原的数据库无法直接启动,必须借助归档日志来恢复。
使用DMRMAN工具进行脱机备份时,数据库必须关闭。脱机数据库备份会强制将检查点之后的有效REDO日志复制到备份集中,因此,脱机备份是一致性备份。数据库正常关闭时,会生成完全检查点,脱机备份生成的备份集中,不包含任何REDO日志。一致性备份的备份集包含了完整的数据文件内容和归档日志信息;利用一个单独的备份集可以将数据库恢复到备份时的状态。

2 REDO日志和归档模式管理

2.1 联机REDO日志

REDO日志(REDO LOG)记录了所有物理页的修改,包括操作类型、表空间号、文件号、页号、页内偏移、实际数据等。数据库中INSERT、DELETE、UPDATE等DML操作,以及CREATE TABLE等DDL操作转化为对某些数据文件、某些数据页的修改。通过REDO日志可以保证数据库的完整性和一致性。
达梦数据库默认包含两个扩展名为log的联机REDO日志文件,这两个文件循环使用。任何数据页从内存缓冲区写入磁盘之前,都必须保证其对应的REDO日志已经写入到联机日志文件中。
可以通过以下4个视图查看REDO日志和归档日志文件的信息。
(1)VRLOG:显示日志的总体信息。包括当前日志事务号LSN、归档日志、检查点等。 (2)VRLOGBUF:显示日志BUFFER信息。包括BUFFER的使用情况,如状态、总大小、已使用大小等。
(3)VRLOGFILE:显示日志文件的具体信息。包括文件号、完整路径、文件的状态、文件大小等。 (4)VARCHIVED_LOG:显示当前实例的所有归档日志文件信息。
2.2 REDO日志归档
DM实例可以运行在两种模式下:归档模式和非归档模式。在归档模式下,会产生归档日志文件。归档日志有5种类型。

2.2.1 本地归档(LOCAL)

本地归档文件用来存储REDO日志文件中的数据。归档线程负责将REDO日志数据写入本地归档文件中,最多可以设置8个本地归档。启动归档后,如果因为磁盘空间不足导致日志无法归档,那么实例会被强制挂起,直到磁盘空间释放,本地归档成功后,再继续执行。

2.2.2 远程实时归档(REALTIME)

在REDO日志数据从日志缓冲区写入联机REDO日志文件之前,通过MAL系统将REDO日志发送到远程服务器中,远程服务器收到REDO日志后,会返回确认消息。收到确认消息后,执行后续操作。
如果发送REDO日志失败,或从备库返回的数据库模式不是STANDBY,那么将数据库切换为SUSPEND状态,阻塞所有REDO日志的写入操作。

2.2.3 即时归档(TIMELY)

即时归档在主库将REDO日志写入联机REDO日志文件后,在通过MAL系统将REDO日志发送到备库中。即时归档是读写分离集群的实现基础,与实时归档的主要区别是发送REDO日志的时机不同。一个主库可以配置1~8个即时备库。

2.2.4 远程异步归档(ASYNC)

在设定的时间点或者每隔设定时间,启动归档REDO日志的发送。设置定时归档必须确保至少有1个本地归档。系统调度线程根据设定,触发归档REDO日志发送事件。通过MAL系统,获取远程服务器的当前LSN,生成发送归档REDO日志任务,加入任务队列。归档任务线程获取任务,通过MAL系统,将任务发送到远程服务器中。最多可以设置8个异步归档。

2.2.5 远程归档(REMOTE)

远程归档就是将写入本地归档的REDO日志信息,发送到远程节点,并写入远程节点的制定归档目录中。远程归档与本地归档的主要区别是REDO日志写入的位置不同,本地归档将REDO日志写入数据库实例所在的节点的磁盘,而远程归档则将REDO日志写入其他数据库实例所在节点的指定归档目录。远程归档日志文件的命名规范和本地归档日志文件保持一致,都是以“归档名+归档文件的创建时间”进行组合命名。最多可以配置8个远程归档。

2.3 REDO日志操作

2.3.1 查看当前REDO日志信息

image.png

2.3.2 查看实例当前正在使用的REDO日志

image.png

2.3.3 添加REDO日志文件

REDO日志文件大小最小为4096×页大小,若页大小为8KB,则可添加的文件最小值为4096×8KB=32MB。添加REDO日志文件的SQL语句如下。
image.png

2.3.4 修改现有REDO日志大小

修改现有REDO日志大小的SQL语句如下,只能扩大日志大小,不能减小日志大小。
image.png

2.3.5 日志文件重命名

在MOUNT状态下,可以对日志文件进行重命名。日志文件重命名的SQL语句如下。
image.png
注意,目前达梦数据库并没有提供删除REDO日志的语法,所以对于REDO日志,只能添加,无法删除。

2.4 归档模式切换

2.4.1 通过SQL语句切换归档模式

将数据库切换为MOUNT状态的SQL语句如下。
image.png
设置归档信息的SQL语句如下。
image.png
启用归档的SQL语句如下。
image.png
打开数据库的SQL语句如下。
image.png
查看归档信息的SQL语句如下。
image.png
如果想取消归档模式,执行如下命令。(数据守护环境下不支持此操作)。
image.png

2.4.2 图形界面启用归档模式

DM管理工具→实例连接→右键→管理服务器。
image.png
(1)在归档中启用归档并输入归档信息,取消归档则将归档模式改为“非归档”。
(2)在系统管理中,打开数据库,完成归档模式切换。
image.png

3 逻辑备份与还原

逻辑备份与还原使用dexp命令和dimp命令执行,该命令在/数据库安装目录/bin目录下,必须在实例OPEN状态下才能执行。
逻辑导出或导入有以下4种级别。
(1)数据库级(FULL):导出或导入整个数据库中的所有对象。
(2)用户级(OWNER):导出或导入1个或多个用户所拥有的所有对象。
(3)模式级(SCHEMAS):导出或导入1个或多个模式下的所有对象。
(4)表级(TABLE):导出或导入1个或多个指定的表或表分区。
dexp和dimp的选项参数较多,具体可以查看命令的帮助,如下。
image.png
image.png

3.1 全库导出与导入示例

需要注意,执行下面的相关命令时,要把“/数据库安装路径/bin”配置到PATH和LD_LIBRARY_PATH中。

3.1.1 全库导出

全库导出的示例语法如下。
image.png
image.png

3.1.2 全库导入

image.png

3.2 用户级导出与导入示例

3.2.1 导出用户

image.png
删除用户的SQL语句如下。
image.png

3.2.2 导入数据

(1)导入到原用户
创建空用户的SQL语句如下。
image.png
image.png
(2)导入到其他用户
image.png
image.png

3.3 模式级导出与导入示例

3.3.1 导出模式

image.png

3.3.2 导入模式

(1)导入原模式
image.png
(2)导入其他模式
image.png

3.4 表级导出与导入示例

3.4.1 导出表

image.png
删除表。
image.png

3.4.2 导入表

(1)将表导入到原用户下的命令。
image.png
(2)将表导入到其他用户下的命令。
image.png

3.5 DM管理工具中的导出与导入

(1)右键表→导出
image.png
(2)右键表→导入
image.png

4 联机备份与还原(SQL语句)

达梦数据库联机SQL语句备份支持数据库、表空间、表、归档4中备份。支持表空间、表两种还原,数据库还原和归档还原必须在DMRMAN工具中执行。在数据库、归档、表空间备份,以及表空间还原时,必须保证系统处于归档模式下。

4.1 数据库备份

数据库级别只支持联机备份,不支持恢复。
SQL备份有以下两种主要方式.
(1)完全备份
image.png
(2)增量备份
image.png

4.2 DM管理工具中使用的联机备份

备份→右键库备份
image.png

4.3 表空间备份与表空间还原

联机执行SQL语句备份支持表空间级别的备份。表空间的还原需要数据库关闭,进行脱机还原。

4.3.1 表空间备份

(1)完全备份表空间
image.png
(2)增量备份表空间
image.png

4.3.2 表空间还原

RMAN>restore database ‘/opt/dmdbms/data/DAMENG/dm.ini’ tablespace main from backupset ‘/opt/dmdbms/data/DAMENG/bak/ts_full_bak_01’;

4.3.3 表空间恢复

RMAN>recover data base ‘/opt/dmdbms/data/DAMENG/dm.ini’ tablespace main;

4.4 表备份与表还原

4.4.1 表备份

image.png

4.4.2 表还原

(1)直接还原
image.png
(2)重构表并还原
image.png
(3)还原数据不重建索引
image.png
(4)还原数据不重建约束
image.png

4.5 归档备份

查看归档日志的有效LSN范围。
image.png
备份指定的归档日志文件的SQL

backup archivelog lsn between 44821 and 44897 delete input backupset '/opt/dmdbms/data/DAMENG/arch/';

备份所有归档日志文件的SQL

Backup archivelog all delete input backupset '/opt/dmdbms/data/DAMENG/arch/';

https://eco.dameng.com

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服