dm8数据库,mysql迁移到达梦
dm8数据库,mysql迁移到达梦
安装windows
很简单一步步跟着走就行,记得改安装目录
linux也差不多
初始化实例
./dminit path=/home/dmdba/dmdata PAGE_SIZE=32 EXTENT_SIZE=32 CASE_SENSITIVE=y CHARSET=1 DB_NAME=DMTEST INSTANCE_NAME=DBSERVER PORT_NUM=5237 SYSDBA_PWD=yunJizhi@123 SYSAUDITOR_PWD=xxJizhi@123
/home/dmdba/dmdbms/bin
注册实例
cd /home/dmdba/dmdbms/script/root/
./dm_service_installer.sh -t dmserver -dm_ini /dmdata/data/DMTEST/dm.ini -p DMTEST
cd /home/dmdba/dmdbms/bin
ls
重启数据库
./DmServiceDMTEST restart
#设置兼容mysql
SP_SET_PARA_VALUE(2,‘COMPATIBLE_MODE’,4);
dm8安装
下载文件https://eco.dameng.com/download/?_blank 数据库
建议不要用c盘可以用D:\dmdba\dmdbms
内存要留2g
客户端
sqlark迁移的时候
注意下边的改了页面也不显示,不用管这里直接迁移就行
- 已设置 目标库兼容参数(COMPATIBLE_MODE)为4
- 已设置 目标库排序时 NULL 值返回的位置(ORDER_BY_NULLS_FLAG)为2
- 已设置 源库 MySQL 空闲连接数达到 300 或以上
数据库目录结构介绍 | 达梦技术文档这个数据库目录要看看,知道就行
主键不支持smallint 需要改为int
主键加unique 会失败,删掉
不支持unsigned
我用的是springboot +mysql换成集成dm8
pom.xml加这个
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.3.140</version>
</dependency>
改driver-class-name: dm.jdbc.driver.DmDriver
jdbcUrl: jdbc:dm:xxx
用户密码
main:
auto-commit: true
connection-test-query: SELECT 1
connection-timeout: 30000
driver-class-name: dm.jdbc.driver.DmDriver
idle-timeout: 30000
jdbcUrl: jdbc:dm://localhost:5237/xxx_dba_db?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf8&allowMultiQueries=true
max-lifetime: 1800000
maximum-pool-size: 15
minimum-idle: 5
name: main
password: xxx@123
pool-name: DatebookHikariCP
username: SYSDBA
官网地址:JAVA | 达梦技术文档,其他语言的也在这,应该差不多,没验证,改完这些跟之前用mysql一样的用dm就行,代码不用改,如果是用的mysql特性得改下。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class jdbc_conn {
// 定义连接
static Connection con = null;
// 定义 DM JDBC 驱动串
static String cname = "dm.jdbc.driver.DmDriver";
// 定义 DM URL 连接串
static String url = "jdbc:dm://localhost:5236";
// 定义连接用户名
static String userid = "SYSDBA";
// 定义连接用户口令
static String pwd = "*****";
public static void main(String[] args) {
try {
Class.forName(cname);
con = DriverManager.getConnection(url, userid, pwd);
con.setAutoCommit(true);
System.out.println("[SUCCESS]conn database");
} catch (Exception e) {
System.out.println("[FAIL]conn database:" + e.getMessage());
}
}
public void disConn(Connection con) throws SQLException {
if (con != null) {
con.close();
}
}
}
下边别看了,我遇到的问题,你遇到问题了改就行,一般都是创建分区,唯一键,特性函数这种
ftp_sys_config |
---|
auto_backup_config |
system_cpu_mem_detail 删除了分区 |
system_net_detail 删除了分区 |
proc_CreateDayPartitionOneTable 等函数删除了自己加 |
sysalarm_info 需要从新设计,有null的会认为是唯一 |
AUD_CLIENT 外键删了,报错,代码看看用不用,大概率是没用 |