注册
达梦数据库磁盘路径变更,导致数据库服务启动失败
技术分享/ 文章详情 /

达梦数据库磁盘路径变更,导致数据库服务启动失败

小家伙 2022/06/17 1914 0 1

测试达梦数据库数据文件盘变更处理
1.停止数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB stop
Stopping DmServiceDMDB: [ OK ]
2.将数据盘重命名
[dmdba@dm dm8]$ ls
archive backup data soft
[dmdba@dm dm8]$ mv data/ ./databak
3.将归档盘重命名
[dmdba@dm dm8]$ mv archive/ ./archivebak
4.测试启动数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ FAILED ]
file dm.key not found, use default license!
open ini file /dm8/data/DMDB/dm.ini failed!
dmserver startup failed, code = -140 [Can not access INI file]
nsvr_ini_file_read failed, [code: -140]
5.错误信息:open ini file /dm8/data/DMDB/dm.ini failed!

5.检查DmServiceDMDB脚本参数文件路径
DM_HOME=“/dm8/soft/dbms”
INI_PATH=“/dm8/data/DMDB/dm.ini”
DCR_INI_PATH=%DCR_INI_PATH%
DPC_MODE=%DPC_MODE%

备注:检查参数文件路径是否正确
[dmdba@dm bin]$ ls -l /dm8/data/DMDB/dm.ini
ls: 无法访问/dm8/data/DMDB/dm.ini: 没有那个文件或目录

6.查找参数文件路径位置
[dmdba@dm /]$ find /dm8/ -name dm.ini
/dm8/databak/DMDB/dm.ini

7.修改DmServiceDMDB脚本参数文件路径
DM_HOME=“/dm8/soft/dbms”
INI_PATH=“/dm8/databak/DMDB/dm.ini” ----修改后参数文件路径位置

8.再次启动数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ FAILED ]
file dm.key not found, use default license!
Read ini error, name:CTL_PATH, value:/dm8/data/DMDB/dm.ctl
dmserver startup failed, code = -803 [Invalid ini config value]
nsvr_ini_file_read failed, [code: -803]
错误信息:Read ini error, name:CTL_PATH, value:/dm8/data/DMDB/dm.ctl
备注信息:显示控制文件读错误
处理方式:
1.检查路径下面是否有控制文件
[dmdba@dm bin]$ ls -l /dm8/data/DMDB/dm.ctl
ls: 无法访问/dm8/data/DMDB/dm.ctl: 没有那个文件或目录
2.查看控制文件位置
[dmdba@dm bin]$ find /dm8/ -name dm.ctl
/dm8/databak/DMDB/dm.ctl
3.修改控制文件路径(参数文件记录控制文件路径为/dm8/data/DMDB/dm.ctl
CTL_PATH = /dm8/data/DMDB/dm.ctl
CTL_BAK_PATH = /dm8/data/DMDB/ctl_bak
CTL_BAK_NUM = 10
4.修改控制文件路径位置
CTL_PATH = /dm8/databak/DMDB/dm.ctl #ctl file path
CTL_BAK_PATH = /dm8/databak/DMDB/ctl_bak #dm.ctl backup path
CTL_BAK_NUM = 10

9.再次启动数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ FAILED ]
file dm.key not found, use default license!
Read ini warning, default backup path [/dm8/data/DMDB/bak] does not exist.
version info: develop
/dm8/data/DMDB/SYSTEM.DBF not exist
备注:Read ini warning, default backup path [/dm8/data/DMDB/bak] does not exist
原因:默认的备份路径不存在
[dmdba@dm bin]$ ls -l /dm8/data/DMDB/bak
ls: 无法访问/dm8/data/DMDB/bak: 没有那个文件或目录
10.再次修改参数文件里面备份路径
[dmdba@dm bin]$ find /dm8/ -name bak
/dm8/databak/DMDB/bak
BAK_PATH = /dm8/databak/DMDB/bak #backup file path
11.继续启动数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ FAILED ]
file dm.key not found, use default license!
version info: develop
/dm8/data/DMDB/SYSTEM.DBF not exist
错误:/dm8/data/DMDB/SYSTEM.DBF not exist
原因:控制文件里面记录的数据文件不存在

12.重建控制文件为txt文本,使用dmctlcvt命令重建控制文件
[dmdba@dm bin]$ ./dmctlcvt help
DMCTLCVT V8

格式: ./dmctlcvt KEYWORD=value
注意: 控制文件名称必须指定为dm.ctl、dmmpp.ctl、dss.ctl

关键字 说明

TYPE 1 转换控制文件为文本文件(源文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)
2 转换文本文件为控制文件(目标文件路径中控制文件名称必须是dm.ctl或dmmpp.ctl或dss.ctl)
SRC 源文件路径
DEST 目标文件路径
DCR_INI dmdcr.ini文件路径
DFS_INI dmdfs.ini文件路径
HELP 打印帮助信息

命令如下:
./dmctlcvt type=1 src=/dm8/databak/DMDB/dm.ctl DEST=/tmp/dmctl.txt
[dmdba@dm bin]$ ./dmctlcvt type=1 src=/dm8/databak/DMDB/dm.ctl DEST=/tmp/dmctl.txt
DMCTLCVT V8
convert ctl to txt success!
13.修改/tmp/dmctl.txt里面记录的数据文件路径以及redo日志路径

file path

fil_path=/dm8/data/DMDB/SYSTEM.DBF —修改成/dm8/databak/DMDB/SYSTEM.DBF
fil_path=/dm8/data/DMDB/ROLL.DBF —修改成/dm8/databak/DMDB/ROLL.DBF
fil_path=/dm8/data/DMDB/DMDB01.log —修改成/dm8/databak/DMDB/DMDB01.log
fil_path=/dm8/databak/DMDB/DMDB02.log—修改成/dm8/databak/DMDB/DMDB02.log
fil_path=/dm8/data/DMDB/MAIN.DBF ----修改成
14 .将控制文件txt转化成新控制文件
./dmctlcvt type=2 src=/tmp/dmctl.txt DEST=/dm8/databak/DMDB/dm.ctl
[dmdba@dm bin]$ ./dmctlcvt type=2 src=/tmp/dmctl.txt DEST=/dm8/databak/DMDB/dm.ctl
DMCTLCVT V8
convert txt to ctl success!

14.这里我将测试将归档目录做变更
[dmdba@dm archive]$ ls -l
总用量 812
-rw-r–r-- 1 dmdba dinstall 321024 6月 16 20:40 ARCHIVE_LOCAL1_0x60CF1A70[0]_2022-06-16_20-39-51.log
-rw-r–r-- 1 dmdba dinstall 504320 6月 17 12:58 ARCHIVE_LOCAL1_0x60CF1A70[0]_2022-06-16_20-43-42.log
[dmdba@dm archive]$ cp * /dm8/archivebak/
15.再次启动数据库服务
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ OK ]
16. 测试下修改归档路径
[dmdba@dm bin]$ ./DmServiceDMDB stop
[dmdba@dm DMDB]$ vi dmarch.ini
#this is comments

[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/archivebak/ —原路径/dm8/data/archive
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 10240
ARCH_FLUSH_BUF_SIZE = 0
ARCH_HANG_FLAG = 1
17.再次启动数据库服务(归档路径更换成功)
[dmdba@dm bin]$ ./DmServiceDMDB start
Starting DmServiceDMDB: [ OK ]
SQL> select * from v$dm_arch_ini;
ARCHIVE_LOCAL1 LOCAL /dm8/archivebak

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服