注册
达梦数据库备份恢复类故障处理方法
培训园地/ 文章详情 /

达梦数据库备份恢复类故障处理方法

大黄昏 2025/06/03 22 0 0

第一部分 达梦数据库备份恢复类故障处理方法
1.1错误代码:-137、-135
服务器正在运行或者存在其他进程正在操作同一个库,创建信号量失败
1.1.1问题现象
使用dmrman工具备份数据库时报[-137]: 服务器正在运行或者存在其他进程正在操作同一个库错误或者[-135]:创建信号量失败
RMAN> backup database '/data/DAMENG/dm.ini' backupset '0603';
backup database '/data/DAMENG/dm.ini' backupset '0603';
file dm.key not found, use default license!
[-137]:服务器正在运行或者存在其他进程正在操作同一个库
1.1.2问题原因
达梦数据库服务正在启动中,没有关闭,DMRMAN工具是脱机备份还原工具,备份还原时都需要关闭数据库
1.1.3解决方案
登录数据库DBA账号关闭数据库
Shell> ./disql sysdba/SYSDBA
服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 6.358(ms)
disql V8
SQL> shutdown immediate;
使用root用户,关闭数据库服务
Shell> systemctl stop DmServiceDMSERVER.service
1.2错误代码-7105
管道连接超时
1.2.1问题现象
执行数据库备份时报-7105管道连接超时错误,或者备份长时间无响应且无备份文件生成
RMAN> backup database '/data/DAMENG/dm.ini' backupset '0603';
backup database '/data/DAMENG/dm.ini' backupset '0603';
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[1597923]
BACKUP DATABASE [DAMENG],execute......
CMD END.CODE: [-137],DESC: [管道连接超时]
1.2.2问题原因
原因可能是dmap是由root服务脚本启动,还有一种可能是当前dmap版本与系统并不兼容导致
1.2.3解决方案
方法1:
关闭服务脚本启动的dmap服务,手动前台启动dmap服务
Shell> cd dmdbms/bin
Shell> ./DmAPService stop
Shell> ./dmap
dmap V8
dmap is ready

方法2:
跳过dmap服务,使用工具自身进程进行备份
数据库中联机备份需设置参数
SQL> alter system set 'BAK_USE_AP=2';
dmrman中备份需设置参数
shell> ./dmrman use_ap=2
1.3错误代码:-7157
管道文件已经存在
1.3.1问题现象
启动dmap服务时报[-7157] Name pipe exits错误
1.3.2问题原因
dmap服务没有正常关闭,如直接 kill dmap服务,导致管道文件没有释放
shell> cd dmdbms/bin
shell> ll DM_PIPE*
prwx------. 1 dmdba dinstall 0 5月 28 10:14 DM_PIPE_DMAP_LSNR_RD
prwx------. 1 dmdba dinstall 0 5月 28 10:14 DM_PIPE_DMAP_LSNR_WR
1.3.3解决方案
需要删除没有释放的管道文件,重新启动dmap服务
Shell> rm -rf DM_PIPE*
Shell> ./DmAPService start
1.4错误代码: -7103
创建命名管道失败
1.4.1问题现象
使用dmrman进行备份恢复时报[-7103]:创建命名管道失败错误
RMAN> backup database '/home/dmdba/dmdbms/DAMENG/dm.ini' backupset '0604';
backup database '/home/dmdba/dmdbms/DAMENG/dm.ini' backupset '0604';
EP[0] max_lsn: 65268
BACKUP DATABASE [DAMENG],execute......
os_pipe2_create_server_with_name, name:[Pÿ/DM_PIPE_DMRMAN-2595_1_RD], error:[2]
CMD END.CODE:[-7103],DESC:[创建命名管道失败]
[-7103]:创建命名管道失败
1.4.2问题原因
在将 DM 数据库 bin 路径配置到环境变量 path 中,可以在任意目录下执行 DMRMAN 命令,但是如果不在bin目录进入 DMRMAN 执行备份恢复命令,会有如下报错 [-7103]: 创建命名管道失败。这是因为DMRMAN 命令进行备份操作的时,会根据 DMRMAN 命令所在路径下寻找由 DM_PIPE_ 开头的管道文件,而不是通过 path 设置的环境变量路径来寻找对应的管道文件,DM_PIPE_ 一般是在 bin 目录下生成
1.4.3解决方案
在bin目录下启动dmrman
1.5错误代码: -8024
数据文件读写出错
1.5.1问题现象
使用dmrman工具restore数据文件时报[-8024]:数据文件读写出错错误
RMAN> restore database '/data/opt/dm/data/DAMENG/dm.ini’from backupset ‘/BAK/DB_DAMENG_INCREMENT_2021_06_02_00_01_35’
restore database ‘/data/opt/dm/data/DAMENG/dm.ini’ from backupset ‘/BAK/DB_DAMENG_INCREMENT_2021_06_02_00_01_35’
file dm.key not found, use default license!
RESTORE DATABASE CHECK…
RESTORE DATABASE,data collect…
RESTORE DATABASE,database refresh …
RESTORE BACKUPSET [/BAK/29] START…
total 0 packages processed…
total 10 packages processed!
CMD END.CODE:[-8024],DESC:[数据文件读写出错]
[-8024]:数据文件读写出错
1.5.2问题原因
一种可能是备份集文件自身有问题,需要校验下,另一种是当前用户对备份集的目录和实例目录的读写权限有问题
1.5.3解决方案
1.做一下备份集的校验./dmrman CTLSTMT=“CHECK BACKUPSET ‘备份集绝对路径’”
2.检查当前还原所用用户是否是 dmdba 用户,当前数据目录所有者是否是 dmdba 用户,dmdba 用户能否读写数据目录下的文件,备份集所有者是否是 dmdba 用户。检查备份集所在目录是否对 dmdba 用户可读可写。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服