达梦数据库-后期更改数据库(单机)实例目录及相关目录步骤-记录总结
流程步骤
(1) 检查确认数据库实例相关的各种路径,如数据库系统表空间初始路径、自定义添加表空间数据文件路径、归档路径、跟踪日志路径、备份作业备份路径、审计日志路径;
(2) 提前创建好预期更改后目录;
(3) 停止应用系统,对数据库进行备份;
(4) 移动数据库实例目录到新目录;
(5) 根据前期路径检查情况,修改各种路径(数据库系统表空间初始路径、自定义添加表空间数据文件路径、归档路径、跟踪日志路径、备份作业备份路径、审计日志路径),涉及dm.ini、dmarch.ini、sqllog.ini、dm.ctl等文件;
(6) 重新注册数据库服务;
(7) 启动数据库服务,登录数据库检查确认路径修改情况;
(8) 连接登录数据库,修改备份作业路径并检查确认。
步骤示例
测试环境:
--DM v8 03134284368-20260306-316451-20149 Pack62 + Kylin 10 + x86_64
示例需求:
初始数据库实例目录为/data/dmdata 更改为/datas/dmdata
如果有用户表空间,新增不同路径数据文件 更改为/datas/dmdata
如果有归档,归档路径改为/datas/dmarch
如果有备份,备份路径改为/datas/dmbak
如果其它路径相关,都改为/datas/下
示例步骤:
(1)准备安装初始数据库环境(过程略)
select id_code,* from v$version;

(2)构造环境
--创建测试表空间
create tablespace TEST datafile '/datatest/test.dbf' size 128 autoextend on maxsize 67108863 CACHE = NORMAL;
--创建测试用户
CREATE USER "TEST" IDENTIFIED BY HUN_admin2026 DEFAULT TABLESPACE "TEST" DEFAULT INDEX TABLESPACE "TEST";
grant "RESOURCE","PUBLIC","VTI","SOI","SVI" to TEST;
grant CREATE SESSION to TEST;
--创建测试表及测试数据
create table test.test(id int,info varchar2(10),sjtime DATETIME);
insert into test.test values(1,'test1',now());
commit;
select * from test.test;
--开启归档
alter database mount;
alter database ARCHIVELOG;
ALTER DATABASE ADD ARCHIVELOG 'DEST=/data/dmarch, TYPE=LOCAL, FILE_SIZE=2048, SPACE_LIMIT=102400';
--开启全备、增量备份、删除备份作业、sql日志跟踪等
开启过程略
(3)数据库各种路径梳理检查
--参数文件中路径设置查询
select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME like '%PATH';

--查看表空间与数据文件对应关系
SELECT * FROM V$TABLESPACE;
SELECT * FROM V$DATAFILE;
SELECT * FROM V$HUGE_TABLESPACE;
SELECT TS.NAME, DF.PATH FROM VTABLESPACE AS TS, VDATAFILE AS DF WHERE TS.ID = DF.GROUP_ID;

--检查归档文件路径
select arch_mode from v$database;
select ARCH_TYPE,ARCH_DEST,ARCH_FILE_SIZE,ARCH_SPACE_LIMIT from v$dm_arch_ini;

--检查是否开启跟踪日志
select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME ='SVR_LOG';
dmdba@192 \~\]$ cat /data/dmdata/DAMENG/sqllog.ini  --检查是否开启审计及审计日志相关 \[dmdba@192 \~\]$ disql SYSAUDITOR/HUN_admin2026@localhost:5237 SELECT \* FROM V$DM_INI WHERE PARA_NAME='ENABLE_AUDIT'; select \* from V$AUDIT_SPACE;  --检查备份作业文件路径 select \* from SYSJOB.SYSJOBS; select \* from SYSJOB.SYSJOBSTEPS;  (4)数据库备份 关闭应用系统,数据库物理热备份; 停止数据库服务,数据库物理冷备份或者操作系统级别文件备份。 过程略 (5)创建目标目录与拷贝数据库实例目录到新目录 \[root@192 \~\]# mkdir /datas \[root@192 \~\]# mkdir -p /datas/dmdata \[root@192 \~\]# mkdir -p /datas/dmbak/ \[root@192 \~\]# chown -R dmdba:dinstall /datas \[root@192 \~\]#su - dmdba \[dmdba@192 \~\]$ cp -r /data/dmdata/DAMENG /datas/dmdata/ \[dmdba@192 \~\]$ cp -r /data/dmbak/DAMENG /datas/dmbak/ \[dmdba@192 \~\]$ cp -r /datatest/test.dbf /datas/dmdata/DAMENG/ (6)修改dm.ini文件中路径修改 vi /datas/dmdata/DAMENG/dm.ini cat /datas/dmdata/DAMENG/dm.ini \|grep PATH  如果有开启审计,如果需要修改审计日志路径再 dm_ini中修改AUD_PATH值 AUD_PATH = /data/dmdata/DAMENG/aud_pathlog (7)修改/datas/dmdata/DAMENG/sqllog.ini文件中配置 \[dmdba@192 \~\]$ vi /datas/dmdata/DAMENG/sqllog.ini \[dmdba@192 \~\]$ cat /datas/dmdata/DAMENG/sqllog.ini  (8)修改/datas/dmdata/DAMENG/dmarch.ini归档路径配置 \[dmdba@192 DAMENG\]$ vi /datas/dmdata/DAMENG/dmarch.ini \[dmdba@192 DAMENG\]$ cat /datas/dmdata/DAMENG/dmarch.ini  (9)修改控制文件中配置并检查确认 \[dmdba@192 \~\]$ dmctlcvt TYPE=1 SRC=/datas/dmdata/DAMENG/dm.ctl DEST=/datas/dmdata/DAMENG/dmctl.txt \[dmdba@192 \~\]$ vi /datas/dmdata/DAMENG/dmctl.txt \[dmdba@192 \~\]$ cat /datas/dmdata/DAMENG/dmctl.txt \|grep data \[dmdba@192 \~\]$ mv /datas/dmdata/DAMENG/dm.ctl /datas/dmdata/DAMENG/dm.ctlbak \[dmdba@192\~\]$dmctlcvt TYPE=2 SRC=/datas/dmdata/DAMENG/dmctl.txt DEST=/datas/dmdata/DAMENG/dm.ctl  (10)重新注册实例并启动数据库服务 ##取消原数据库服务注册 bash /opt/dmdbms/script/root/dm_service_uninstaller.sh -n DmServiceDAMENG ##使用root用户新注册数据库服务 \[root@\]#bash /opt/dmdbms/script/root/dm_service_installer.sh -t dmserver -dm_ini /datas/dmdata/DAMENG/dm.ini -p DAMENG \[root@\]# systemctl enable DmServiceDAMENG.service ##启动数据库服务 \[root@\]# systemctl start DmServiceDAMENG.service (11)登录数据库查询操作 \[dmdba@192 \~\]$ disql sysdba/HUN_admin2026@localhost:5237 --数据检查 select \* from test.test; --参数检查 select PARA_NAME,PARA_VALUE from v$dm_ini where PARA_NAME like '%PATH'; --表空间路径检查 SELECT TS.NAME, DF.PATH FROM V$TABLESPACE AS TS, V$DATAFILE AS DF WHERE TS.ID = DF.GROUP_ID; --归档路径检查 select ARCH_TYPE,ARCH_DEST,ARCH_FILE_SIZE,ARCH_SPACE_LIMIT from v$dm_arch_ini; --修改备份作业备份路径及检查 call SP_JOB_CONFIG_START('bak_full'); call SP_ALTER_JOB_STEP_EX('bak_full', 'bak_full', 6, '01000000/datas/dmbak/DAMENG/bak', 3, 1, 0, 0, NULL, 0, ''); call SP_ALTER_JOB_STEP_EX('bak_full', 'bak_del', 0, 'CALL SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/datas/dmbak/DAMENG/bak''); CALL SP_DB_BAKSET_REMOVE_BATCH(''DISK'',NOW()-15);', 1, 1, 0, 0, NULL, 0, ''); call SP_JOB_CONFIG_COMMIT('bak_full'); call SP_JOB_CONFIG_START('bak_inc'); call SP_ALTER_JOB_STEP_EX('bak_inc', 'bak_inc', 6, '11000000/data/dmbak/DAMENG/bak\|/datas/dmbak/DAMENG/bak', 1, 3, 2, 6, NULL, 0, ''); call SP_ALTER_JOB_STEP_EX('bak_inc', 'switch_bak_full', 6, '01000000/datas/dmbak/DAMENG/bak', 1, 1, 0, 0, NULL, 0, ''); call SP_JOB_CONFIG_COMMIT('bak_inc'); select \* from SYSJOB.SYSJOBS; select \* from SYSJOB.SYSJOBSTEPS;   更多达梦数据库运维指南、在线文档、相关资料、社区在线提问以及技术分享 访问 https://eco.dameng.com/