签到成功

知道了

CNDBA社区CNDBA社区

DM 达梦数据库 冷备份 数据迁移 操作示例

2019-12-22 13:04 3061 0 原创 DM 达梦
作者: dave

测试的DM 数据库实例放在默认的安装目录下,因为磁盘空间有限,准备移动到另一个硬盘上。

迁移的步骤如下:

1.查询当前信息
2.关闭实例,在系统上物理移动整个数据库文件夹
3.修改DM.INI 参数文件中有关路径的参数
4.重建控制文件(修改数据文件路径)
5.重建实例服务
6.起库验证http://www.cndba.cn/cndba/dave/article/3870

1 当前环境说明

#查看数据库版本:
[C:/~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 13.994(毫秒)
disql V8.1.0.147-Build(2019.03.27-104581)ENT 
SQL> select * from v$version;

行号       BANNER                                                         
---------- ---------------------------------------------------------------
1          DM Database Server x64 V8.1.0.147-Build(2019.03.27-104581)ENT  
2          DB Version: 0x7000a

已用时间: 1.369(毫秒). 执行号:12030.
SQL> 

#查看数据文件位置:
SQL> select path,total_size from v$datafile;

行号       PATH                           TOTAL_SIZE          
---------- ------------------------------ --------------------
1          D:/dmdbms/data/dave/SYSTEM.DBF 2688
2          D:/dmdbms/data/dave/ROLL.DBF   16384
3          D:/dmdbms/data/dave/TEMP.DBF   1210880
4          D:/dmdbms/data/dave/MAIN.DBF   16384
5          D:/dmdbms/data/dave/dave.DBF   5601408

已用时间: 0.387(毫秒). 执行号:12031.
SQL> 

查看带路径的参数:
SQL> select PARA_NAME,PARA_VALUE from v$dm_ini where para_name like '%PATH%';

行号       PARA_NAME         PARA_VALUE                 
---------- ----------------- ---------------------------
1          CTL_PATH          D:/dmdbms/data/dave/dm.ctl
2          CTL_BAK_PATH      D:/dmdbms/data/dave/ctl_bak
3          SYSTEM_PATH       D:/dmdbms/data/dave
4          CONFIG_PATH       D:/dmdbms/data/dave
5          TEMP_PATH         D:/dmdbms/data/dave
6          BAK_PATH          D:/dmdbms/data/dave/bak
7          AUD_PATH          NULL
8          SSD_FILE_PATH     NULL
9          SVR_LOG_FILE_PATH ../log
10         TRACE_PATH        D:/dmdbms/data/dave/trace
11         DCR_PATH          NULL

11 rows got

已用时间: 2.459(毫秒). 执行号:12036.
SQL>

PS: CMD里执行disql 无法进行粘贴复制,这里我是用xshell连接的。

http://www.cndba.cn/cndba/dave/article/3870

2 停库移动数据

直接在系统服务里停止:

将数据库从D:/dmdbms/data/dave 移动到G:/DMData。 直接在操作系统上移动过去。

3 修改DM.INI 参数文件中有关路径的参数

修改dm.ini 配置文件中的所有路径。 改成从D:/dmdbms/data/dave 改成G:/DMData/dave。

可以在编辑器中直接替换。

4 重建控制文件

控制文件重建详细说明可以参考我的博客:

http://www.cndba.cn/cndba/dave/article/3870
http://www.cndba.cn/cndba/dave/article/3870

DM7 达梦数据库 查看并重建控制文件 操作示例
https://www.cndba.cn/dave/article/3574

生成文本文件:

[C:/~]$ dmctlcvt type=1 src=G:/DMData/dave/dm.ctl dest=G:/cmctl.txt
DMCTLCVT V8.1.0.147-Build(2019.03.27-104581)ENT 
convert ctl to txt success!

修改文本文件:G:/cmctl.txt。 将文本中的所有路径从D:/dmdbms/data/dave 改成G:/DMData/dave。http://www.cndba.cn/cndba/dave/article/3870

先删除旧的控制文件:

G:/DMData/dave/dm.ctl

再重新生成新的控制文件:http://www.cndba.cn/cndba/dave/article/3870

[C:/~]$ dmctlcvt type=2 src=G:/cmctl.txt dest=G:/DMData/dave/dm.ctl
DMCTLCVT V8.1.0.147-Build(2019.03.27-104581)ENT 
convert txt to ctl success!

5 重建实例服务

这里直接用DBCA 工具进行。

http://www.cndba.cn/cndba/dave/article/3870
http://www.cndba.cn/cndba/dave/article/3870http://www.cndba.cn/cndba/dave/article/3870http://www.cndba.cn/cndba/dave/article/3870

备注:

操作之前没有删除旧的服务,导致后来服务无法删除,用管理员运行CMD,删除后在注册的服务:
C:/WINDOWS/system32>sc delete DmServicedave
[SC] DeleteService 成功

6 验证

服务注册的时候已经启动将库启动了,查询验证一下:

[C:/~]$ disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间: 11.792(毫秒)
disql V8.1.0.147-Build(2019.03.27-104581)ENT 
SQL> select * from v$version;

行号       BANNER                                                         
---------- ---------------------------------------------------------------
1          DM Database Server x64 V8.1.0.147-Build(2019.03.27-104581)ENT  
2          DB Version: 0x7000a

已用时间: 13.481(毫秒). 执行号:3.
SQL> select path,total_size from v$datafile;

行号       PATH                      TOTAL_SIZE          
---------- ------------------------- --------------------
1          G:/DMData/dave/SYSTEM.DBF 2688
2          G:/DMData/dave/ROLL.DBF   16384
3          G:/DMData/dave/TEMP.DBF   1280
4          G:/DMData/dave/MAIN.DBF   16384
5          G:/DMData/dave/dave.DBF   5601408

已用时间: 0.782(毫秒). 执行号:4.
SQL> 

SQL> select PARA_NAME,PARA_VALUE from v$dm_ini where para_name like '%PATH%';

行号       PARA_NAME         PARA_VALUE            
---------- ----------------- ----------------------
1          CTL_PATH          G:/DMData/dave/dm.ctl
2          CTL_BAK_PATH      G:/DMData/dave/ctl_bak
3          SYSTEM_PATH       G:/DMData/dave
4          CONFIG_PATH       G:/DMData/dave
5          TEMP_PATH         G:/DMData/dave
6          BAK_PATH          G:/DMData/dave/bak
7          AUD_PATH          NULL
8          SSD_FILE_PATH     NULL
9          SVR_LOG_FILE_PATH ../log
10         TRACE_PATH        G:/DMData/dave/trace
11         DCR_PATH          NULL

11 rows got

已用时间: 3.219(毫秒). 执行号:5.
SQL>

PS:在Xshell里直接执行disql 是可以在里面上下翻历史命令的,包括使用光标修改SQL语句的内容,很方便。

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2297
    原创
  • 3
    翻译
  • 637
    转载
  • 198
    评论
  • 访问:9381992次
  • 积分:4535
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ