DM
参考
DM8达梦数据库版本区别:开发版、标准版、企业版、安全版 - 墨天轮 (modb.pro)
下载
概述
- DM数据库
- 试用期限1年
安装数据库
Windows
包含服务器、客户端等组件,可选择安装
- 解压,选择文件
dm8_setup_win64_ent_8.1.1.45_20191121.iso
右键,安装 - 选择语言与时区
- 下一步
- 指定 key 文件
- 选择组件,例如客户端安装
- 选择安装位置
- 安装
麒麟操作系统
银河麒麟V10安装达梦数据库DM8 - 古道轻风 - 博客园 (cnblogs.com)
创建数据库实例
使用 DM 数据库配置助手
数据页大小:默认
数据簇大小:默认
字符集类型:默认 GB18030
VARCHAR长度是否以字符为单位:是
大小写敏感:是
<img src="http://wangqinpei.oss-cn-qingdao.aliyuncs.com/uPic/ASo6yE.png" alt="ASo6yE" style="zoom:50%;" />
启动数据库
方式一
1 | service DmServiceDMSERVER start |
方式二
1 | 在终端进入 DM 安装目录下的 bin 目录,执行 |
查看进程
1 | ps axu|grep dmserver |
数据库配置
创建表空间
使用可视化客户端工具,例如达梦自带「DM管理工具」或者使用 DataGrip 通过 SYSDBA 管理员登录
1 | create tablespace SGP datafile '/home/dmdba/dmdbms/DAMENG/SGP.DBF' SIZE 128; |
创建用户并授权
1 | create user sgp identified by sgp123456 default tablespace SGP; |
数据库迁移
DM数据迁移工具
功能
可视化客户端工具
DataGrip 或 IDEA Database 工具使用
创建 DM 数据库驱动 —— 选择驱动文件「Custom JARS…」,Class 会自动加载出来
创建 DM 数据库连接
jdbc:dm://ip:5236/DMSERVER?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
项目调整
工程配置
项目
pom.xml
引入 达梦数据库驱动1
2
3
4
5
6<!-- 达梦jdbc驱动-->
<dependency>
<groupId>com.dameng</groupId>
<artifactId>Dm8JdbcDriver18</artifactId>
<version>8.1.1.49</version>
</dependency>新增
jdbc_dmdb.properties
配置文件1
2
3
4
5
6db.driverClassName=dm.jdbc.driver.DmDriver
db.validationQuery=SELECT 1 FROM DUAL
db.jdbc_url=jdbc:dm://ip:5236/DMSERVER?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8
db.jdbc_username=sgp
db.publickey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALlz/vMS4EeJf2SIPm+7WyZYz9kBB7x2oKa06xm3pw9pnNKioVqFBNsNH8+s+r+Zc8G/oM9MFcjGeOuXegVbpCkCAwEAAQ\=\=
db.jdbc_password=LGXikmXhCxNrjN6RBf0R4IyFzCytJLk90h2bod4T/F2/Fy9qXaDEKhC184vOwxFA0sjLy4neCPjRKrUicg0gdg\=\=spring-mybatis.xml
中 dataSource 配置中 oracle 改为 db
函数
ctrl + shift + R 全局替换
Oracle | DM | 说明 |
---|---|---|
NLS_UPPER | UCASE | 转换为大写 |
数据库厂商标识
spring-mybatis.xml 新增及修改配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22<!-- myBatis文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<property name="mapperLocations" value="classpath:mapping/*.xml" />
<property name="databaseIdProvider" ref="databaseIdProvider" />
</bean>
<!-- 多数据库支持-->
<bean id="vendorProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="Oracle">oracle</prop>
<prop key="Dm">dm</prop>
</props>
</property>
</bean>
<bean id="databaseIdProvider" class="org.apache.ibatis.mapping.VendorDatabaseIdProvider">
<property name="properties" ref="vendorProperties" />
</bean>***Dao.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<choose>
<when test="_databaseId == 'oracle'">
NLS_UPPER(LOGINNAME) <> 'ROOT'
</when>
<otherwise>
UCASE(LOGINNAME) <> 'ROOT'
</otherwise>
</choose>
<choose>
<when test="_databaseId == 'oracle'">
NLS_UPPER(u.LOGINNAME) <> 'ROOT' and NLS_UPPER(u.LOGINNAME) <> 'ADMIN'
</when>
<otherwise>
UCASE(u.LOGINNAME) <> 'ROOT' and UCASE(u.LOGINNAME) <> 'ADMIN'
</otherwise>
</choose>
DM 中关键字
数据库 138 sgp 和 达梦数据库 sgp
*PERCENT —— 获取用户下所有表字段(percent字段)
select * from user_tab_columns where nls_upper(COLUMN_NAME)=’PERCENT’
select * from user_tab_columns where UCASE(COLUMN_NAME)=’PERCENT’
sgp_eventconfig percent 字段改为 perc
1 | drop table SGP_EVENTCONFIG; |
DMDB 数据库备份恢复
与MySQL 数据库 SQL 中差异
geo
- geo 类型由 point 改为 st_point(max)
FIND_IN_SET
自建 FIND_IN_SET()函数
1 | CREATE OR REPLACE FUNCTION FIND_IN_SET |
DM中关键字排查
- comment 改为 comment_result
疑问
- SRID 空间参考坐标系 ID 参数值 0 ?4326?