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-信创数据库开发,用百灵

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 外键删了,报错,代码看看用不用,大概率是没用
<think>好的,我现在需要帮助用户了解如何将达数据库中的表迁移到另一个达数据库。首先,我需要回顾用户提供的引用内容,看看有哪些相关的方法和工具被提到。 用户提到了引用[3]中的达迁移工具dts,这个工具可以自动迁移,处理大数据量,比如183G的数据用了3小时19分钟。还有引用[4]提到了迁移时可以选择迁移范围,特别是处理大表时可以只迁移结构或部分数据。另外,引用[2]提到了在迁移过程中需要注意的语法差异,比如达使用双引号而不是反引号,这可能影响迁移后的实体类映射。 接下来,我应该整理迁移的常用方法。根据引用内容,主要有三种方法:使用DTS工具、SQL脚本导出导入、以及命令行工具。DTS工具是图形化界面,适合大部分情况,尤其是大数据量。SQL脚本适用于小数据量或结构迁移,而命令行工具如dexp和dimp适合批量处理或自动化。 然后需要详细说明每种方法的步骤。比如DTS工具的使用步骤包括新建迁移项目、配置数据源、选择迁移对象、设置选项和执行迁移。同时要提到迁移后的数据校验和日志检查,这点在引用[4]的环境检查部分有涉及。 还要注意用户可能遇到的问题,比如大表迁移的性能问题,引用[4]建议使用自定义范围来分批处理。此外,字符集和对象依赖关系也是需要注意的点,这些在迁移过程中容易出错,需要提前检查。 最后,生成相关问题时要围绕迁移工具的选择、处理大表的策略、常见问题解决和性能优化等方面,确保覆盖用户可能进一步想知道的内容。</think>### 达数据库迁移方法与工具 达数据库迁移可通过以下方法和工具实现,具体步骤及注意事项如下: --- #### **一、迁移工具:DTS(达数据迁移工具)** **特点**: - 图形化界面操作,支持表结构、数据、约束等全量或增量迁移[^3] - 支持TB级数据迁移,内置智能优化机制(如大表分批处理)[^4] - 自动处理对象依赖关系(如索引、触发器) **操作步骤**: 1. **新建迁移项目**:在DTS中选择`文件`→`新建迁移` 2. **配置数据源**: - 源库:选择原达数据库,填写IP、端口、用户名、密码 - 目标库:填写目标达数据库信息 3. **选择迁移对象**: - 勾选需要迁移的表,支持筛选和自定义范围(如仅迁移表结构或部分数据) 4. **设置迁移选项**: - 字符集转换:需确保源库与目标库字符集一致 - 大表处理:启用`分批提交`以优化性能(默认每批1万条) 5. **执行迁移**:点击`开始迁移`,工具会自动完成结构迁移→数据迁移→约束重建 **示例命令(后台日志参考)**: ```log [INFO] 开始迁移表EMPLOYEE(数据量: 10,000,000行) [SUCCESS] 表结构迁移完成,耗时2.3秒 [PROGRESS] 数据迁移进度:78%,当前速度:12,500行/秒 ``` --- #### **二、SQL脚本导出导入** **适用场景**: - 小规模数据迁移(如单表GB级以下) - 需要人工干预的定制化迁移 **步骤**: 1. **导出表结构**: ```sql -- 使用DM管理工具生成DDL SP_EXPORT_DDL('TABLE', 'SCHEMA_NAME.TABLE_NAME', '/path/to/ddl.sql'); ``` 2. **导出数据**: ```sql -- 使用dexp命令行工具 dexp USERID=SYSDBA/SYSDBA@127.0.0.1:5236 FILE=table_data.dmp TABLES=SCHEMA.TABLE ``` 3. **导入到目标库**: ```sql -- 使用dimp工具 dimp USERID=SYSDBA/SYSDBA@target_host:5236 FILE=table_data.dmp FULL=Y ``` --- #### **三、注意事项** 1. **大表迁移优化**: - 使用DTS的`自定义范围`功能拆分迁移任务 - 调整`DM.INI`参数:`BUFFER_POOLS`增大缓冲区 2. **对象兼容性**: - 检查存储过程、函数中是否使用达特有语法(如`TOP n`需替换为`LIMIT`) - 表字段若含关键字,需用双引号包裹(对比MySQL的反引号)[^2] 3. **数据一致性校验**: ```sql -- 校验行数 SELECT COUNT(*) FROM SCHEMA.TABLE; -- 抽样校验 SELECT CHECKSUM_AGG(ORA_HASH(*)) FROM SCHEMA.TABLE; ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值