DM8安装及DTS工具oracle11g迁移到centos7.6上的DM8数据库
一、安装DM8数据库.
1.检查环境
[root@DaMengDB1 data]# getconf LONG_BIT
64
[root@DaMengDB1 data]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@DaMengDB1 data]# cat /etc/issue
\S
Kernel \r on an \m
[root@DaMengDB1 data]# uname -a
Linux DaMengDB1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
2.创建用户和组
[root@DaMengDB1 data]# groupadd dinstall
[root@DaMengDB1 data]# useradd -g dinstall dmdba
[root@DaMengDB1 data]# id dmdba
uid=1001(dmdba) gid=1000(dinstall) groups=1000(dinstall)
3.创建安装目录
[root@DaMengDB1 ~]# mkdir /dm8
[root@DaMengDB1 ~]# chown -R dmdba:dinstall /dm8
4.设置文件最大打开数目
# vi /etc/security/limits.conf
dmdba soft nofile 4096
dmdba hard nofile 65536
5.准备安装包并挂盘
[root@DaMengDB1 mnt]# mount dm8_setup.iso /mnt
mount: /dev/loop0 is write-protected, mounting read-only
6.安装软件
[root@DaMengDB1 mnt]# su - dmdba
Last login: Tue Nov 17 13:47:06 CST 2020 on pts/0
[dmdba@DaMengDB1 ~]$ cd /mnt
[dmdba@DaMengDB1 mnt]$ export DISPLAY=10.34.4.12:0.0
[dmdba@DaMengDB1 mnt]$ ./ DMInstall.bin
测试版可以不选择key,正式版需要key。
使用root用户执行脚本:
[root@DaMengDB1 data]# /dm8/script/root/root_installer.sh
Move /dm8/bin/dm_svc.conf to /etc
Modify the files' mode of DM Server
Create the DmAPService service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
Finished to create the service (DmAPService)
Start the DmAPService service
7.建库
安装完软件会让你选择是否建库,或者直接到/dm8/tool目录下./dbca.sh 调出图形界面建库。
如果想自己测试可以勾选此2个选项建两个样本库。
使用root用户执行脚本:
[root@DaMengDB1 tool]# mv /dm8/bin/DmServiceDMSERVER.service /usr/lib/systemd/system/DmServiceDMSERVER.service
[root@DaMengDB1 tool]# systemctl enable DmServiceDMSERVER.service
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceDMSERVER.service to /usr/lib/systemd/system/DmServiceDMSERVER.service.
[root@DaMengDB1 tool]# systemctl start DmServiceDMSERVER.service
执行完最后一条命令后,达梦8服务完成启动。
二、使用dm自带迁移工具DTS迁移数据
为了方便数据库的命令使用(dm8安装完之后会在安装目录下生成几个目录,其中dm8管理工具都在tool目录下,如果需要使用这些工具和命令需要到这些目录下执行才行),需要设置环境变量
[dmdba@DM1 dm8]$ ls -ltr
total 48
drwxr-xr-x 6 dmdba dinstall 54 Nov 17 14:37 jdk
drwxr-xr-x 3 dmdba dinstall 19 Nov 17 14:37 desktop
-rwxr-xr-x 1 dmdba dinstall 1066 Nov 17 14:37 license_en.txt
-rwxr-xr-x 1 dmdba dinstall 1128 Nov 17 14:37 license_zh.txt
-rwxr-xr-x 1 dmdba dinstall 848 Nov 17 14:37 release_en.txt
-rwxr-xr-x 1 dmdba dinstall 953 Nov 17 14:37 release_zh.txt
drwxr-xr-x 3 dmdba dinstall 37 Nov 17 14:37 script
drwxr-xr-x 2 dmdba dinstall 4096 Nov 17 14:37 include
drwxr-xr-x 6 dmdba dinstall 92 Nov 17 14:37 samples
drwxr-xr-x 2 dmdba dinstall 94 Nov 17 14:37 jar
drwxr-xr-x 2 dmdba dinstall 30 Nov 17 14:37 bin2
drwxr-xr-x 2 dmdba dinstall 92 Nov 17 14:38 web
drwxr-xr-x 10 dmdba dinstall 103 Nov 17 14:38 drivers
drwxr-xr-x 3 dmdba dinstall 105 Nov 17 14:39 doc
-rwxr-xr-x 1 dmdba dinstall 2433 Nov 17 14:39 uninstall.sh
drwxr-xr-x 3 dmdba dinstall 97 Nov 17 14:39 uninstall
-rw-r--r-- 1 dmdba dinstall 584 Nov 20 16:11 jgeterro.txt
drwxr-xr-x 6 dmdba dinstall 8192 Dec 28 10:10 bin
drwxr-xr-x 2 dmdba dinstall 4096 Dec 29 10:21 log
drwxr-xr-x 9 dmdba dinstall 4096 Dec 29 16:37 tool
[dmdba@DM1 tool]$ ls -ltr
total 2048
-rwxr-xr-x 1 dmdba dinstall 282438 Nov 17 14:38 analyzer.bmp
-rwxr-xr-x 1 dmdba dinstall 698 Nov 17 14:38 backup.xml
-rwxr-xr-x 1 dmdba dinstall 282438 Nov 17 14:38 console.bmp
-rwxr-xr-x 1 dmdba dinstall 121 Nov 17 14:38 disql
drwxr-xr-x 3 dmdba dinstall 24 Nov 17 14:38 dropins
-rwxr-xr-x 1 dmdba dinstall 282438 Nov 17 14:38 dts.bmp
-rwxr-xr-x 1 dmdba dinstall 282438 Nov 17 14:38 manager.bmp
-rwxr-xr-x 1 dmdba dinstall 282438 Nov 17 14:38 monitor.bmp
drwxr-xr-x 6 dmdba dinstall 8192 Nov 17 14:38 plugins
-rwxr-xr-x 1 dmdba dinstall 626 Nov 17 14:38 restore.xml
drwxr-xr-x 3 dmdba dinstall 32 Nov 17 14:38 templates
drwxr-xr-x 6 dmdba dinstall 230 Nov 17 14:38 dmagent
drwxr-xr-x 4 dmdba dinstall 78 Nov 17 14:38 p2
-rwxr-xr-x 1 dmdba dinstall 866 Nov 17 14:38 analyzer
-rwxr-xr-x 1 dmdba dinstall 877 Nov 17 14:38 console
-rwxr-xr-x 1 dmdba dinstall 976 Nov 17 14:38 dts
-rwxr-xr-x 1 dmdba dinstall 877 Nov 17 14:38 manager
-rwxr-xr-x 1 dmdba dinstall 861 Nov 17 14:38 monitor
-rwxr-xr-x 1 dmdba dinstall 2624 Nov 17 14:39 dts_cmd_run.sh
-rwxr-xr-x 1 dmdba dinstall 651 Nov 17 14:39 nca.sh
-rwxr-xr-x 1 dmdba dinstall 667 Nov 17 14:39 dmservice.sh
-rwxr-xr-x 1 dmdba dinstall 653 Nov 17 14:39 dbca.sh
-rwxr-xr-x 1 dmdba dinstall 1082 Nov 17 14:39 log4j.xml
-rw-r--r-- 1 dmdba dinstall 44700 Nov 20 11:03 hs_err_pid13655.log
-rwxr-xr-x 1 dmdba dinstall 497 Nov 20 11:23 server_connection.xml
-rw-r--r-- 1 dmdba dinstall 457 Nov 23 14:26 dts.xml
drwxr-xr-x 6 dmdba dinstall 157 Dec 29 16:37 configuration
drwxr-xr-x 7 dmdba dinstall 72 Dec 29 16:37 workspace
1.配置dmdba用户的环境变量并生效
[dmdba@DM1 ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export DM_HOME=/dm8
export PATH=$DM_HOME/bin:$DM_HOME/tool:$PATH:$HOME/bin
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/dm8/bin"
export DM_HOME="/dm8"
[dmdba@DM1 ~]$ source .bash_profile
就可以直接使用dm8的命令和工具了。
2.迁移前的准备工作
对于目标端DM8数据库来说,需要将要oracle需要迁移的用户和表空间先在数据库中创建。
[dmdba@DM1 ~]$ disql sysdba/SYSDBA
Server[LOCALHOST:5236]:mode is normal, state is open
login used time: 45.828(ms)
disql V8
SQL>
建表空间:
create tablespace "JSEARCH" datafile '/data/dm8/DM01/JSEARCH101.dbf' size 100 autoextend on maxsize 10240;
create tablespace JGET datafile '/data/dm8/DM01/JGET01.dbf' size 100 autoextend on maxsize 10240;
create tablespace JIEP datafile '/data/dm8/DM01/JIEP01.dbf' size 100 autoextend on maxsize 10240;
create tablespace USERS datafile '/data/dm8/DM01/USER01.dbf' size 100 autoextend on maxsize 10240;
建用户:
create user jsearch identified by "hujunf" DEFAULT TABLESPACE "JSEARCH";
create user jcms identified by "hujunf" DEFAULT TABLESPACE "USERS";
create user jphoto identified by "hujunf" DEFAULT TABLESPACE "USERS";
create user jget identified by "hujunf" DEFAULT TABLESPACE "JGET";
create user jiep identified by "hujunf" DEFAULT TABLESPACE "JIEP";
赋权:创建完用户只有连接的权限,不能建表等,赋权resource可以查询并创建相关对象。
grant resource to jsearch;
grant resource to jcms;
grant resource to jphoto;
grant resource to jget;
grant resource to jiep;
3.使用dts工具将oracle数据库的用户的数据导入到dm8数据库中
[dmdba@DM1 ~]$ dts
选择需要迁移的数据点击next即可完成导入。
一般迁移原则:
(1) 选择合理的迁移顺序: 先迁移序列、再迁移表、最后迁移视图 。
(2) 对于数据量大的表单独迁移 。
(3) 对于分区表如果数据量没有超过 1 亿建议迁移成普通表,在分区列上创建索引 。
(4) 对于大字段较多的表,需要修改批量的行数,以免造成迁移工具内存溢出。
注:Oracle的LOB是单独管理的,迁移到达梦查一下对应表的会有lob数据,不用单独迁移。
4.迁移完成,到目标库查看用户的对象与源库比对:
SQL> select object_type,count(*) from dba_objects where owner='JGET' group by object_type;
LINEID OBJECT_TYPE COUNT(*)
---------- ----------- --------------------
1 SCH 1
2 TABLE 114
3 SEQUENCE 106
4 TRIGGER 106
5 INDEX 434
6 CONSTRAINT 114
6 rows got
used time: 39.394(ms). Execute id is 1572.
SQL> select object_type,count(*) from dba_objects where owner='JIEP' group by object_type;
LINEID OBJECT_TYPE COUNT(*)
---------- ----------- --------------------
1 SCH 1
2 TABLE 16
3 SEQUENCE 8
4 TRIGGER 8
5 INDEX 37
6 CONSTRAINT 16
6 rows got
used time: 39.777(ms). Execute id is 2256.
SQL> select object_type,count(*) from dba_objects where owner='JPHOTO' group by object_type;
LINEID OBJECT_TYPE COUNT(*)
---------- ----------- --------------------
1 SCH 1
2 TABLE 55
3 SEQUENCE 44
4 TRIGGER 44
5 VIEW 4
6 INDEX 142
7 CONSTRAINT 51
7 rows got
used time: 25.371(ms). Execute id is 2257.
SQL> select object_type,count(*) from dba_objects where owner='JSEARCH' group by object_type;
LINEID OBJECT_TYPE COUNT(*)
---------- ----------- --------------------
1 SCH 1
2 TABLE 13
3 SEQUENCE 13
4 TRIGGER 13
5 INDEX 27
6 CONSTRAINT 13
6 rows got
used time: 23.915(ms). Execute id is 2375.
导入完成,数据一致,业务配置连接测试数据。
结语:DM8的图形化安装操作界面人性化很方便,使用dts工具将数据从oracle 迁移到dm8数据库操作也很简单,总体来看作为国产数据库的领头羊达梦数据库对oracle数据库的兼容性很高,用户使用感不输数据库的老大oracle数据库。