infmrox 更改欄位型態时, 因為有些table 太大,若在buffer log下使用alter 方式來修改,容易造成long transaction
有時即使切換成nolog模式, alter也不見會成功
所以應使用unload and dbload的方法來重轉資料
informix沒有GUI的管理介面, shell又不太熟, 就土法煉鋼一步一步做吧.
(心中不禁佩服那些在unix terminal mode下做事的偉人...,慶幸我活在SQL Server 的陰影下)
1.unload data (可以包成shell, 用nohup backgroud執行,若筆數過大,建議放成幾個.unl檔)
set isolation to dirty read;
unload to a.unl delimiter ';'
select * from yourTable;
事後要再切割.unl檔,可以使用 split -10000 a.unl
表示將a.unl 每10000筆切割一個檔案, 會產生xaa,xab,xac......的檔案
2.create your temp table (要放unload的資料)
3.create a.com ( dbload要用到的command file, 其中160是欄位數)
FILE a.unl DELIMITER ';' 160;
INSERT INTO table_tmp;
4.prepare dbload.sh (執行a.com,將資料轉入 table_tmp, 每1000筆commit一次, errorlog 寫到 a.err
dbload -d yourdb -c a.com -l a.err -e 0 -n 1000
以上可都可寫成shell後,用nohup time sh xx.sh >> xx.out 2>&1 &的方式執行, 一來可background作業, 二來可以記錄每次作業的時間, 就不用一直守著陽光守著結果了.. ..
ps.為什麼不用SSIS呢? 因為用SSIS 轉informix資料真是一大折磨,問題多多, 原本SQL 2000 DTS連結informix超級完美, 但SSIS 2005後,問題一堆... 使用官方的driver測試後的效果實在差到不行, 光是一個簡單的單一table 做data flow task, 就嗝屁了. 是我程度太LOW嗎?
2010年10月26日 星期二
訂閱:
張貼留言 (Atom)
pdf.js 無法顯示部份字
有個檔案在pdf viewer套件中無法顯示內容,但下載檔案後使用工具又可以正常顯示。 本來以為是套件版本太舊的原因,於是去下載pdf viewer套件 https://github.com/mozilla/pdf.js 更新後還是一樣。 覺得應是字型缺漏的問題,於是用PDF-X...
-
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
-
建了一個工作排程,定時執行batch檔。 batch中寫了一段xcopy,主要針對有異動較新檔案時才複製。 echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find...
-
.net 執行SQL指令時,出現以下錯誤。 已經開啟一個與這個 Command 相關的 DataReader,必須先將它關閉。 在web.config connectionstring 加入 "MultipleActiveResultSets=True...
沒有留言:
張貼留言