达梦数据库备份恢复简单操作步骤

一、前提条件:

  1. 配置本地归档

首先查询数据库是否处于归档模式:

SELECT * FROM V$DM_ARCH_INI;

达梦表索引 达梦数据库 date_format_DM

查询有结果,且ARCH_TYPE为“LOCAL”,ARCH_IS_VALID取值为“Y”,表示存在有效的本地归档配置。去该路径下(ARCH_DEST)检查归档文件是否正常生成。

若上一步查询无结果,需要进行归档配置。

首先规划好归档日志存放的路径(本例中归档存放路径为:/data/ARCH)

(1). 命令行方式配置归档

ALTER DATABASE MOUNT;

ALTER DATABASE ADD ARCHIVELOG
‘TYPE=LOCAL,DEST=/data/ARCH,FILE_SIZE=1024,SPACE_LIMIT=20480’;

ALTER DATABASE ARCHIVELOG;

ALTER DATABASE OPEN;

其中SPACE_LIMIT表示归档空间上限,需要设置,根据磁盘容量来选择。

至此归档已经配置完成。可以再次使用SELECT * FROM
V$DM_ARCH_INI;命令查询确认一下。

(2). DMAP服务正常运行

1.  Linux环境(无图形界面情况)

执行ps -ef|grep dmap

达梦表索引 达梦数据库 date_format_oracle_02

有这样的显示表示dmap服务是正常启动的。

若无上条显示,用root用户进入数据库bin目录,执行./DmAPService
start以服务方式启动dmap。

二、备份恢复简单操作

首先规划好备份存放路径(本例中路径为/data/BAK)

  1. 使用SQL语句执行联机全量备份

BACKUP DATABASE BACKUPSET ‘/data/BAK/BAK20200416’;

执行成功后,去该目录下查看备份集BAK20200416是否存在。

  1. 使用dmrman工具脱机进行还原恢复

确保待还原数据库处于关闭状态。

进入数据库bin目录,执行./dmrman,进入rman的命令行界面

执行以下命令还原数据库(使用dmdba用户):

restore database ‘待还原数据库dm.ini文件全路径’ from backupset
‘备份集全路径’;

如:

restore database ‘/opt/dmdbms/data/DAMENG/dm.ini’ from backupset
‘/data/BAK/BAK20200416’;

执行以下命令恢复数据库:

recover database ‘待还原数据库dm.ini文件全路径’ from backupset
‘备份集全路径’;

如:

recover database ‘/opt/dmdbms/data/DAMENG/dm.ini’ from backupset
‘/data/BAK/BAK20200416’;

执行以下命令更新数据:

recover database ‘/opt/dmdbms/data/DAMENG/dm.ini’ update db_magic

至此,数据库恢复成功,启动数据库服务查看是否正常。

以上只是简单的联机全备及脱机库还原操作,更详细的信息请参考官方文档《DM7备份与还原》

三、常见问题

【1】. 如果备份时报错:“收集到的归档日志不连续”,可以进入rman下运行下面命令。

(1). 停止数据库服务

(2). 进入数据库bin目录,执行./dmrman,进入rman的命令行界面

(3). 执行以下命令:

REPAIR ARCHIVELOG DATABASE ‘D:\dmdbms\data\DAMENG \dm.ini’;

【2】. 另一种还原的方法(不需要初始化库)

(1). 创建数据库目录:mkdir /dm8/data/PROD

(2). 授权dmdba用户:chown -R dmdba:dinstall PROD

(3). 还原三步骤(使用dmdba账号):

1.  restore database to ‘/dm8/data/PROD’ from backupset ‘/data/bak20210601’
    rename to ‘PROD’;

2.  recover database ‘/dm8/data/PROD/dm.ini’ from backupset
    ‘/data/bak20210601’;

3.  recover database ‘/dm8/data/PROD/dm.ini’ update db\_magic

(4). 注册服务(使用root账号):/dm8/script/root/dm_service_install.sh -t
dmserver -p PROD -dm_ini /dm8/data/PROD/dm.ini

(5). 查看服务:dm8/bin:> ls |grep Dm

(6). 启动服务:dm8/bin:> DmServicePROD start

【3】. 如果还原是报错提示:“数据文件读写错误”,那是因为使用了root账号进行rman操作,请切换成dmdba账号后再使用rman命令还原。

(最后:感谢小雪、万总提供的技术支持。)

(还会不定期更新的。)

小文,2021年7月。