GBase8g向GBase8s資料庫進行遷移

2021-10-23 19:50:43 字數 1714 閱讀 8388

gbase8g向gbase8s資料庫進行遷移背景

因業務需求,需要將以往專案使用的gbase8g資料庫中的資料,遷移到gbase8s資料庫中。在此記錄遷移遇到的一些問題和解決方法。

目標將gbase8g的資料成功遷移到gbase8t後,原有程式功能可以正常執行

問題列表

自定義排序

1、問題描述:

由於業務需求,需要將某個字段根據自定義順序進行排序。

例如:資料中fileda的值儲存為1,2,3數值形式,但頁面上要以1,3,2的順序進行展示

在gbase8g中可以使用order by filed(字段,1,3,2)的方法進行自定義排序,但遷移後在gbase8s中無法使用這樣的方法。

2、解決方法:

可以引用臨時表的方法來實現該需求。

建排序臨時表「sort_table」,定義字段:sort_seq排序號,sort_name排序字段。

將需要自定義的排序順序儲存到sort_name中,對應的sort_seq寫實際的順序

例如:sort_name sort_seq

1 13 2

2 3使用:join sort_table st on 字段=st.sort_name order by st.sort_seq的方式來實現自定義排序

distinct 資料內容

1、問題描述:

在原有系統中,初始設計簡單,沒有考慮sql優化問題,資料查重直接使用如下語句

select distinct * from 表a where ***;

其中表a包含blob,text等大物件字段。gbase8s對sql要求嚴格,distinct 大物件欄位是不推薦使用的

2、解決方法:

優化資料結構及sql語句,盡量將不常用的大物件欄位與經常使用的字段在資料表中拆分開來,在distinct時只針對需要查重的字段進行操作,並使用索引。

欄位是關鍵字

1、問題描述

在gbase8g中,current不是系統關鍵字,設計資料表時使用current作為當期值的欄位名稱。但遷移到gbase8s後,current是系統關鍵字。程式中查詢current的sql無法順利執行。

2、解決方法:

將查詢sql優化,改寫為表名.列名的方法進行資料查詢。

日期格式

1、問題描述

在gbase8g中,日期格式若插入值為空時,預設的日期格式是填充空串

『0000-00-00 00:00:00』。在gbase8s中不允許空串插入日期格式,在資料遷移時會報異常。

2、解決方法:

在gbase8g資料庫中,將內容為空串的日期修改為正確的統一初始值,之後再進行資料遷移。

資料表遷移順序

1、問題描述

在gbase8g與gbase8s的資料遷移工具中,只有資料表與資料的遷移步驟。若表中有索引、自增列或檢視時,在用遷移工具進行資料表和資料的遷移後,很難一次性將索引、檢視等建立成功。

2、解決方法:

遷移資料結構後,先維護資料表的自增列,然後再執行建檢視語句,最後再遷移資料:

因為遷移結構時,無法將自增列遷移過來。而若在檢視中存在表資料型別,在遷移檢視後,則無法成功修改資料表的自增列。最後進行資料的遷移,是因為若資料量大,在遷移資料後再修改自增列很可能會提示臨時空間不足導致失敗。

另外需要注意的是,若在gbase8s建庫時,選擇的是無日誌模式,那麼在遷移資料後,需要修改資料庫的日誌模式:因為無日誌模式資料庫不支援事務,會導致程式啟動報錯。

GBase 8s效能調優流程

在實際的生產執行環境中,很多客戶現場都看到開發人員和系統管理人員遇到很多有關於gbase 8s 資料庫引起的效能問題,進而被多次問起如何進行gbase 8s 資料庫效能調優,包括 首先執行下面的初始檢查 獲取直接使用者的使用反饋,確定效能目標和範圍。獲取效能表現好與壞時的作業系統 資料庫 應用統計資...

linux安裝GBase8s資料庫

環境需求 記憶體2g 硬碟80g 處理器2,centos6.6映象 初始化指令碼 一 資料庫軟體安裝 1 新建informix組和使用者,並為informix使用者設定密碼 2 上傳8s安裝包並完成解壓 3 使用root使用者執行.ids install進行軟體安裝。4 一路回車,到license確...

GBase8s 檢視邏輯日誌使用情況

使用資料庫管理員使用者執行onstat l命令用於監控物理日誌及邏輯日誌的使用情況,需關注已使用的邏輯日誌是否及時備份。gbasedbt node13 onstat l your evaluation license will expire on 2021 08 27 00 00 00 gbase ...