达梦数据库DM8备份与恢复

达梦数据库DM8备份与恢复

基本概述

DM 备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态, 就需要将备份过程中产生的归档日志也保存到备份集中。

还原与恢复是备份的反过程。 还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务,这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库服务器自动进行回滚。

达梦数据库备份的分类

DM8数据库备份大致上可以分成两种方式:物理备份与逻辑备份

物理备份

DM8物理备份是直接扫描数据库文件,找出那些已经分配、使用的数据页,拷贝并保存到备份集中。物理备份过程中,不关心数据也的具体内容是什么,也不关心数据也属于哪一张表。

逻辑备份

DM8逻辑备份是指利用dexp导出工具,将制定对象(库、模式、表)的数据导出到文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

按备份内容来分

按照备份内容不同,可以分为数据备份****和归档日志备份。 数据备份主要针对数据文件内容,包括库备份、 表空间备份和表备份。

库备份,顾名思义就是对整个数据库执行的备份,又称为库级备份。库备份会拷贝数据库中所有数据文件的有效数据页,如果是联机备份,则还会拷贝备份过程中产生的归档日志,写入到备份集中。

表空间备份是针对特定表空间执行的备份,又称为表空间级备份。表空间备份只能在联机状态下执行。

表备份则拷贝指定表的所有数据页到备份集中,并会记录各个数据页之间的逻辑关系用以恢复。表备份只能在联机状态下执行,一次表备份操作只能备份一张用户表,并且不支持增量表备份。

归档日志备份, 是专门针对归档日志文件进行操作,不涉及任何数据文件内容。归档日志备份扫描归档目录收集归档日志文件, 并将归档日志写入到备份集中。 既可以在数据库运行状态下,执行联机归档日志备份;也可以在数据库关闭状态下执行脱机归档日志备份。

脱机备份 (冷备)

本文使用达梦DMRMAN工具进行脱机备份。

DMRMAN 客户端是 DM 软件的一部分,用来执行目标数据库的备份和恢复操作。 DMRMAN 客户端是一个命令行工具,命令行的好处是管理员可以编写复杂的脚本,将 DMRMAN 和操 作系统的任务调度结合起来可以实现备份的自动化。

1、关闭数据库实例服务

./DmService stop

bin目录下默认是没有DmService,文章后面会介绍如何创建这个服务。

在这里插入图片描述

2、使用dmrman工具进行备份

备份语句:

 backup database '/home/dmdba/data/DAMENG/dm.ini' backupset '/home/dmdba/data/bak';

如下图所示:
在这里插入图片描述
为了查看效果我们随意删除一个数据文件,这里删除MIAIN.DBF

如下图所示:
在这里插入图片描述

3、检查备份集是否有效

 check backupset '/home/dmdba/data/bak';

如下图所示:
在这里插入图片描述

4、使用dmrman工具进行还原

restore database '/home/dmdba/data/DAMENG/dm.ini' from backupset '/home/dmdba/data/bak';

如下图所示:
在这里插入图片描述

5、恢复

recover database '/home/dmdba/data/DAMENG/dm.ini' with archivedir '/home/dmdba/data/bak';

如下图所示:
在这里插入图片描述

6、更新 ▲

▲不更新可能会导致不能开启达梦数据库服务。

recover database '/home/dmdba/data/DAMENG/dm.ini' update db_magic;

如下图所示:
在这里插入图片描述
恢复的效果:(MAIN.DBF已经恢复)
在这里插入图片描述
自此,一个简单的冷备(包含备份与还原的步骤)到此完成。

数据库在线备份(联机备份)

1、查看DmAPService服务,DmService是否开启

DmAPService 和DmService在bin目录下

./DmAPService start
./DmService start

如下图所示(都已经开启):
在这里插入图片描述
在这里插入图片描述

2、开启数据库归档模式

以下操作在disql下进行

切换为归档模式:

alter database mount;
alter database archivelog;

如下图所示:
在这里插入图片描述
归档日志路径配置(根据自己的路径配置):
与下图所示:
在这里插入图片描述
切回来open:

alter database open;

如下图所示:
在这里插入图片描述

3、数据库全库备份

进行全库备份备份集名为‘2021.7’

backup database full backupset '2021.7';

在这里插入图片描述
出现如下错误:
在这里插入图片描述
说明
一般是在 restore 阶段,需要检查两点:

1、DMAP 是否启动,需要使用 DMAP 来进行备份集还原。
2、使用正确的用户启动 DMAP,需要保证存放备份集文件的备份集目录有读取权限。

解决办法:
启动 DMAP 服务
./DmAPService start

4、查看数据库备份集文件

select * from v$backupset;

如下图所示:
在这里插入图片描述

至此,数据库全备的联机备份就完成了
也可以进行 表空间备份
示例语句:

backup tablespace "表空间名" full  backupset 'xxxx';

也可以进行 表备份
示例语句:

backup table "模式名"."表名" full  backupset 'xxx';

增量备份

在全备的基础上进行增量备份

backup database increment with   backupdir  '2021.7' backupset 'incr_data';

前面backupdir的内容是基表(全备的),后面的是自己定义的一个文件夹

如下图所示:
在这里插入图片描述
查看数据库备份集文件

select * from v$backupset;

如下图所示:
在这里插入图片描述

提示

创建服务

后台启动,这里还有一种方式
在bin目录下有一个名字叫service_template的文件夹,内容如下图所示:
在这里插入图片描述
通过配置DmService这个文件并复制到bin目录下面来启动服务。

配置INI_PATH:路径为dm.ini文件的所在位置
如下图所示:
在这里插入图片描述

保存后
通过以下语句复制到bin目录下,方便以后启停

cp DmService ../

然后我们就可以在bin目录,通过以下命令来启停服务:

./DmService start //启动
./DmService stop //停止

常见错误

1、bakres连接DMAP失败,备份时提示管道连接超时
在这里插入图片描述
冷备可以不用开归档,但需要开启 DmAP 服务,需要关闭数据库实例,针对整库做备份
开启dmap服务就可以继续备份了。

解决办法:在bin目录下执行以下命令:

./DmAPService start

2、服务器正在运行或者存在其他进程正在操作同一个库.

这个就是没有关闭实例服务,关闭服务即可继续备份。
解决办法:在bin目录下执行以下命令:

./DmService stop

更多资讯请上达梦技术社区了解: https://eco.dameng.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值