【干货分享】DM数据库迁移方法(物理迁移)
在数据库的维护过程中,可能涉及换服务器,或者需要现网数据库环境测试的情况,这时,最简单快速的办法就是将源数据库相关的文件拷贝到目标主机,然后注册数据库实例服务。这就是数据库的物理迁移过程,可以是从windows迁移到Linux服务器,也可以是从Linux服务器迁移到windows服务器。
数据库的物理文件迁移,要求迁移的新旧主机数据库软件版本相同。
本章介绍DM数据库物理迁移方法。
本章的测试环境:
①操作系统: Window 10 (64位)、中标麒麟7.0 (64位)
②数据库版本:DM8
相关关键字:DM数据库迁移物理迁移
DM数据库物理迁移
假设我们有一台数据库服务器A (Window 10 (64位)),安装有DM8数据库(数据库名称为DAMENG,实例
为DMSERVER,端口5236),现需要将服务器A中的DM数据库迁移到服务器B(中标麒麟Linux系统)中,所要迁移的源数据库实例安装在服务器A的D:\dmdbms\data目录。
1 迁移前准备
①查询源数据库版本号
执行如下命令查询源数据库服务器A的数据库版本号:
select * from v$version;
②查询源数据库数据文件
执行如下命令查询源数据库服务器A的数据文件:
select tablespace_name, file_name, BYTES from dba_data_files;
③查询源数据库参数文件中路径地址
执行如下命令查询源数据库A配置文件dm.ini中带路径参数(这些参数在迁移到目标服务器B后要与目标数据库中数据文件路径一致):
select PARA_NAME, T.PARA_V ALUE from v$dm_ini t where T.PARA_NAME like '%PA TH%';
④目标服务器安装数据库软件
在目标服务器B上安装相同版本的DM数据库软件,只需要安装数据库软件,不需要创建数据库实例,若目标服务器B上已有实例也没关系,可以迁移为不同实例,两个实例并存,互不影响。假设DM数据库安装在/dm文件夹下,安装步骤略。
2 源服务器数据文件拷贝至目标服务器
使用DM服务查看器停止源数据库服务器A的数据库实例,停止数据库实例是为了保证数据库的一致性。
实例停止后,将源服务器A中D:\dmdbms\data\DAMENG中数据库相关文件(配置文件、控制文件和数据文件)拷贝至目标服务器B的/dm/data/DAMENG中(此目录可按照实际需要指定,但要保证步骤3和4使用的是相同目录,若能保证源数据库服务器和目标服务器该文件路径相同则可以省去步骤3和4操作),文件参考如下截图:
数据文件是步骤1中查询出来的数据文件,配置文件包含.ini后缀的配置文件(如dm.ini、dmarch.ini、sqllog.ini等),控制文件为dm.ctl。
数据库的备份文件和归档日志可以不用拷贝,不影响迁移后的数据库的启动和运行,数据库会在新库上创建新的归档日志文件。
3 修改目标数据库配置文件
若迁移的目标数据库文件路径与源数据库文件路径相同,则步骤3和4可忽略。比如,从Linux系统源服务器A的/dm/data/DAMENG目录迁移到目标服务器B的/dm/data/DAMENG目录,则不需要进行修改配置文件和控制文件的操作。直接跳至步骤5。
①修改参数配置文件dm.ini
打开数据库参数配置文件dm.ini,修改PA TH路径中源数据库目录“D:\dmdbms\data\DAMENG\”为目标数据库“/dm/data/DAMENG/”目录(注意Linux下路径是左斜杠),将修改后的dm.ini覆盖目标服务器B中该文件。
②修改归档配置文件dmarch.ini
打开归档配置文件dmarch.ini,修改归档路径配置参数ARCH_DEST为目标服务器地址“/dm/data/arch”,将修改后的dmarch.ini覆盖目标服务器B中该文件。
4 修改目标数据库控制文件
若迁移的目标数据库文件路径与源数据库相同,则忽略此步骤。
DM数据库控制文件中包含了数据文件的路径,若迁移的目标数据文件路径与实际控制文件中不同,就需要修改控制文件中数据文件的位置,DM控制文件是二进制文件,无法直接编辑,需要使用dmctlcvt工具转换为文本文件后编辑。
①将源控制文件dm.ctl转换为文本文件
在DM安装目录的bin目录下,执行dmctlcvt help可查看该命令的使用帮助。
D:\dmdbms\bin>dmctlcvt help
DMCTLCVT V8
格式: KEYWORD=value
注意: 控制文件名称必须指定为dm.ctl、l
关键字说明
--------------------------------------------------------------------------------
TYPE    1 转换控制文件为文本文件(源文件路径中控制文件名称必须是dm.ctl或l)
服务器数据库安装教程2 转换文本文件为控制文件(目标文件路径中控制文件名称必须是dm.ctl或l)
SRC 源文件路径
DEST 目标文件路径
DCR_INI dmdcr.ini文件路径
HELP 打印帮助信息
示例:
< TYPE=1 SRC=d:\data\l DEST=d:\data\
< TYPE=2 SRC=d:\data\ DEST=d:\data\l
执行如下命令,将源服务器A的控制文件转换为文本文件:
dmctlcvt type=1 src=../data/l dest=../data/
执行成功,生成文件。
D:\dmdbms\bin>dmctlcvt type=1 src=../data/l
dest=../data/
DMCTLCVT V8
convert ctl to txt success!
②修改数据文件路径为目标服务器路径
修改文件内容,将数据文件的路径fil_path参数由源数据库文件路径
“D:\dmdbms\data\DAMENG\”修改为目标服务器B的数据库文件路径
“/dm/data/DAMENG/”,注意Linux下路径是左斜杠。
③将修改后的文本文件转换为目标控制文件
执行如下命令,将修改后的文本文件转换为新的控制文件l:
dmctlcvt type=2 src=../data/ dest=../data/l
执行成功,生成控制文件l。
D:\dmdbms\bin>dmctlcvt type=2 src=../data/
dest=../data/l
DMCTLCVT V8
convert txt to ctl success!
将生成的控制文件l复制到目标服务器B上,重命名替换之前的dm.ctl文件。
5 目标服务器注册数据库服务并启动数据库
配置文件和控制文件修改完成之后,登录目标服务器B,进入数据库安装目录/dm/bin 下,用DM数据库安装用户执行dbca.sh,打开数据库配置助手图形化界面,选择注册数据库服务(也可以使用root用户执行/dm/script/root下dm_service_installer.sh脚本注册数据库服务)。
在打开的注册数据库服务页面,点击【浏览】,选择我们修改后的dm.ini文件,系统会自动读取数据库名、实例名、端口号、数据库目录信息。如下图所示,点击【完成】。
注意:如果目标服务器5236端口被占用,也可以修改端口,使用其他端口注册服务。
如果是非root用户的安装DM数据库,界面会提醒使用root用户运行如下脚本,按照界面提醒,使用root用户手工执行脚本,完成数据库实例服务注册和启动达梦数据库实例。
mv /dm/bin/DmServiceDMSERVER.service
/usr/lib/systemd/system/DmServiceDMSERVER.service
systemctl enable DmServiceDMSERVER.service
systemctl start DmServiceDMSERVER.service
启动中提示报错,查看日志信息,根据错误提醒发现是buffer参数过大导致(因为原windows机器内存较大,迁移到新Linux服务器是虚拟机内存较少,导致内存不足),错误信息如下:
[dmdba@localhost log]$ more DmServiceDMSERVER.log
file dm.key not found, use default license!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。