Teradata的資料保護

miguelmin發表於2009-08-24

同其他的資料庫系統相比,Teradata資料庫提供了更多的資料保護措施。概括起來有以下幾種:鎖保護、fallback機制、Recovery Journals、Cliques、Transient Journal、ARC工具、Permanent Journal,當然還有最底層的RAID技術,不過RAID技術與Teradata本身無關,這裡不做說明。

[@more@]

一、Locks
鎖可以防止多使用者在同一時刻試圖修改同一資料而影響資料的完整性。這種併發控制是透過鎖定目標資料來實現的。鎖是在請求操作的同時自動載入的,在請求完成後自動釋放。另外,使用者是可以改變鎖的型別。有四種型別鎖:

有四種型別的鎖
Exclusive --- 防止其他任何型別的並行訪問
--- 只應用於DATABASE和TABLE,而不應用於行
--- 限制最高
Write --- 防止其他的Write、Read、Exclusive鎖
Read --- 防止其他的Write、Exclusive鎖
Access --- 只防止其他的Exclusive

鎖可以應用有三個資料庫級別
Database --- 應用到資料庫中所有的Table/View
Table/View --- 應用到Table/View中所有的行
Row hash – 應用到所有具有相同雜湊值的行

鎖的型別根據SQL命令自動施加
Select –- 施加Read鎖
Update --- 施加Write鎖
Create Table --- 施加Exclusive鎖

DW中最常用的為Access鎖
ACCESS鎖優點:
在多使用者環境中,容許使用者快速訪問表
對其他的訪問產生最小的影響
對訪問大量行資料非常有用
ACCESS鎖缺點:
在維護表的同時執行ACCESS鎖,可能產生不一致或不正確的資料。

二、fall back protection
cluster:作為一個獨立的fallback活動單元一組AMPs。
Fallback保護是在同一Cluster中其他的AMP上儲存一份相同的記錄來達到保護資料的目的。如果一個AMP失效,系統就會訪問Fallback的記錄。Fallback機制在表的級別上提供了AMP的容錯能力。在Fallback下,如果一個AMP失效,AMP上的資料仍然可用。使用者可以繼續使用Fallback的表,而不會丟失任何資料。
建表的時候或建表以後,都可以進行表的Fallback保護定義。如果定義了Fallback保護,它的保護是自動和透明的。
Fallback容許在不同的AMP上有兩條相同的記錄。如果其中的一個AMP失效,另一個AMP上的記錄仍然可用。
這樣的好處就是保護了使用者的資料,但是也帶來了額外的開銷。包括兩倍的磁碟空間、兩倍的Insert、Update、Delete的I/O開銷(Fallback選項對於Select操作不需要額外的I/O開銷)。

在一個AMP不可用時,一張FALLBACK保護的表仍然可用
一個FALLBACK記錄是主記錄存在其他AMP上的副本
FALLBACK優點:
在AMP下線期間仍然可以正常訪問資料
在磁碟陣列RAID保護的基礎上增加了一層資料保護
自動儲存
高可用性
FALLBACK開銷
兩倍的庫表儲存開銷
兩倍INSERT、UPDATE、DELETE的I/O開銷
注意:如果在同一個CLUSTER中失效兩個AMP則RDBMS會停掉

FALLBACK叢集是AMP叢集,它擔當獨立的FALLBACK單元。叢集對錶中行的分佈沒有影響。FALLBACK行只複製到同一叢集中的其他AMP上。
叢集的大小可以透過TERADATA控制工具設定,從2個AMP到16個AMP不等(在同一系統中叢集的大小是可以不相等的)。例如將8個AMP系統被分成2個叢集,每個叢集有4個AMP。
如果一個AMP出錯,儲存在這個AMP上的主行和FALLBACK行是不可以訪問的。但是這些行的副本在同一叢集中的其他AMP上是可用的。
在一叢集中失效一個AMP對其他的叢集是沒有影響的
如果在叢集中失效一個AMP,仍然可以完全訪問所有FALLBACK保護的表。
如果在同一叢集中失效兩個AMP,則整個資料庫系統將停掉
當一個AMP失效後,同一叢集中的其他AMP出了完成自己以前的工作,還要完成Down掉AMP的工作。叢集越大,如果一個AMP Down掉後對其他AMP負載的增加影響就越小。但是叢集越大,壞兩個AMP的機率就更大,而使整個資料系統停掉的可能性就越大。

FALLBACK保護叢集定義為獨立的AMP容錯單元
叢集中的FALLBACK行必須在同一個叢集中
叢集中一個AMP失效仍然可以訪問表中的資料
在同一叢集中同時有兩個AMP失效,資料庫系統停掉

Fallback vs. Non-Fallback Tables
Fallback tables
Fallback保護表的一個主要好處就是它的可用性和可恢復性。在一個AMP失效的情況下,仍然是所有的資料可以被訪問。任何一組中壞掉兩個AMP,則系統停掉。在這種情況下,必須手動重起系統。由於Fallback行資料的存在,FALLBACK表很容易恢復。
Non-Fallback Tables
沒有Fallback保護的表會受到一個AMP壞掉的影響。表還是可以被訪問的,但是隻能訪問線上的AMP上的資料。單AMP的主索引訪問是可能的,但是全表掃描是不可以的。沒有受FALLBACK保護的表,如果遇到問題,只能從其他的儲存介質上重新匯入。

Fallback and Disk Arrays
Fallback保護表的應用經常涉及到磁碟陣列保護的問題。透過映象機制,RAID1為每一個資料行提供了一個備份。Fallback在RAID1之上增加了一層保護,但是某些實施案例這些開銷是不可以承受的。
RAID1加Fallback保護提供了最高階別的資料保護。甚至在整個Rank失效的情況下,系統都是可用的。
RAID5加Fallback保護被普遍應用,可以對失去兩個磁碟以下的情況進行保護。
因為系統每天要24個小時,每星期要7天地不停執行,推薦Fallback以減少系統的Down機時間。

三、Recovery Journals for Down AMPs(失效AMP的恢復日誌)
任何AMP Down掉後,恢復日誌會自動啟動,來記錄AMP在Down掉期間的所有行變化,對失效AMP的insert,update,delete等操作都被應用於同一叢集中的Fallback備份。擁有Fallback備份的AMP會將變化的ROW_ID記錄到恢復日誌中。
這種操作一直進行到Down掉的AMP重新上線為止。做為重新啟動的一部分,系統將讀取日誌,並將變化應用到重起的AMP。在恢復完成後,日誌將被丟棄。

恢復日誌是:
當AMP DOWN掉後自動啟動
由同一FALLBACK組中的其他AMP維護
對系統使用者來說是透明

AMP下線期間:
日誌是活動的
表可以正常進行UPDATE操作
日誌記錄DOWN掉AMP變化的行的ROW_ID

AMP重起上線
重新儲存行的變化到當前的狀態
日誌恢復完成後被刪除


四、Cliques
共享一個磁碟陣列兩個或更多的TPA (Trusted Parallel Application)節點稱為一個clique.
Cliques只對UNIX系統適用。一個CLIQUE可以包含2到8個節點。通常建議每個CLIQUE 4個節點。
AMP虛擬程式可以執行在同一CLIQUE中的任何一個節點上,可以完全訪問到磁碟陣列的所有空間。
在同一個CLIQUE中,多節點之間都可以通訊。
在MPP系統中的一個CLIQUE中如果壞掉一個節點或磁碟,就算在沒有FALLBACK保護情況下,MPP系統仍然可以執行。如果在同一CLIQUE中的不同節點上丟失了AMP虛擬程式,則系統要重起。當節點恢復後,將會把AMP轉移給原來的節點。例如7x24系統,FALLBACK選項建議最小化系統磁碟的DOWN機時間。


五、Transient Journal /臨時日誌
臨時日誌容許事務可以成功回滾(TXN)。事務在AMP沒有收到結束請求是不能提交給資料的,無論是隱式還是顯式。事務有可能失敗,如果這樣,涉及到的資料表就必須恢復到事件前的狀態。
臨時日誌維護一張事務影響的資料行的副本。如果事務失敗,事務前的資料副本就會應用到受影響的表上,然後從日誌中刪除,回滾操作完成。如果事務提交成功,則將在事務提交前的資料副本從日誌中刪除。

1)由事務前的檢視組成
2)在事務TXN失敗後自動回滾到事務前的狀態
3)是自動和透明的
4)如果TXN失敗則前試圖應用到表
5)如果TXN完成則丟棄日誌

六、備份和恢復資料
ARC工具
ARC工具可以備份和重新載入資料庫物件,這樣就可以恢復被損壞和丟失的資料。成功從其他介質重新儲存物件有幾方面:、
在磁碟錯誤後,恢復沒有FALLBACK的表
恢復由於批處理產生不正常狀態而被損壞的表
恢復那些被使用者不慎刪除的TABLE、VIEW和MACRO
各種使用者損壞或刪除的資料物件
ASF2工具
ASF2以X-WINDOWS的形式提供了編寫、執行ARC命令指令碼的前端工具。它是為執行在UNIX節點或工作區設計的。

七、Permanent Journal(永久日誌)
永久日誌的目的是提供一種可以將整個資料庫恢復到一個特定的時間點的選擇。可以恢復各種不可預料的軟硬體錯誤。永久日誌也可以減少全表備份而產生高昂的時間和資源開銷。
永久日誌是可選的,而且永久日誌是由使用者自己因特殊需要來建立的。永久日誌包括兩種前像日誌(回滾)和後像日誌(前滾)。此外,使用者必須自己手工設定是單像還是雙像。
多張表或多個資料庫可以共享同一永久日誌。日誌併發獲取標準表的維護和查詢的映象。額外的磁碟空間需要計算以保證有充足的磁碟空間可以使用。
日誌需要定期放到其他的介質上。這樣就減少了全表備份的需要,只需備份變化就可以了。

永久日誌:
永久日誌可以使資料庫恢復到一個特定的時間點,是可選項,使用者自定義的,系統維護的日誌。
是為了針對意想不到的軟硬體災難而備份資料
可以指定
---一張或多張表
---一個或多個資料庫
可以建立前像日誌使資料庫回滾
可以建立後像日誌是資料庫前滾
表維護期間可以備份表改變的映象
減少全表備份的需要
提供一種無Fallback表的恢復方式
需要額外的磁碟空間來儲存變化的映象
需要使用者干預備份和恢復行為,應該被定期釋放來節省磁碟空間

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16723161/viewspace-1026293/,如需轉載,請註明出處,否則將追究法律責任。

相關文章