达梦数据库备份还原解析及常见问题处理

数据库备份是DBA日常最重要的工作内容。备份不是目的,还原与恢复才是备份的目的。DBA 不仅要保证备份成功,还要保证一旦数据库发生故障时备份可还原可恢复。

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

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

备份、还原与恢复的关系如下图:

达梦数据库一共有两种备份方式一种为物理备份,一种为逻辑备份。

物理备份分为:冷备份、热备份

一、冷备份

冷备份需要dmap服务是打开的,实例服务是关闭的。

通过DM服务查看器可以查看到服务的开启情况

1577632565(1)

使用DM控制台工具备份

使用工具备份很简单,打开DM控制台工具,在备份还原选项新建备份,ini文件路径为数据库相应的实例配置文件,备份目录自己设置,每次备份需创建不同的文件夹存放备份,设置完全备份,点击确定即可。

使用DMRMAN工具备份,也是冷备工具,需要服务开启,实例服务关闭

DMRMAN 是 DM7 提供的命令行工具,无需额外地安装。

在DM的安装目录bin目录下

DMRMAN的备份目录默认为实例中dm.ini配置文件内BAK_BATH的备份路径,可自行更改

[dmdba@dca01 bin]$ ./dmrman

dmrman V7.6.0.142-Build(2019.03.12-103811)ENT

RMAN> backup database ‘/dm7/data/DAMENG/dm.ini’

冷备份,要停止数据库,可能会造成数据丢失。

二、热备份

(dmap服务是打开的,实例服务是打开的,数据库要打开归档)

热备份需要打开归档模式

可以通过命令和管理工具打开

命令打开

查看归档模式

打开归档模式需要先进入配置模式

SQL> alter database mount;

SQL>alter database add archivelog ‘type=local,dest=/dm7/arch,file_size=64,space_limit=0’;

Type=local为本体归档,

dest=/dm7/arch,归档路径

file_size=64,归档文件大小限制

space_limit=0空间大小,默认为0即可

SQL> alter database archivelog;

打开归档模式

SQL> alter database open;

归档模式已打开

如果想关闭归档模式,同样需要将实例mount,然后

alter database noarchivelog;关闭归档模式

用管理工具进行归档配置

首先我们打开DM管理工具,然后右键需要操作的实例,选择管理服务器

然后在配置中,找到系统管理,先将状态转换为配置,点击转换,然后点击确定即可

确定完成后,我们在点击管理服务器,在配置归档配置中,选中归档,点击确定

注意:在归档模式下,不允许删除已有归档!

此时我们也可以在此添加归档配置信息。

然后将数据库状态转换为打开

归档模式已开启

归档模式开启后,热备份可以用disql命令和管理工具备份

用disql命令进行全备份和增量备份

全备份操作

增量备份操作

SQL> select checkpoint(0);#检查点

SQL> backup database increment backupset ‘/dm7/back_bak/incr_bak’

备份表空间

SQL> BACKUP TABLESPACE MAIN BACKUPSET ‘TEST1’;

备份会到默认的目录下

备份单表,与备份数据库与表空间不同,备份表不需要服务器配置归档。

SQL> BACKUP TABLE test2.T3 BACKUPSET ‘test2.t3_bak’;

使用达梦管理工具进行热备份

新建备份

点击确认即可

库备份成功

同样的操作还可以进行表空间备份、表备份、归档备份

还原操作

模拟表空间test1损坏

@localhost DAMENG]$ mv test01.dbf test01.dbf.bak

注意:此时需要重启实例服务

将表空间设置为open状态

SQL> restore tablespace test from backupset ‘/dm7/backup/full2/full_back/’;

SQL> alter tablespace test online;

表空间已恢复

逻辑备份

逻辑备份是指利用 dexp 导出工具,将指定对象(库级、模式级、表级)的数据导出到

文件的备份方式。逻辑备份针对的是数据内容,并不关心这些数据物理存储在什么位置。

这是达梦自带的工具,分为四种级别:

数据库级别,用户级,模式级和表级,四种级别独立互斥,不能同时存在,四种级别所提供的功能:

数据库级(full):导出或导入整个数据库中的访问对象。

用户级(owner):导出或导入一个或多个用户所拥有的所有对象。

模式级(schemas):导出或导入一个或多个模式下的所有对象。

表级(table):导出或导入一个或多个指定的表或表分区。

工具在dm数据库安装文件的bin目录下

1、逻辑导出
[dmdba@dca01 bin]$ ./dexp sysdba/dameng123@localhost:5236 file=dexp01.dmp log=dexp01.log directory=/dm7/backup/dexp full=y

2、逻辑导入
[dmdba@dca01 bin]$ ./dimp sysdba/SYSDBA@localhost:5237 file=/dm7/backup/dexp/dexp01.dmp log=dimp02.log directory=/dm7/data/dexp

以上是达梦数据库导入导出常用方法

下面说一下导入导出常见问题

1.DMAP服务无法启动

检查/dm7/bin/pids/目录下pid文件,将DMAP*.PID文件删除

然后将/dm7/bin目录下

Ls DMAP文件全部移走

2.备份时提示管道连接超时

一般未DMAP服务未启动导致,将DMAP服务启动后问题解决

3.备份时提示备份目录冲突

冷备份时需要新建目录进行,每次备份需要创建不同的文件夹备份

Mkdir back_2019

你可能感兴趣的:(达梦数据库备份还原解析及常见问题处理)