Informix Online數(shù)據(jù)庫(kù)日常管理及維護(hù)
一、啟動(dòng)、關(guān)閉Informix數(shù)據(jù)庫(kù)
1.自動(dòng)啟動(dòng)Informix
啟動(dòng)Online命令為:oninit
但一般情況下,將啟動(dòng)命令建立在/etc/rc2.d目錄下,名字為S96informix,這樣當(dāng)啟動(dòng)操作系統(tǒng)時(shí),Online隨之啟動(dòng)。
編輯文件/etc/rc2.d/S96informix為如下內(nèi)容:
INFORMIXDIR=/usr/informix INFORMIXSERVER=picc_online ONCONFIG=onconfig.picc export INFORMIXDIR NFORMIXSERVER ONCONFIG INFORMIXDIR/bin/oninit |
修改文件屬性如下:$chmod +x /etc/rc2.d/S96informix
2.自動(dòng)關(guān)閉Informix
關(guān)閉Online命令為:onmode -ky
但一般情況如下,將關(guān)閉命令建立在/etc/rc0.d目錄下,名字為K01informix,這樣當(dāng)關(guān)閉操作系統(tǒng)時(shí),Online隨之關(guān)閉。
編輯文件/etc/rc0.d/K01informix如下:
INFORMIXDIR=/usr/informix INFORMIXSERVER=picc_online ONCONFIG=onconfig.picc export INFORMIXDIR INFORMIXSERVER ONCONFIG INFORMIXDIR/bin/onmode -ky |
修改文件屬性如下:$chmod +x /etc/rc0.d/K01informix
二、Informix Online常見(jiàn)工作模式
offline(停止態(tài))
quiescent ( 系統(tǒng)維護(hù)態(tài))
online(運(yùn)行態(tài))
#p#
三、管理Informix Online磁盤(pán)空間
Online初始化時(shí),自動(dòng)建立了一個(gè)名為rootdbs的dbspace。該rootdbs存儲(chǔ)Online的管理信息,包括物理日志、邏輯日志等。當(dāng)你建立一個(gè)數(shù)據(jù)庫(kù)或表時(shí),如果不指定dbspace,作為缺省,該庫(kù)或表建立在rootdbs中。所以,如果你想將庫(kù)或表建立在某個(gè)dbspace中,則必須在SQL語(yǔ)句中指定dbspace名字。如數(shù)據(jù)庫(kù)名為‘stores’,我們將這個(gè)數(shù)據(jù)庫(kù)建立在‘workdbs’dbspace中,SQL語(yǔ)句如下:
create database stores in workdbs;
另外,建chunk或dbspace時(shí),要指定原始磁盤(pán)設(shè)備名路徑,所需磁盤(pán)空間大小,以及該塊磁盤(pán)空間在原始磁盤(pán)設(shè)備中的偏移量。其中,偏移量非常關(guān)鍵,要小心設(shè)置,否則容易造成chunk塊之間空間上的重疊與覆蓋。
例如:假定原始磁盤(pán)設(shè)備/informixdbs1有500M空間,其中rootdbs用去前100M,如果要在/informixdbs1中建立一個(gè)新的chunk,偏移量應(yīng)大于100M。
1.用onspaces命令建立dbspace
$onspaces -c -d dbspace名字 -p 磁盤(pán)設(shè)備 -o 偏移量 -s 尺寸
其中:
-c: 表示建立新的dbspace
-d: dbspace名字
-p: 原始磁盤(pán)設(shè)備全路徑名,如/informixdbs1
-o: 偏移量,以K字節(jié)為單位
-s: dbspace中第一個(gè)chunk 尺寸,以K字節(jié)為單位
2.用onspaces命令增加chunk
$onspaces -a dbspace名字 -p 原始磁盤(pán)設(shè)備 -o 偏移量 -s 尺寸
其中:
-a: 表示為某個(gè)dbspace增加一個(gè)chunk, 后跟dbspace名字
-p: 原始磁盤(pán)設(shè)備全路徑名,如/informixdbs1
-o: 偏移量,以K字節(jié)為單位
-s: chunk的尺寸,以K字節(jié)為單位
例如某數(shù)據(jù)庫(kù)系統(tǒng),在原始磁盤(pán)設(shè)備/informixdbs1上建立三個(gè)DBSPACE:
rootdbs:Online初始化時(shí)缺省建立,第一個(gè)chunk尺寸為100M, 偏移量為0;
workdbs:存放應(yīng)用數(shù)據(jù)庫(kù)數(shù)據(jù),第一個(gè)chunk尺寸為100M,偏移 量為100M;
tmpdbs:存放系統(tǒng)臨時(shí)文件數(shù)據(jù),第一個(gè)chunk尺寸為50M,偏移量為200M;
*tmpdbs必須在online初始化之前建立;
建立命令如下:
$onspaces -c -d workdbs -p /informixdbs1 -o 100000 -s 100000;
$onspaces -c -d tmpdbs -p /informixdbs1 -o 200000 -s 50000;
四、Informix Online日志管理
1.數(shù)據(jù)庫(kù)日志方式:
◆無(wú)日志方式(對(duì)應(yīng)非事物性應(yīng)用)
◆無(wú)緩沖區(qū)日志方式
◆帶緩沖區(qū)日志方式
◆符合ANSI標(biāo)準(zhǔn)日志方式
針對(duì)保險(xiǎn)業(yè)務(wù)特點(diǎn),INFORMIX建議使用無(wú)緩沖區(qū)日志方式建立數(shù)據(jù)庫(kù),以保證機(jī)器崩潰時(shí),交易事務(wù)不會(huì)丟失,與帶緩沖區(qū)日志方式相比,數(shù)據(jù)庫(kù)并行處理速度慢。
可使用ontape命令修改數(shù)據(jù)庫(kù)日志方式
用ontape打開(kāi)事務(wù)日志:
$ontape -s -U stores; 打開(kāi)數(shù)據(jù)庫(kù)stores日志,日志方式為無(wú)緩沖區(qū)日志;
用ontape結(jié)束日志:
$ontape -N lifeins; 將數(shù)據(jù)庫(kù)lifeins改為無(wú)日志方式。
2.物理日志的管理
物理日志保存數(shù)據(jù)被修改前的映象。物理日志的位置和大小可以改變。使用onparams命令改變物理日志的位置和大小,在Online進(jìn)入靜態(tài)方式后執(zhí)行:
$ onparams -p -s size -d dbspace -y
其中
-p: 表示物理日志
-s: 新的尺寸,后跟以K字節(jié)為單位的物理日志的大小
-d: 說(shuō)明存放物理日志的dbspace名字
-y: 對(duì)所有的提問(wèn)以“Yes”回答
注意:分配給物理日志的空間必須是連續(xù)的,因此,改變之前要確認(rèn)dbspace有足夠的空間來(lái)存放物理日志。
3.邏輯日志的管理
邏輯日志保存數(shù)據(jù)在修改后的映象,邏輯日志空間的尺寸為邏輯日志文件尺寸與邏輯日志文件個(gè)數(shù)的乘積。Online初始化后,已有邏輯日志文件的尺寸不可修改,要改變邏輯日志空間大小,只能修改邏輯日志文件個(gè)數(shù),新增加的邏輯日志文件尺寸可以設(shè)為新的值,邏輯日志文件個(gè)數(shù)不得少于3個(gè)。
a.用onparams 增加邏輯日志文件
$ onparams -a -d rootdbs
新增加的邏輯文件狀態(tài)是A(A表示新增加的意思)。必須建立rootdbs的0級(jí)備份后,新增加的邏輯日志文件才可使用。
b.增加一個(gè)具有新的尺寸的邏輯日志文件
$onparams -a -d rootdbs -s新的日志尺寸
c.用onparams取消一個(gè)邏輯日志文件
$onparams -d -1 logid
注意:取消一個(gè)邏輯日志文件之前,必須做rootdbs的0級(jí)備份
$ ontape -s.; 該命令可做0級(jí)備份
* 只有狀態(tài)為F(Free)或A(Added)的邏輯日志文件才可被取消
* 必須知道想要取消的邏輯日志的logid號(hào)
$ onstat -1; 該命令可查看邏輯日志文件狀態(tài)及l(fā)og id號(hào)
#p#
五、Informix Online數(shù)據(jù)庫(kù)備份及恢復(fù)
備份內(nèi)容及目的:
數(shù)據(jù)備份:備份數(shù)據(jù)庫(kù)某個(gè)時(shí)刻的數(shù)據(jù)狀態(tài),當(dāng)系統(tǒng)出現(xiàn)意外時(shí)用來(lái)恢復(fù)系統(tǒng);
邏輯日志備份:邏輯日志文件寫(xiě)滿(mǎn)后,必須備份,才可被清空,繼續(xù)使用。如果所有的邏輯日志文件都被寫(xiě)滿(mǎn),則會(huì)引起系統(tǒng)崩潰。另外,邏輯日志記錄了上一次數(shù)據(jù)備份后數(shù)據(jù)庫(kù)的改變,因此,邏輯日志備份也用于當(dāng)系統(tǒng)出現(xiàn)意外時(shí)用來(lái)恢復(fù)系統(tǒng)。
1.數(shù)據(jù)備份:
a.Online提供0 級(jí),1級(jí),2級(jí)增量備份;
0級(jí):備份整個(gè)數(shù)據(jù)庫(kù)系統(tǒng);
1級(jí):備份從0級(jí)備份以后發(fā)生變化的數(shù)據(jù);
2級(jí):備份從1級(jí)備份以后發(fā)生變化的數(shù)據(jù);
b.使用ontape命令備份數(shù)據(jù)
$ontape –s
執(zhí)行該命令,系統(tǒng)會(huì)提示輸入0,1,2級(jí)備份級(jí)別
c.在整個(gè)系統(tǒng)正式運(yùn)行之前,做一次0級(jí)備份,在每天業(yè)務(wù)系統(tǒng)結(jié)束工作后應(yīng)做數(shù)據(jù)備份。如果數(shù)據(jù)量不大,可每天做0級(jí)備份。
d.管理好備份磁帶,做好標(biāo)記,如日期、時(shí)間、備份級(jí)別、所含邏輯日志號(hào)碼
2.邏輯日志文件備份
a.定時(shí)備份邏輯日志文件
定時(shí)做邏輯日志文件備份,系統(tǒng)只將已寫(xiě)滿(mǎn)的邏輯日志文件備份到磁帶上,然后清空,并釋放這些日志文件。做定時(shí)備份一定要在所有邏輯日志文件被寫(xiě)滿(mǎn)之前進(jìn)行。所以,如果采用定時(shí)備份,要注意觀(guān)察邏輯日志使用狀況。另外,如果經(jīng)常有長(zhǎng)事務(wù)發(fā)生,應(yīng)避免使用定時(shí)備份,采用連續(xù)備份比較安全。
命令: ontape -a
b.連續(xù)備份邏輯日志文件
連續(xù)備份即邏輯日志文件寫(xiě)滿(mǎn)一個(gè),就備份一個(gè),然后該日志文件被消空、釋放。因此,要做連續(xù)備份,必須保證磁帶機(jī)中有磁帶。連續(xù)備份需占用一個(gè)屏幕或終端顯示信息。當(dāng)磁帶滿(mǎn)時(shí),系統(tǒng)會(huì)提示換帶。
命令: ontape -c
Informix建議使用連續(xù)備份,但連續(xù)備份將一直占用磁帶機(jī),如果系統(tǒng)有二個(gè)磁帶機(jī),可分別用作數(shù)據(jù)備份及邏輯日志備份,如果系統(tǒng)只有一個(gè)磁帶機(jī),會(huì)與數(shù)據(jù)備份發(fā)生沖突,可按下表方式進(jìn)行切換:
時(shí) 間 |
操 作 |
每日業(yè)務(wù)開(kāi)始及進(jìn)行中 |
保證磁帶機(jī)中有磁帶,并且有一個(gè)屏幕或終端在運(yùn)行:ontape -c |
每日業(yè)務(wù)結(jié)束前 |
a.停止ontape -c,記錄磁帶中保存的邏輯日志的號(hào)碼 b.換磁帶 c.運(yùn)行ontape -s,(在業(yè)務(wù)量不大時(shí)建議使用0級(jí)備份)運(yùn)行結(jié)束后在磁帶上標(biāo)注日期,時(shí)間,備份級(jí)別,所含邏輯日志號(hào)碼 d.換磁帶 |
3.系統(tǒng)恢復(fù)
當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤,或者你想把系統(tǒng)恢復(fù)到某一時(shí)間點(diǎn)的數(shù)據(jù)時(shí),你必須利用數(shù)據(jù)備份帶和邏輯日志備份來(lái)恢復(fù)系統(tǒng)。
數(shù)據(jù)備份將系統(tǒng)恢復(fù)到做數(shù)據(jù)備份的時(shí)間點(diǎn)數(shù)據(jù)狀態(tài),邏輯日志備份能將系統(tǒng)恢復(fù)到數(shù)據(jù)備份時(shí)間點(diǎn)以后的數(shù)據(jù)狀態(tài)。
命令:ontape -r
敲入該命令后,你可根據(jù)系統(tǒng)提示,依次恢復(fù)最近的0、1、2級(jí)數(shù)據(jù)備份帶及數(shù)據(jù)備份帶之后的邏輯日志帶。
六、系統(tǒng)診斷
online.log文件
數(shù)據(jù)庫(kù)事務(wù)日志信息記錄在$INFORMIXDIR/online.log文件中,平時(shí)應(yīng)經(jīng)常查看online.log文件信息,檢查數(shù)據(jù)庫(kù)有無(wú)異常。當(dāng)數(shù)據(jù)庫(kù)出錯(cuò)時(shí)查看online.log文件可知道數(shù)據(jù)庫(kù)系統(tǒng)出錯(cuò)原因及處理建議。online.log非常有用,應(yīng)很好地維護(hù),定期清空,以防止文件過(guò)大難以查看。
finderr命令
當(dāng)數(shù)據(jù)庫(kù)出錯(cuò)時(shí), 一般帶有錯(cuò)誤號(hào),利用finderr命令可以查出數(shù)據(jù)庫(kù)系統(tǒng)出錯(cuò)原因及處理建議提示。
【編輯推薦】