4
A
回答
7
存儲值存儲在SYSTEM.SEQ $(我認爲)表中,緩存保存在下一個要使用的值的內存中,該緩存的大小取決於CACHE值序列。
當緩存耗盡時,SEQ $表被更新爲新值(以不一致的方式 - 即沒有用戶會話的Transacton控制應用),接下來說100個值(如果CACHE = 100)從內存中讀取。
假設您正在使用緩存大小爲20的序列。當您從序列中選擇某個值(比如說1400)時,SEQ $表會更新爲值1420.即使您回滾了事務中,SEQ $仍然具有該值,直到使用了接下來的20個序列值,此時SEQ $被更新爲1440.如果您剛剛使用了值1423併發生實例崩潰,那麼當系統重新啓動下一個值從後續讀取將是1440.
所以,是的序列完整性將被保留,數字將不會被「重新發布」。請注意,這同樣適用於正常關機 - 當您重新啓動時,您將在上面的示例中獲得1440的新值。由於這個原因,序列在實踐中不保證沒有間隙(也是因爲使用一個值然後回滾不會將該值恢復到緩存)。
2
不是我對此有任何經驗,但我非常認爲恢復到一致的系統更改編號狀態也會將序列返回到上次保存的狀態。在恢復方面,其他任何東西都是毫無用處的。
對於緩存值,即使實例以有序方式關閉(*),它們也(可能)丟失:實例將大量序列值緩存到內存(SGA)中,而不是每次都去數據庫。實例已保留的未使用的序列值可能「消失」,從而在序列中留下缺口。 (*)8i文檔提到這可能發生在並行實例(RAC)中,在這種情況下,序列甚至可能不是嚴格遞增的(但仍然是唯一的),10g文檔說它發生在實例故障的情況下。
相關問題
- 1. Hadoop災難恢復
- 2. MSMQ災難恢復
- 3. Sharepoint災難恢復
- 4. TFS 2012的災難恢復
- 5. 什麼是您的災難恢復計劃?
- 6. Web角色和SQL Azure災難恢復
- 7. 災難恢復 - 反向工程XAML/BAML
- 8. 配置Apache Cassandra的災難恢復
- 9. TFS2010僅備份災難恢復
- 10. 災難恢復打開了嗎?
- 11. Cassandra的年度災難恢復練習
- 12. 災難恢復模板文檔
- 13. AWS中的災難恢復服務器
- 14. Mule ESB災難恢復策略
- 15. gwan的災難恢復和編程
- 16. Android:活動恢復後DialogFragments的順序發生變化
- 17. 從墓碑狀態恢復後會發生什麼?
- 18. 會話過期後會話ID會發生什麼變化?
- 19. 災難恢復 - 不使用MDF恢復SQL Server數據庫
- 20. 自動化高可用性和災難恢復測試
- 21. php爲什麼一個變量會在post後發生變化?
- 22. 循環後變量的內存會發生什麼變化? (C++)
- 23. 當方向發生變化時,片段Backstack不會恢復
- 24. 反序列化時,標記[NonSerialized]的字段會發生什麼變化?
- 25. C字符串中'\ 0'後內存會發生什麼變化?
- 26. 成功部署後CF清單會發生什麼變化?
- 27. 加入超時值後,Java線程會發生什麼變化
- 28. 函數調用後指針會發生什麼變化
- 29. 創建副本後數組會發生什麼變化?
- 30. WeakReference.Gar的GC之後的WeakReference會發生什麼變化。目標