db2v8 資料移轉,db2v8遷移
db2資料移轉
版本:v8.1
任務:從生產拿資料到測試環境
處理過程中遇到的問題:
1、字元集問題。來源資料庫字碼頁為gbk,目標資料庫字碼頁為uft-8
處理方法:匯出或者匯入時做格式轉換
注意:由於在gbk庫裡面,一個漢字佔兩個位元組,而uft-8裡面,一個漢字站三個位元組 ,匯入目標庫時,存在欄位超過長度的警示錯誤
匯出:
db2 "export to xxx.ixf of ixf select * from xxx"
db2 "export to xxx.ixf of ixf modified by codepage=1208 select * from xxx" --會自動把表結構中欄位類型為char和varchar的欄位長度擴大一倍
db2 "export to xxx.del of del modified by codepage=1208 select * from xxx"
匯入:
db2 "load from xxx.ixf of ixf replace into xxx nonrecoverable"
db2 "load from xxx.del of del replace into xxx nonrecoverable"
注意:load匯入時,如果長度欄位超長,為把超長的每一條記錄列印出來,資料量大的情況下很讓人無語,會花大量的時間。對於這種錯誤,這次的處理方法就直接先把表欄位長度擴大好了,然後再匯入資料。查看load匯入時的詳細資料,可以使用db2 list utilities show detail
2、改欄位類型問題
db2v8貌似不能直接修改,只能先刪欄位再加欄位,無奈的時,該欄位上面有索引....只能發大招,重建表了
為了安全,先備份原來環境的表結構
方法一:db2 "export to tbname.ixf of ixf select * from tbnamewhere 1=2"
方法二:db2look -d dbname -e -t tbname -o tbname.sql
將方法二中匯出來的sql語句修改一下,把欄位超長的長度加大,然後執行db2 -tvf tbname.sql 重建立表
另外:本來是想把測試環境的資料庫刪掉,直接把生產的資料庫全部對象ddl拿回來,在測試環境還原一下,由於時間緊迫,又沒做過,怕搞壞了,下次自己重新再做一次恢複,目前還沒有相關的指令碼,也希望有經驗的同志不吝賜教,多多指導
臨時建了一個空資料庫
db2 create dbname using codepage=1208 territory cn
建立緩衝池
db2 create bufferpool bp16k size 2000 pagesize 16384
建立資料表空間
db2 create tablespace tpname pagesize 16384 managed by database using (file,'/dd/ddd',size) bufferpool bp16k
總結:在遷移過程中,還碰到了其他問題,如日誌溢出,死結等,畢竟測試環境和生產的是沒得比,而且參數配置也存在差別。但總的來說,大部分問題都還是可以處理好。
感謝同事老師指導。小小的心得:計劃好要做的事情,考慮好存在的問題,做好每一步,處理好碰到的問題。
QQ遷移資料
QQ資料移轉就是指你要更換QQ版本的時候,儲存你原QQ裡所有資料的意思。如 你下的是2010版的qq,你想下2011版的,但又想儲存原來的聊天記錄,就要QQ資料
怎進行資料移轉?
你們如果沒有專業的人員的話還是找個外包公司吧
當時我們是和北京博迅尼科合作的,還算不錯
給你推薦一下400||008||2008.你打電話瞭解一下吧