1.先下 onstat 查出session id
2.onmode -z 刪除session id

INFORMIX Quick Reference Guide -- ONMODE 指令
Usage: onmode -abcDdFklMmnpQRrSsuyZz
-a Increase shared memory segment size
-b Revert OnLine disk structures
-c Do checkpoint
-D
-d {standard|{primary|secondary }} set DR server type
-F Free unused memory segments
-k Shutdown completely
-l Force to next logical log
-M
-m Go to multi-user on-line
-n Set shared memory buffer cache to non-resident
-O Override dbspace down blocking a checkpoint
-p <+-#> Start up or remove virtual processors of class cpu, aio, lio, pio, shm, soc, or tli
-Q
-R Rebuild the /INFORMIXDIR/etc/.infos.DBSERVERNAME file
-r Set shared memory buffer cache to resident
-S
-s Shutdown to single user
-u Shutdown and kill all attached sessions
-y Do not require confirmation
-Z
heuristically complete specified transaction
-z Kill specified session id

clinno 發表在 痞客邦 留言(0) 人氣()

●磁帶指令
將磁帶倒帶 mt -f /dev/st0 rewind
退出磁帶 mt -f /dev/st0 offline

●磁帶備份
一般檔案:

檢查可用 tar -tvf /dev/st0
備份到磁帶 tar cvzf /dev/st0 home etc usr/u
還原磁帶 tar -xvf /dev/st0 則將把資料還原到目前路徑下

Informix 備份指令
備份所有資料庫 ontape -s -L 0

ontape
用法:
{ -a |
-c |
-l |
-p |
-r [-D DBspace_list] |
-s [-L archive_level] [-A database_list] [-B database_list]
[-N database_list] [-U database_list] }

-a 自動備份邏輯登錄
-c 邏輯登錄的連續備份
-l 邏輯回存
-p HDR 的實體回存
-r 完整回存清單中的 DBspace/BLOBspaces
-s 備存整個系統
-A 把下列資料庫設置為 ansi 登錄
-B 把下列資料庫設置為緩衝區登錄
-N 把下列資料庫設置為沒有登錄
-U 把下列資料庫設置為非緩衝登錄

clinno 發表在 痞客邦 留言(0) 人氣()

一般informix可以利用磁帶備份的方式,備份所有的資料庫,一般的命令如下:
ontape -s -L 0

但由於磁帶本身也有可能因為長時間使用未進行更換(一般半年要更換新的磁帶),
造成真的需要進行復原時,可能因為磁帶某部份磁性消失形成資料遺失而無法正常
回復資料。

所以一般正常進行磁帶備份,也應該要對informix中重要資料庫做好備份,並將這
些備份出來的檔案備份到另外一個檔案伺服器中,做好雙保險措施。


以下的linux shell就是依照這樣的想法寫出來的。
1.先以informix 或是 root登入
2.程式如下:
程式名稱:DBexport_db
informix DB Name:testDB

#export informix環境變數
INFORMIXDIR=/u/informix;export INFORMIXDIR
INFORMIXSERVER=on_shm1; export INFORMIXSERVER
PATH=$INFORMIXDIR/bin:$PATH;export PATH
DB_LOCALE=zh_tw.big5;export DB_LOCALE
CLIENT_LOCALE=zh_tw.big5;export CLIENT_LOCALE
SERVER_LOCALE=zh_tw.big5;export SERVER_LOCALE
DBLANG=zh_tw.big5;export DBLANG
#日期型式(YYMMDD/)
DBDATE=Y4MD/;export DBDATE
#(按住 Ctrl ,先按 V 再按 A 即可 )
DBDELIMITER=^A;export DBDELIMITER
TERM=vt100;export TERM
LANG=zh_tw.big5;export LANG

#變更目錄到準備用來備份的目錄路徑,這邊是以/u1/backup當做備份的目錄路徑
cd /u1/backup
#輸出informix中 testDB資料庫,完成後會產生目錄 testDB.exp 的目錄與檔案
#dbexport.out
dbexport testDB

#宣告資料目錄名稱並加上備份日期
newfile="/u1/backup/testDB"$(date +%y%m%d).exp
#宣告新的資料目錄壓縮後的檔案名稱
newtarfile="/u1/backup/testDB"$(date +%y%m%d).tar.gz
#宣告dbexport.out的新檔名(原檔名加上備份日期)
newfile1="/u1/backup/dbexport"$(date +%y%m%d).out


#變更到 /u1/backup 目錄
cd /u1/backup
#變更資料庫檔名
mv /u1/backup/testDB.exp $newfile 2>/dev/null
tar cvzf $newtarfile $newfile
#變更dbexport.out檔名
mv /u1/backup/dbexport.out $newfile1 2> /dev/null


3.記得於crontab加入以下文字,讓備份每天替您執行
#本例排訂每天早上1:10執行備份程式
10 1 * * * /u1/backup/DBexport_db

clinno 發表在 痞客邦 留言(0) 人氣()