迁移达梦数据库(二)

前言

在上篇文章中,按照文档里面的配置和迁移过程操作了一遍,和自己设想的一样,接下来的过程并不顺利。接下来,就将自己的采坑过程做个简单的汇总。

安装篇

硬件条件

按照文档所写https://eco.dameng.com/docs/zh-cn/start/install-dm-windows-prepare.html,下载的达梦数据库要与操作系统所匹配,同时预留1GB的内存即可

安装步骤

https://eco.dameng.com/docs/zh-cn/start/dm-install-windows.html傻瓜教程一步步来即可

配置实例

https://eco.dameng.com/docs/zh-cn/start/dm-instance-windows.html

其它

因为公司运维已经安装好了linux版本的达梦数据库,个人主要安装windows版是为了使用其工具

导入数据

工具介绍

windows版本的迁移工具如下链接https://eco.dameng.com/docs/zh-cn/start/tool-dm-migrate.html,进行操作即可,友情提示:自己创建一个用户A,这样会生成一个同名称的A模式,将数据导入到A模式下具体原因之后的文章会说,实际的生产环境,也大多不会使用SYSDBA用户的。创建用户参考如下:https://eco.dameng.com/docs/zh-cn/start/dm-user-tablespace.html

MYSQL>DM

因为我们之前使用的MYSQL,所以迁移工作是从MYSQL迁移到DM,链接如下:
https://eco.dameng.com/docs/zh-cn/start/migrate-mysql-dm.html

兼容处理(随时更新)

  1. MYSQL字段类型为text的导入后变成CLOB,在使用JDBC读取的时候,需要将CLOB转为流读取出来,示例代码如下:
     private String clob2String(CLOB clob) {
        //Clob转换成String 的方法
        String content = null;
        StringBuffer stringBuf = new StringBuffer();
        try {
            int length = 0;
            Reader inStream = clob.getCharacterStream();
            //取得大字侧段对象数据输出流
            char[] buffer = new char[10];
            while ((length = inStream.read(buffer)) != -1) {
                for (int i = 0; i < length; i++) {
                    stringBuf.append(buffer[i]);
                }
            }

            inStream.close();
            content = stringBuf.toString();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return content;
    }
  1. 达梦在初始化实例的时候设置参数LENGTH_IN_CHAR=0(varchar字节为单位)。Utf-8一个汉字占用三个字节,所有中午符号均占三个字节、一个英文占用一个字节。varchar以字节为单位。一个varchar等于一个字节。
posted @ 2021-08-11 09:08  小石头小石子小石灰  阅读(115)  评论(0编辑  收藏  举报