undo日志 日志方式轉(zhuǎn)換及物理日志和邏輯日志如何管理呢?
日志方式轉(zhuǎn)換及物理日志和邏輯日志如何管理呢?物理日志由連續(xù)的磁盤空間組成。其主要目的是為系統(tǒng)的快速恢復(fù)提供原始數(shù)據(jù)圖像。邏輯日志由幾個獨立的磁盤空間組成,每個磁盤空間都是一個連續(xù)的磁盤空間。Infor
日志方式轉(zhuǎn)換及物理日志和邏輯日志如何管理呢?
物理日志由連續(xù)的磁盤空間組成。其主要目的是為系統(tǒng)的快速恢復(fù)提供原始數(shù)據(jù)圖像。邏輯日志由幾個獨立的磁盤空間組成,每個磁盤空間都是一個連續(xù)的磁盤空間。Informix動態(tài)服務(wù)器系統(tǒng)中的邏輯日志塊的數(shù)量至少應(yīng)該是三個,并且管理員可以配置最大數(shù)據(jù)量(不超過32767)。保存邏輯日志的目的是保存系統(tǒng)的每一次操作和修改,以便在系統(tǒng)出現(xiàn)問題時,可以根據(jù)其內(nèi)容重做,或者在事務(wù)無法繼續(xù)時撤消。邏輯日志記錄的內(nèi)容主要包括事務(wù)操作的每一步對系統(tǒng)的影響、DDL語句和檢查點記錄。兩者的區(qū)別:物理日志由系統(tǒng)維護(hù),通常不需要人工維護(hù)。邏輯日志的維護(hù)通常需要人工干預(yù)。
mysql進(jìn)行回滾事物的時候,是怎么樣根據(jù)redo log和undo里面記錄的sql進(jìn)行的?
撤消日志用于存儲數(shù)據(jù)修改前的值。假設(shè)修改TBA表中id=2的行數(shù)據(jù),并將name=“B”改為name=“B2”,則使用undo log來存儲name=“B”的記錄。如果修改異常,可以使用undo log進(jìn)行回滾操作,保證事務(wù)的一致性。
數(shù)據(jù)更改操作主要來自insert update delete,undo log分為兩種,一種是insert undo(插入操作),記錄要插入的唯一鍵值;一種是update undo(包括update和delete操作),記錄修改的唯一鍵值和舊列記錄。