VFP數(shù)據(jù)庫(kù)文件的備份形式一般有兩種,一種是以記錄格式,即以VFP表格(.dbf)進(jìn)行存儲(chǔ),這種方法的優(yōu)點(diǎn)是表的數(shù)據(jù)被按照原樣進(jìn)行備份,備注字段、通用字段等特殊字段不必進(jìn)行特殊處理即可很容易地實(shí)現(xiàn)數(shù)據(jù)備份和數(shù)據(jù)恢復(fù),缺點(diǎn)是記錄格式一旦丟失,將造成記錄無(wú)法恢復(fù);另一種是將記錄以文本格式進(jìn)行備份,優(yōu)點(diǎn)是文本數(shù)據(jù)比較穩(wěn)定,不容易被損壞,缺點(diǎn)是備注字段、通用字段等特殊字段需要進(jìn)行特殊處理,不容易實(shí)現(xiàn)自動(dòng)備份和恢復(fù)。
小型數(shù)據(jù)庫(kù)備份與恢復(fù)的原理
本文所說(shuō)的小型數(shù)據(jù)庫(kù)是指庫(kù)文件容量不超過(guò)一張磁盤(pán)的數(shù)據(jù)庫(kù),對(duì)這種數(shù)據(jù)庫(kù),我們常用的備份方法是用: Copy to < 路徑\backup1> 命令直接拷貝庫(kù)記錄,并生成backup1.dbf的表文件,如果原數(shù)據(jù)表有備注字段還會(huì)同時(shí)生成一個(gè)名為 backup1.fpt的備注文件,我們?cè)儆?Copy index indexfilename to <目標(biāo)路徑\filename1> 命令備份索引文件即可。
第二種方法是用 Copy to <路徑\backup1.txt> 命令將原數(shù)據(jù)表備份成為一個(gè)文本文件 backup1.txt ,并用 Copy structure to <路徑\backup1> 命令將原數(shù)據(jù)表的結(jié)構(gòu)備份為backup1.dbf, 如果原數(shù)據(jù)表有備注字段的話也會(huì)生成備注文件backup1.fpt。注意在存儲(chǔ)成文本文件時(shí),如原數(shù)據(jù)表有備注字段時(shí),拷貝命令不要用 Copy to <路徑\backup1.txt> sdf,因?yàn)檫@樣無(wú)法生成備注文件backup.fpt。恢復(fù)的辦法是用 Copy structure to 命令恢復(fù)庫(kù)結(jié)構(gòu),再用 Append from <路徑\backup1.txt> 命令,即可將數(shù)據(jù)記錄包括備注字段一并恢復(fù)。注意這種情況下一定要保證備份時(shí)生成的備注文件backup1.fpt是完好的。
大型數(shù)據(jù)庫(kù)備份與恢復(fù)的原理
1.問(wèn)題的提出
在一個(gè)系統(tǒng)中,當(dāng)一個(gè)庫(kù)文件大于1.44Mb時(shí),無(wú)法用一張軟盤(pán)進(jìn)行備份時(shí),本文稱之為大型數(shù)據(jù)庫(kù)的備份與恢復(fù)問(wèn)題,這恰恰是最常見(jiàn)的情況。
2.分析
用 Copy to 〈路徑\filename〉[〈scope〉] 命令可以將目前工作區(qū)中數(shù)據(jù)庫(kù)的記錄全部或部分拷貝到目標(biāo)數(shù)據(jù)庫(kù)文件中去?!磃ile〉是目標(biāo)文件名,如果不給目標(biāo)文件指定擴(kuò)展名的話,系統(tǒng)默認(rèn)擴(kuò)展名為.dbf;用〈scope〉關(guān)鍵字控制記錄拷貝操作,將適當(dāng)?shù)挠涗洈?shù)備份到軟盤(pán)上,這樣就可以解決一張磁盤(pán)裝不下的問(wèn)題。而恢復(fù)的動(dòng)作正好相反,只要利用命令將備份到各個(gè)磁盤(pán)的數(shù)據(jù)記錄合并就可以了。
3.具體實(shí)現(xiàn)步驟
(1)對(duì)容量進(jìn)行計(jì)算
設(shè)定默認(rèn)路徑為軟盤(pán)所在驅(qū)動(dòng)器,用diskspace()函數(shù)計(jì)算備份軟盤(pán)的剩余空間,用recsize()函數(shù)對(duì)需要備份的數(shù)據(jù)庫(kù)中的每條記錄長(zhǎng)度進(jìn)行計(jì)算,然后用測(cè)試得的磁盤(pán)可用空間除以記錄的長(zhǎng)度,確定該軟盤(pán)剩余空間能夠備份數(shù)據(jù)庫(kù)中多少條記錄,當(dāng)然這是最理想的情況即沒(méi)有備注字段等特殊字段,否則還得考慮每條備注字段的大小。
(2) 將指定的數(shù)據(jù)記錄備份到軟盤(pán)
如果磁盤(pán)空間所能備份的記錄數(shù)目大于數(shù)據(jù)庫(kù)現(xiàn)有的實(shí)際記錄數(shù)目時(shí),直接用 Copy to 〈file〉備份。否則先移動(dòng)記錄指針到開(kāi)始備份的記錄號(hào)上,然后用 Copy to 〈file〉 Next 〈備份記錄數(shù)〉備份,下一張盤(pán)備份時(shí),讓指針后移到需備份的記錄處。
(3) 作好備份盤(pán)號(hào)、記錄數(shù)等標(biāo)記
為了備份盤(pán)管理和以后恢復(fù)時(shí)能夠按正確的順序進(jìn)行,我們?cè)诳截愅旰螅獙⒚恳粡埍P(pán)的備份情況存入備份設(shè)置文件Bak.dbf中,以便恢復(fù)程序能夠識(shí)別備份盤(pán)。
小型數(shù)據(jù)庫(kù)備份與恢復(fù)的原理
本文所說(shuō)的小型數(shù)據(jù)庫(kù)是指庫(kù)文件容量不超過(guò)一張磁盤(pán)的數(shù)據(jù)庫(kù),對(duì)這種數(shù)據(jù)庫(kù),我們常用的備份方法是用: Copy to < 路徑\backup1> 命令直接拷貝庫(kù)記錄,并生成backup1.dbf的表文件,如果原數(shù)據(jù)表有備注字段還會(huì)同時(shí)生成一個(gè)名為 backup1.fpt的備注文件,我們?cè)儆?Copy index indexfilename to <目標(biāo)路徑\filename1> 命令備份索引文件即可。
第二種方法是用 Copy to <路徑\backup1.txt> 命令將原數(shù)據(jù)表備份成為一個(gè)文本文件 backup1.txt ,并用 Copy structure to <路徑\backup1> 命令將原數(shù)據(jù)表的結(jié)構(gòu)備份為backup1.dbf, 如果原數(shù)據(jù)表有備注字段的話也會(huì)生成備注文件backup1.fpt。注意在存儲(chǔ)成文本文件時(shí),如原數(shù)據(jù)表有備注字段時(shí),拷貝命令不要用 Copy to <路徑\backup1.txt> sdf,因?yàn)檫@樣無(wú)法生成備注文件backup.fpt。恢復(fù)的辦法是用 Copy structure to 命令恢復(fù)庫(kù)結(jié)構(gòu),再用 Append from <路徑\backup1.txt> 命令,即可將數(shù)據(jù)記錄包括備注字段一并恢復(fù)。注意這種情況下一定要保證備份時(shí)生成的備注文件backup1.fpt是完好的。
大型數(shù)據(jù)庫(kù)備份與恢復(fù)的原理
1.問(wèn)題的提出
在一個(gè)系統(tǒng)中,當(dāng)一個(gè)庫(kù)文件大于1.44Mb時(shí),無(wú)法用一張軟盤(pán)進(jìn)行備份時(shí),本文稱之為大型數(shù)據(jù)庫(kù)的備份與恢復(fù)問(wèn)題,這恰恰是最常見(jiàn)的情況。
2.分析
用 Copy to 〈路徑\filename〉[〈scope〉] 命令可以將目前工作區(qū)中數(shù)據(jù)庫(kù)的記錄全部或部分拷貝到目標(biāo)數(shù)據(jù)庫(kù)文件中去?!磃ile〉是目標(biāo)文件名,如果不給目標(biāo)文件指定擴(kuò)展名的話,系統(tǒng)默認(rèn)擴(kuò)展名為.dbf;用〈scope〉關(guān)鍵字控制記錄拷貝操作,將適當(dāng)?shù)挠涗洈?shù)備份到軟盤(pán)上,這樣就可以解決一張磁盤(pán)裝不下的問(wèn)題。而恢復(fù)的動(dòng)作正好相反,只要利用命令將備份到各個(gè)磁盤(pán)的數(shù)據(jù)記錄合并就可以了。
3.具體實(shí)現(xiàn)步驟
(1)對(duì)容量進(jìn)行計(jì)算
設(shè)定默認(rèn)路徑為軟盤(pán)所在驅(qū)動(dòng)器,用diskspace()函數(shù)計(jì)算備份軟盤(pán)的剩余空間,用recsize()函數(shù)對(duì)需要備份的數(shù)據(jù)庫(kù)中的每條記錄長(zhǎng)度進(jìn)行計(jì)算,然后用測(cè)試得的磁盤(pán)可用空間除以記錄的長(zhǎng)度,確定該軟盤(pán)剩余空間能夠備份數(shù)據(jù)庫(kù)中多少條記錄,當(dāng)然這是最理想的情況即沒(méi)有備注字段等特殊字段,否則還得考慮每條備注字段的大小。
(2) 將指定的數(shù)據(jù)記錄備份到軟盤(pán)
如果磁盤(pán)空間所能備份的記錄數(shù)目大于數(shù)據(jù)庫(kù)現(xiàn)有的實(shí)際記錄數(shù)目時(shí),直接用 Copy to 〈file〉備份。否則先移動(dòng)記錄指針到開(kāi)始備份的記錄號(hào)上,然后用 Copy to 〈file〉 Next 〈備份記錄數(shù)〉備份,下一張盤(pán)備份時(shí),讓指針后移到需備份的記錄處。
(3) 作好備份盤(pán)號(hào)、記錄數(shù)等標(biāo)記
為了備份盤(pán)管理和以后恢復(fù)時(shí)能夠按正確的順序進(jìn)行,我們?cè)诳截愅旰螅獙⒚恳粡埍P(pán)的備份情況存入備份設(shè)置文件Bak.dbf中,以便恢復(fù)程序能夠識(shí)別備份盤(pán)。

