[] [列表] [新增] 4GL/BDL Learn Note(編輯 20) KEY:
日期:2012/09/28 Ref: [編輯]
Unix shell script:倒出 informix 資料庫schema及data
不用像 dbexport 需要停機,只要table沒被lock及可使用
配合crontab 及自動 FTP就可以製作"無人執守,自動備份"
---- unload.sh----
#! /bin/sh
DB=test
if [ ! -d "$DB" ]; then
mkdir $DB
fi
cd $DB
#取出所有表名稱到 tab_list.txt
echo "unload to tab_list.$$ DELI=' ' select tabname[1,20] from systables where tabid>=100 order by 1" > tab_list.sql
isql -s $DB tab_list.sql
#去除空白
cat tab_list.$$ | tr -d ' ' > tab_list.txt
rm -f tab_list.$$
#unload.sql
awk '{print "unload to " $1 ".txt select * from " $1 ";";}' tab_list.txt > unload.sql
#load.sql 匯入資料時可用
awk '{print "delete from " $1 " where 1=1;\n" "load from " $1 ".txt insert into " $1 ";";}' tab_list.txt > load.sql
#倒出資料庫全部機碼
dbschema -ss -d $DB -t all >$db.sql
#一個table一個機碼
for t in `cat tab_list.txt` ;do
dbschema -d $DB -t $t > $t.sql
done
#開始倒出資料
isql -s $DB unload.sql
#將資料打包/壓縮
cd ..
tar -cvf $DB.tar $DB
gzip $DB.tar
rm -rf $DB
2012/10/08 23:45:58 61.221.226.128
程式設計:濁水溪馬鈴鼠 Last Update:2012/09/20。