達夢數據庫遷移(二)

前言

在上篇文章中,按照文檔裏面的配置和遷移過程操做了一遍,和本身設想的同樣,接下來的過程並不順利。接下來,就將本身的採坑過程作個簡單的彙總。html

安裝篇

硬件條件

按照文檔所寫<https://eco.dameng.com/docs/zh-cn/start/install-dm-windows-prepare.html>,下載的達夢數據庫要與操做系統所匹配,同時預留**1GB**的內存便可java

安裝步驟

<https://eco.dameng.com/docs/zh-cn/start/dm-install-windows.html>傻瓜教程一步步來便可mysql

配置實例

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

其它

由於公司運維已經安裝好了linux版本的達夢數據庫,我的主要安裝windows版是爲了使用其工具sql

導入數據

工具介紹

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>;windows

兼容處理(隨時更新)

  1. MYSQL字段類型爲text的導入後變成CLOB,在使用JDBC讀取的時候,須要將CLOB轉爲流讀取出來,示例代碼以下:markdown

    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;
    }
  2. 達夢在初始化實例的時候設置參數LENGTH_IN_CHAR=0(varchar字節爲單位)。Utf-8一個漢字佔用三個字節,全部中午符號均佔三個字節、一個英文佔用一個字節。varchar以字節爲單位。一個varchar等於一個字節。
相關文章
相關標籤/搜索