Ubuntu環境下Informix數據遷移技巧
INFORMIXDIR
(Informix安裝目錄,如/opt/IBM/informix
)、INFORMIXSERVER
(數據庫服務器實例名,如ol_informix1410
)、ONCONFIG
(配置文件路徑,如$INFORMIXDIR/etc/onconfig
)??赏ㄟ^vi ~/.bash_profile
添加并執行source ~/.bash_profile
使變量生效。dbexport
命令將數據庫對象(表、視圖、存儲過程、觸發器)導出為SQL文件。例如:dbexport -d your_database_name -o /informix/db_export
,該命令會在指定目錄生成your_database_name.exp
文件夾,包含結構定義(.sql
)和數據(.unl
)文件。ontape
工具進行全庫物理備份,命令示例:ontape -s -L 0 -f /backup/full_backup.tape
(-s
表示全庫,-L 0
表示 level 0 備份)。備份完成后,將.tape
文件傳輸至目標服務器。scp
(加密傳輸,適合小文件)或rsync
(增量傳輸,節省帶寬)工具將導出的文件從源服務器復制到目標服務器。例如:scp -r /informix/db_export user@target_ubuntu:/opt/IBM/informix/db_export
,傳輸后建議通過md5sum
校驗文件一致性。660
,屬主為informix
用戶)。例如:onspaces -c -d new_ts -p /opt/IBM/informix/data/new_ts -o 0 -s 1000000
(創建名為new_ts
的表空間,路徑為/opt/IBM/informix/data/new_ts
,大小1GB)。onstat
命令檢查數據庫服務器狀態,然后創建新數據庫。例如:onstat -
確認服務器運行后,執行create database new_db with log;
(創建帶日志的數據庫)。dbimport
命令將SQL文件導入目標數據庫,命令示例:dbimport -d new_db -i /opt/IBM/informix/db_export
。導入過程中若遇到“表已存在”錯誤,可添加-c
參數覆蓋;若出現語法差異(如Oracle到Informix的日期格式),需手動修改SQL文件中的語法。ontape
備份,執行ontape -r -L 0 -f /opt/IBM/informix/full_backup.tape
恢復全庫,恢復后需執行onstat -
確認數據庫狀態正常。select count(*) from table_name
)、關鍵字段值(如主鍵、唯一索引),可使用diff
工具比較導出的SQL文件與導入后的數據庫結構,確保無遺漏或錯誤。onstat -g ses
監控會話性能,onstat -g io
監控磁盤IO,對比遷移前后的響應時間(如查詢延遲、寫入速度),若性能下降,可通過調整onconfig
中的BUFFERPOOL
大小、LOG
文件位置優化。/opt/IBM/informix/data
)、表空間文件具有讀寫權限(chown -R informix:informix /opt/IBM/informix
,chmod -R 660 /opt/IBM/informix/data/*.db
)。DECIMAL
類型在新版本中的變化)。online.log
,路徑為$INFORMIXDIR/logs
),若出現“鎖超時”“空間不足”等錯誤,及時停止操作并排查原因(如增加鎖超時時間LOCKMODE 30
,擴展表空間onextend -d ts_name -s 500000
)。