上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
chioucy
註冊時間: 2004-05-26 文章: 33
第 1 樓
|
發表於: 星期一 二月 06, 2006 4:40 pm 文章主題: 交易異動處理 仍有 資料遺失 之問題 |
|
|
各位先進
一個問題 請教各位
我是用 VFP 6.0 撰寫系統的
交易的異動 會使用 BEGIN TRANSACTION 及 END TRANSACTION 處理
照理論 來說 交易的異動應該會完整的寫入資料庫內
但是在當電腦發生當機時會有一個問題 產生!
比如我有一筆交易會異動到三個TABLE,使用TRANSACTION 處理,
但是在END TRANSACTION 後其實它更新的只是記憶統中資料庫的資料,尚未真正寫入硬碟內,這時如果電腦發生不明原因的當機或其他問題,使用者強迫關機後,可能發生三個TABLE只有一個TABLE資料有異動到,其他二個TABLE來不及寫入硬碟,這時候就會產生資料不一致的嚴重問題!!!
不知各位先進有何方法可以妥善解決此一問題? 還是只能乞求電腦不要當機.... |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 2 樓
|
發表於: 星期一 二月 06, 2006 4:53 pm 文章主題: |
|
|
乞求電腦不要當機.......
HELP是這樣說的.
當然你可以設計一些輔助機制來避免 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 3 樓
|
發表於: 星期二 二月 07, 2006 12:11 am 文章主題: |
|
|
help:
-------------------------------
儘管在正常情況下,簡單的異動交易處理能夠提供安全的資料更新動作,但是它並無法提供對系統失敗的完全保護。如果在處理 END TRANSACTION 命令期間斷電或產生其他系統插斷,則資料更新仍將失敗。 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
chioucy
註冊時間: 2004-05-26 文章: 33
第 4 樓
|
發表於: 星期二 二月 07, 2006 8:39 am 文章主題: |
|
|
是阿 tableupdate() 是一定要做的
但是即使於END TRANSACTION 之後發生斷電或當機 資料仍有機會造成 Table 間資料不一致啊!
我在想 在資料一致性非常重要的系統上(如金融交易系統)要如何避免呢? |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 5 樓
|
發表於: 星期二 二月 07, 2006 9:16 am 文章主題: |
|
|
買UPS避免斷電,
server作業單純化避免某一程式導致系統當機,
系統作多phase/stage 的結帳,
例如a檔轉到b檔,b檔轉c檔,c檔才轉正式檔之類,然後檢查各檔有沒有遺漏之類,減少存檔遺漏,
或是其他方式結帳等等. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
chioucy
註冊時間: 2004-05-26 文章: 33
第 6 樓
|
發表於: 星期一 五月 22, 2006 1:25 pm 文章主題: |
|
|
我最近查到二個指令 或許可以解決 END TRANSACTION 後強迫立刻把資料立刻寫回硬碟
指令如下
SET AUTOSAVE ON
FLUSH |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 7 樓
|
發表於: 星期一 五月 22, 2006 2:28 pm 文章主題: |
|
|
這樣就失去用交易的目的.
您可以想想看為什麼. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
chioucy
註冊時間: 2004-05-26 文章: 33
第 8 樓
|
發表於: 星期一 五月 22, 2006 5:17 pm 文章主題: |
|
|
SYNTECH 大大
我不太明白 如果我把 flush 指令放於END TRANSACTION 指令後面執行的話 它不是會把交易異動後的
tablet及index 資料表強迫寫入硬碟中嗎? (因為flush指令在foxpro中說明不多 我並不很了解其功能 請多指教) |
|
回頂端 |
|
 |
kalok
註冊時間: 2010-08-26 文章: 284
第 9 樓
|
發表於: 星期四 二月 16, 2012 12:42 pm 文章主題: |
|
|
>但是即使於END TRANSACTION 之後發生斷電或當機 資料仍有機會造成 Table 間資料不一致啊!
VFP 在斷電或當機時不能rollback, 後端資料庫是sql server的話應該OK吧 |
|
回頂端 |
|
 |
|