达梦数据库备份恢复简单操作步骤
一、前提条件:
- 配置本地归档
首先查询数据库是否处于归档模式:
SELECT * FROM V$DM_ARCH_INI;
查询有结果,且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
有这样的显示表示dmap服务是正常启动的。
若无上条显示,用root用户进入数据库bin目录,执行./DmAPService
start以服务方式启动dmap。
二、备份恢复简单操作
首先规划好备份存放路径(本例中路径为/data/BAK)
- 使用SQL语句执行联机全量备份
BACKUP DATABASE BACKUPSET ‘/data/BAK/BAK20200416’;
执行成功后,去该目录下查看备份集BAK20200416是否存在。
- 使用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月。