有些 DDL 指令,目前只有 TRUNCATE
和重新寫入表格形式的 ALTER TABLE
,不是 MVCC 安全的。這表示在截斷或重寫提交之後,表格對於並行交易會顯示為空的,如果它們使用的是在 DDL 指令提交之前取得的快照。這只會對於在 DDL 指令啟動之前沒有存取相關表格的交易產生問題 —— 任何這樣做的交易至少會持有 ACCESS SHARE
表格鎖定,這會阻擋 DDL 指令直到該交易完成。因此,這些指令不會在目標表格的後續查詢中造成任何明顯的不一致,但它們可能會在目標表格和資料庫中的其他表格之間造成可見的不一致。
對於可序列化(Serializable)交易隔離等級的支援尚未新增到熱備援複寫目標(在第 26.4 節中描述)。熱備援模式中目前支援的最嚴格隔離等級是可重複讀取(Repeatable Read)。雖然在主要伺服器上使用可序列化交易執行所有永久性資料庫寫入,可以確保所有備用伺服器最終達到一致的狀態,但在備用伺服器上執行的可重複讀取交易有時可能會看到與主要伺服器上任何序列交易執行不一致的暫時狀態。
對系統目錄的內部存取未使用目前交易的隔離等級。這表示新建立的資料庫物件(例如表格)對於並行的可重複讀取和可序列化交易是可見的,即使它們包含的列不是。相反地,顯式檢查系統目錄的查詢在較高的隔離等級中看不到代表並行建立的資料庫物件的列。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步說明的內容,請使用此表單來報告文件問題。