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 ...