国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

direktori cari
前言 何為PostgreSQL? PostgreSQL簡史 格式約定 更多信息 臭蟲匯報指導 I. 教程 章1. 從頭開始 1.1. 安裝 1.2. 體系基本概念 1.3. 創(chuàng)建一個數(shù)據(jù)庫 1.4. 訪問數(shù)據(jù)庫 章2. SQL語言 2.1. 介紹 2.2. 概念 2.3. 創(chuàng)建新表 2.4. 向表中添加行 2.5. 查詢一個表 2.6. 表間鏈接 2.7. 聚集函數(shù) 2.8. 更新 2.9. 刪除 章3. 高級特性 3.1. 介紹 3.2. 視圖 3.3. 外鍵 3.4. 事務 3.5. 窗口函數(shù) 3.6. 繼承 3.7. 結論 II. SQL語言 章4. SQL語法 4.1. 詞法結構 4.2. 值表達式 4.3. 調(diào)用函數(shù) 章5. 數(shù)據(jù)定義 5.1. 表的基本概念 5.2. 缺省值 5.3. 約束 5.4. 系統(tǒng)字段 5.5. 修改表 5.6. 權限 5.7. 模式 5.8. 繼承 5.9. 分區(qū) 5.10. 其它數(shù)據(jù)庫對象 5.11. 依賴性跟蹤 章 6. 數(shù)據(jù)操作 6.1. 插入數(shù)據(jù) 6.2. 更新數(shù)據(jù) 6.3. 刪除數(shù)據(jù) 章7. 查詢 7.1. 概述 7.2. 表表達式 7.3. 選擇列表 7.4. 組合查詢 7.5. 行排序 7.6. LIMIT和OFFSET 7.7. VALUES列表 7.8. WITH的查詢(公用表表達式) 章8. 數(shù)據(jù)類型 8.1. 數(shù)值類型 8.2. 貨幣類型 8.3. 字符類型 8.4. 二進制數(shù)據(jù)類型 8.5. 日期/時間類型 8.6. 布爾類型 8.7. 枚舉類型 8.8. 幾何類型 8.9. 網(wǎng)絡地址類型 8.10. 位串類型 8.11. 文本搜索類型 8.12. UUID類型 8.13. XML類型 8.14. 數(shù)組 8.15. 復合類型 8.16. 對象標識符類型 8.17. 偽類型 章 9. 函數(shù)和操作符 9.1. 邏輯操作符 9.2. 比較操作符 9.3. 數(shù)學函數(shù)和操作符 9.4. 字符串函數(shù)和操作符 9.5. 二進制字符串函數(shù)和操作符 9.6. 位串函數(shù)和操作符 9.7. 模式匹配 9.8. 數(shù)據(jù)類型格式化函數(shù) 9.9. 時間/日期函數(shù)和操作符 9.10. 支持枚舉函數(shù) 9.11. 幾何函數(shù)和操作符 9.12. 網(wǎng)絡地址函數(shù)和操作符 9.13. 文本檢索函數(shù)和操作符 9.14. XML函數(shù) 9.15. 序列操作函數(shù) 9.16. 條件表達式 9.17. 數(shù)組函數(shù)和操作符 9.18. 聚合函數(shù) 9.19. 窗口函數(shù) 9.20. 子查詢表達式 9.21. 行和數(shù)組比較 9.22. 返回集合的函數(shù) 9.23. 系統(tǒng)信息函數(shù) 9.24. 系統(tǒng)管理函數(shù) 9.25. 觸發(fā)器函數(shù) 章10. 類型轉(zhuǎn)換 10.3. 函數(shù) 10.2. 操作符 10.1. 概述 10.4. 值存儲 10.5. UNION 章11. 索引 11.1. 介紹 11.2. 索引類型 11.3. 多字段索引 11.4. 索引和ORDER BY 11.5. 組合多個索引 11.6. 唯一索引 11.7. 表達式上的索引 11.8. 部分索引 11.9. 操作類和操作簇 11.10. 檢查索引的使用 章12. Full Text Search 12.1. Introduction 12.2. Tables and Indexes 12.3. Controlling Text Search 12.4. Additional Features 12.5. Parsers 12.6. Dictionaries 12.7. Configuration Example 12.8. Testing and Debugging Text Search 12.9. GiST and GIN Index Types 12.10. psql Support 12.11. Limitations 12.12. Migration from Pre-8.3 Text Search 章13. 并發(fā)控制 13.1. 介紹 13.2. 事務隔離 13.3. 明確鎖定 13.4. 應用層數(shù)據(jù)完整性檢查 13.5. 鎖和索引 章14. 性能提升技巧 14.1. 使用EXPLAIN 14.2. 規(guī)劃器使用的統(tǒng)計信息 14.3. 用明確的JOIN語句控制規(guī)劃器 14.4. 向數(shù)據(jù)庫中添加記錄 14.5. 非持久性設置 III. 服務器管理 章15. 安裝指導 15.1. 簡版 15.2. 要求 15.3. 獲取源碼 15.4. 升級 15.5. 安裝過程 15.6. 安裝后的設置 15.7. 支持的平臺 15.8. 特殊平臺的要求 章16. Installation from Source Code on Windows 16.1. Building with Visual C++ or the Platform SDK 16.2. Building libpq with Visual C++ or Borland C++ 章17. 服務器安裝和操作 17.1. PostgreSQL用戶帳戶 17.2. 創(chuàng)建數(shù)據(jù)庫集群 17.3. 啟動數(shù)據(jù)庫服務器 17.4. 管理內(nèi)核資源 17.5. 關閉服務 17.6. 防止服務器欺騙 17.7. 加密選項 17.8. 用SSL進行安全的TCP/IP連接 17.9. Secure TCP/IP Connections with SSH Tunnels 章18. 服務器配置 18.1. 設置參數(shù) 18.2. 文件位置 18.3. 連接和認證 18.4. 資源消耗 18.5. 預寫式日志 18.6. 查詢規(guī)劃 18.7. 錯誤報告和日志 18.8. 運行時統(tǒng)計 18.9. 自動清理 18.10. 客戶端連接缺省 18.12. 版本和平臺兼容性 18.11. 鎖管理 18.13. 預置選項 18.14. 自定義的選項 18.15. 開發(fā)人員選項 18.16. 短選項 章19. 用戶認證 19.1. pg_hba.conf 文件 19.2. 用戶名映射 19.3. 認證方法 19.4. 用戶認證 章20. 數(shù)據(jù)庫角色和權限 20.1. 數(shù)據(jù)庫角色 20.2. 角色屬性 20.3. 權限 20.4. 角色成員 20.5. 函數(shù)和觸發(fā)器 章21. 管理數(shù)據(jù)庫 21.1. 概述 21.2. 創(chuàng)建一個數(shù)據(jù)庫 21.3. 臨時庫 21.4. 數(shù)據(jù)庫配置 21.5. 刪除數(shù)據(jù)庫 21.6. 表空間 章22. 本土化 22.1. 區(qū)域支持 22.2. 字符集支持 章23. 日常數(shù)據(jù)庫維護工作 23.1. Routine Vacuuming日常清理 23.2. 經(jīng)常重建索引 23.3. 日志文件維護 章24. 備份和恢復 24.1. SQL轉(zhuǎn)儲 24.2. 文件系統(tǒng)級別的備份 24.3. 在線備份以及即時恢復(PITR) 24.4. 版本間遷移 章25. 高可用性與負載均衡,復制 25.1. 不同解決方案的比較 25.2. 日志傳送備份服務器 25.3. 失效切換 25.4. 日志傳送的替代方法 25.5. 熱備 章26. 恢復配置 26.1. 歸檔恢復設置 26.2. 恢復目標設置 26.3. 備服務器設置 章27. 監(jiān)控數(shù)據(jù)庫的活動 27.1. 標準Unix工具 27.2. 統(tǒng)計收集器 27.3. 查看鎖 27.4. 動態(tài)跟蹤 章28. 監(jiān)控磁盤使用情況 28.1. 判斷磁盤的使用量 28.2. 磁盤滿導致的失效 章29. 可靠性和預寫式日志 29.1. 可靠性 29.2. 預寫式日志(WAL) 29.3. 異步提交 29.4. WAL配置 29.5. WAL內(nèi)部 章30. Regression Tests 30.1. Running the Tests 30.2. Test Evaluation 30.3. Variant Comparison Files 30.4. Test Coverage Examination IV. 客戶端接口 章31. libpq-C庫 31.1. 數(shù)據(jù)庫聯(lián)接函數(shù) 31.2. 連接狀態(tài)函數(shù) 31.3. 命令執(zhí)行函數(shù) 31.4. 異步命令處理 31.5. 取消正在處理的查詢 31.6. 捷徑接口 31.7. 異步通知 31.8. 與COPY命令相關的函數(shù) 31.9. Control Functions 控制函數(shù) 31.10. 其他函數(shù) 31.11. 注意信息處理 31.12. 事件系統(tǒng) 31.13. 環(huán)境變量 31.14. 口令文件 31.15. 連接服務的文件 31.16. LDAP查找連接參數(shù) 31.17. SSL支持 31.18. 在多線程程序里的行為 31.19. 制作libpq程序 31.20. 例子程序 章32. 大對象 32.1. 介紹 32.2. 實現(xiàn)特點 32.3. 客戶端接口 32.4. 服務器端函數(shù) 32.5. 例子程序 章33. ECPG - Embedded SQL in C 33.1. The Concept 33.2. Connecting to the Database Server 33.3. Closing a Connection 33.4. Running SQL Commands 33.5. Choosing a Connection 33.6. Using Host Variables 33.7. Dynamic SQL 33.8. pgtypes library 33.9. Using Descriptor Areas 33.10. Informix compatibility mode 33.11. Error Handling 33.12. Preprocessor directives 33.13. Processing Embedded SQL Programs 33.14. Library Functions 33.15. Internals 章34. 信息模式 34.1. 關于這個模式 34.2. 數(shù)據(jù)類型 34.3. information_schema_catalog_name 34.4. administrable_role_authorizations 34.5. applicable_roles 34.6. attributes 34.7. check_constraint_routine_usage 34.8. check_constraints 34.9. column_domain_usage 34.10. column_privileges 34.11. column_udt_usage 34.12. 字段 34.13. constraint_column_usage 34.14. constraint_table_usage 34.15. data_type_privileges 34.16. domain_constraints 34.18. domains 34.17. domain_udt_usage 34.19. element_types 34.20. enabled_roles 34.21. foreign_data_wrapper_options 34.22. foreign_data_wrappers 34.23. foreign_server_options 34.24. foreign_servers 34.25. key_column_usage 34.26. parameters 34.27. referential_constraints 34.28. role_column_grants 34.29. role_routine_grants 34.30. role_table_grants 34.31. role_usage_grants 34.32. routine_privileges 34.33. routines 34.34. schemata 34.35. sequences 34.36. sql_features 34.37. sql_implementation_info 34.38. sql_languages 34.39. sql_packages 34.40. sql_parts 34.41. sql_sizing 34.42. sql_sizing_profiles 34.43. table_constraints 34.44. table_privileges 34.45. tables 34.46. triggered_update_columns 34.47. 觸發(fā)器 34.48. usage_privileges 34.49. user_mapping_options 34.50. user_mappings 34.51. view_column_usage 34.52. view_routine_usage 34.53. view_table_usage 34.54. 視圖 V. 服務器端編程 章35. 擴展SQL 35.1. 擴展性是如何實現(xiàn)的 35.2. PostgreSQL類型系統(tǒng) 35.3. User-Defined Functions 35.4. Query Language (SQL) Functions 35.5. Function Overloading 35.6. Function Volatility Categories 35.7. Procedural Language Functions 35.8. Internal Functions 35.9. C-Language Functions 35.10. User-Defined Aggregates 35.11. User-Defined Types 35.12. User-Defined Operators 35.13. Operator Optimization Information 35.14. Interfacing Extensions To Indexes 35.15. 用C++擴展 章36. 觸發(fā)器 36.1. 觸發(fā)器行為概述 36.3. 用 C 寫觸發(fā)器 36.2. 數(shù)據(jù)改變的可視性 36.4. 一個完整的例子 章37. 規(guī)則系統(tǒng) 37.1. The Query Tree 37.2. 視圖和規(guī)則系統(tǒng) 37.3. 在INSERT,UPDATE和DELETE上的規(guī)則 37.4. 規(guī)則和權限 37.5. 規(guī)則和命令狀態(tài) 37.6. 規(guī)則與觸發(fā)器得比較 章38. Procedural Languages 38.1. Installing Procedural Languages 章39. PL/pgSQL - SQL過程語言 39.1. 概述 39.2. PL/pgSQL的結構 39.3. 聲明 39.4. 表達式 39.5. 基本語句 39.6. 控制結構 39.7. 游標 39.8. 錯誤和消息 39.9. 觸發(fā)器過程 39.10. PL/pgSQL Under the Hood 39.11. 開發(fā)PL/pgSQL的一些提示 39.12. 從OraclePL/SQL 進行移植 章40. PL/Tcl - Tcl Procedural Language 40.1. Overview 40.2. PL/Tcl Functions and Arguments 40.3. Data Values in PL/Tcl 40.4. Global Data in PL/Tcl 40.5. Database Access from PL/Tcl 40.6. Trigger Procedures in PL/Tcl 40.7. Modules and the unknown command 40.8. Tcl Procedure Names 章41. PL/Perl - Perl Procedural Language 41.1. PL/Perl Functions and Arguments 41.2. Data Values in PL/Perl 41.3. Built-in Functions 41.4. Global Values in PL/Perl 41.6. PL/Perl Triggers 41.5. Trusted and Untrusted PL/Perl 41.7. PL/Perl Under the Hood 章42. PL/Python - Python Procedural Language 42.1. Python 2 vs. Python 3 42.2. PL/Python Functions 42.3. Data Values 42.4. Sharing Data 42.5. Anonymous Code Blocks 42.6. Trigger Functions 42.7. Database Access 42.8. Utility Functions 42.9. Environment Variables 章43. Server Programming Interface 43.1. Interface Functions Spi-spi-connect Spi-spi-finish Spi-spi-push Spi-spi-pop Spi-spi-execute Spi-spi-exec Spi-spi-execute-with-args Spi-spi-prepare Spi-spi-prepare-cursor Spi-spi-prepare-params Spi-spi-getargcount Spi-spi-getargtypeid Spi-spi-is-cursor-plan Spi-spi-execute-plan Spi-spi-execute-plan-with-paramlist Spi-spi-execp Spi-spi-cursor-open Spi-spi-cursor-open-with-args Spi-spi-cursor-open-with-paramlist Spi-spi-cursor-find Spi-spi-cursor-fetch Spi-spi-cursor-move Spi-spi-scroll-cursor-fetch Spi-spi-scroll-cursor-move Spi-spi-cursor-close Spi-spi-saveplan 43.2. Interface Support Functions Spi-spi-fname Spi-spi-fnumber Spi-spi-getvalue Spi-spi-getbinval Spi-spi-gettype Spi-spi-gettypeid Spi-spi-getrelname Spi-spi-getnspname 43.3. Memory Management Spi-spi-palloc Spi-realloc Spi-spi-pfree Spi-spi-copytuple Spi-spi-returntuple Spi-spi-modifytuple Spi-spi-freetuple Spi-spi-freetupletable Spi-spi-freeplan 43.4. Visibility of Data Changes 43.5. Examples VI. 參考手冊 I. SQL命令 Sql-abort Sql-alteraggregate Sql-alterconversion Sql-alterdatabase Sql-alterdefaultprivileges Sql-alterdomain Sql-alterforeigndatawrapper Sql-alterfunction Sql-altergroup Sql-alterindex Sql-alterlanguage Sql-alterlargeobject Sql-alteroperator Sql-alteropclass Sql-alteropfamily Sql-alterrole Sql-alterschema Sql-altersequence Sql-alterserver Sql-altertable Sql-altertablespace Sql-altertsconfig Sql-altertsdictionary Sql-altertsparser Sql-altertstemplate Sql-altertrigger Sql-altertype Sql-alteruser Sql-alterusermapping Sql-alterview Sql-analyze Sql-begin Sql-checkpoint Sql-close Sql-cluster Sql-comment Sql-commit Sql-commit-prepared Sql-copy Sql-createaggregate Sql-createcast Sql-createconstraint Sql-createconversion Sql-createdatabase Sql-createdomain Sql-createforeigndatawrapper Sql-createfunction Sql-creategroup Sql-createindex Sql-createlanguage Sql-createoperator Sql-createopclass Sql-createopfamily Sql-createrole Sql-createrule Sql-createschema Sql-createsequence Sql-createserver Sql-createtable Sql-createtableas Sql-createtablespace Sql-createtsconfig Sql-createtsdictionary Sql-createtsparser Sql-createtstemplate Sql-createtrigger Sql-createtype Sql-createuser Sql-createusermapping Sql-createview Sql-deallocate Sql-declare Sql-delete Sql-discard Sql-do Sql-dropaggregate Sql-dropcast Sql-dropconversion Sql-dropdatabase Sql-dropdomain Sql-dropforeigndatawrapper Sql-dropfunction Sql-dropgroup Sql-dropindex Sql-droplanguage Sql-dropoperator Sql-dropopclass Sql-dropopfamily Sql-drop-owned Sql-droprole Sql-droprule Sql-dropschema Sql-dropsequence Sql-dropserver Sql-droptable Sql-droptablespace Sql-droptsconfig Sql-droptsdictionary Sql-droptsparser Sql-droptstemplate Sql-droptrigger Sql-droptype Sql-dropuser Sql-dropusermapping Sql-dropview Sql-end Sql-execute Sql-explain Sql-fetch Sql-grant Sql-insert Sql-listen Sql-load Sql-lock Sql-move Sql-notify Sql-prepare Sql-prepare-transaction Sql-reassign-owned Sql-reindex Sql-release-savepoint Sql-reset Sql-revoke Sql-rollback Sql-rollback-prepared Sql-rollback-to Sql-savepoint Sql-select Sql-selectinto Sql-set Sql-set-constraints Sql-set-role Sql-set-session-authorization Sql-set-transaction Sql-show Sql-start-transaction Sql-truncate Sql-unlisten Sql-update Sql-vacuum Sql-values II. 客戶端應用程序 App-clusterdb App-createdb App-createlang App-createuser App-dropdb App-droplang App-dropuser App-ecpg App-pgconfig App-pgdump App-pg-dumpall App-pgrestore App-psql App-reindexdb App-vacuumdb III. PostgreSQL服務器應用程序 App-initdb App-pgcontroldata App-pg-ctl App-pgresetxlog App-postgres App-postmaster VII. 內(nèi)部 章44. PostgreSQL內(nèi)部概覽 44.1. 查詢路徑 44.2. 連接是如何建立起來的 44.3. 分析器階段 44.4. ThePostgreSQL規(guī)則系統(tǒng) 44.5. 規(guī)劃器/優(yōu)化器 44.6. 執(zhí)行器 章45. 系統(tǒng)表 45.1. 概述 45.2. pg_aggregate 45.3. pg_am 45.4. pg_amop 45.5. pg_amproc 45.6. pg_attrdef 45.7. pg_attribute 45.8. pg_authid 45.9. pg_auth_members 45.10. pg_cast 45.11. pg_class 45.12. pg_constraint 45.13. pg_conversion 45.14. pg_database 45.15. pg_db_role_setting 45.16. pg_default_acl 45.17. pg_depend 45.18. pg_description 45.19. pg_enum 45.20. pg_foreign_data_wrapper 45.21. pg_foreign_server 45.22. pg_index 45.23. pg_inherits 45.24. pg_language 45.25. pg_largeobject 45.26. pg_largeobject_metadata 45.27. pg_namespace 45.28. pg_opclass 45.29. pg_operator 45.30. pg_opfamily 45.31. pg_pltemplate 45.32. pg_proc 45.33. pg_rewrite 45.34. pg_shdepend 45.35. pg_shdescription 45.36. pg_statistic 45.37. pg_tablespace 45.38. pg_trigger 45.39. pg_ts_config 45.40. pg_ts_config_map 45.41. pg_ts_dict 45.42. pg_ts_parser 45.43. pg_ts_template 45.44. pg_type 45.45. pg_user_mapping 45.46. System Views 45.47. pg_cursors 45.48. pg_group 45.49. pg_indexes 45.50. pg_locks 45.51. pg_prepared_statements 45.52. pg_prepared_xacts 45.53. pg_roles 45.54. pg_rules 45.55. pg_settings 45.56. pg_shadow 45.57. pg_stats 45.58. pg_tables 45.59. pg_timezone_abbrevs 45.60. pg_timezone_names 45.61. pg_user 45.62. pg_user_mappings 45.63. pg_views 章46. Frontend/Backend Protocol 46.1. Overview 46.2. Message Flow 46.3. Streaming Replication Protocol 46.4. Message Data Types 46.5. Message Formats 46.6. Error and Notice Message Fields 46.7. Summary of Changes since Protocol 2.0 47. PostgreSQL Coding Conventions 47.1. Formatting 47.2. Reporting Errors Within the Server 47.3. Error Message Style Guide 章48. Native Language Support 48.1. For the Translator 48.2. For the Programmer 章49. Writing A Procedural Language Handler 章50. Genetic Query Optimizer 50.1. Query Handling as a Complex Optimization Problem 50.2. Genetic Algorithms 50.3. Genetic Query Optimization (GEQO) in PostgreSQL 50.4. Further Reading 章51. 索引訪問方法接口定義 51.1. 索引的系統(tǒng)表記錄 51.2. 索引訪問方法函數(shù) 51.3. 索引掃描 51.4. 索引鎖的考量 51.5. 索引唯一性檢查 51.6. 索引開銷估計函數(shù) 章52. GiST Indexes 52.1. Introduction 52.2. Extensibility 52.3. Implementation 52.4. Examples 52.5. Crash Recovery 章53. GIN Indexes 53.1. Introduction 53.2. Extensibility 53.3. Implementation 53.4. GIN tips and tricks 53.5. Limitations 53.6. Examples 章54. 數(shù)據(jù)庫物理存儲 54.1. 數(shù)據(jù)庫文件布局 54.2. TOAST 54.3. 自由空間映射 54.4. 可見映射 54.5. 數(shù)據(jù)庫分頁文件 章55. BKI后端接口 55.1. BKI 文件格式 55.2. BKI命令 55.3. 系統(tǒng)初始化的BKI文件的結構 55.4. 例子 章56. 規(guī)劃器如何使用統(tǒng)計信息 56.1. 行預期的例子 VIII. 附錄 A. PostgreSQL錯誤代碼 B. 日期/時間支持 B.1. 日期/時間輸入解析 B.2. 日期/時間關鍵字 B.3. 日期/時間配置文件 B.4. 日期單位的歷史 C. SQL關鍵字 D. SQL Conformance D.1. Supported Features D.2. Unsupported Features E. Release Notes Release-0-01 Release-0-02 Release-0-03 Release-1-0 Release-1-01 Release-1-02 Release-1-09 Release-6-0 Release-6-1 Release-6-1-1 Release-6-2 Release-6-2-1 Release-6-3 Release-6-3-1 Release-6-3-2 Release-6-4 Release-6-4-1 Release-6-4-2 Release-6-5 Release-6-5-1 Release-6-5-2 Release-6-5-3 Release-7-0 Release-7-0-1 Release-7-0-2 Release-7-0-3 Release-7-1 Release-7-1-1 Release-7-1-2 Release-7-1-3 Release-7-2 Release-7-2-1 Release-7-2-2 Release-7-2-3 Release-7-2-4 Release-7-2-5 Release-7-2-6 Release-7-2-7 Release-7-2-8 Release-7-3 Release-7-3-1 Release-7-3-10 Release-7-3-11 Release-7-3-12 Release-7-3-13 Release-7-3-14 Release-7-3-15 Release-7-3-16 Release-7-3-17 Release-7-3-18 Release-7-3-19 Release-7-3-2 Release-7-3-20 Release-7-3-21 Release-7-3-3 Release-7-3-4 Release-7-3-5 Release-7-3-6 Release-7-3-7 Release-7-3-8 Release-7-3-9 Release-7-4 Release-7-4-1 Release-7-4-10 Release-7-4-11 Release-7-4-12 Release-7-4-13 Release-7-4-14 Release-7-4-15 Release-7-4-16 Release-7-4-17 Release-7-4-18 Release-7-4-19 Release-7-4-2 Release-7-4-20 Release-7-4-21 Release-7-4-22 Release-7-4-23 Release-7-4-24 Release-7-4-25 Release-7-4-26 Release-7-4-27 Release-7-4-28 Release-7-4-29 Release-7-4-3 Release-7-4-30 Release-7-4-4 Release-7-4-5 Release-7-4-6 Release-7-4-7 Release-7-4-8 Release-7-4-9 Release-8-0 Release-8-0-1 Release-8-0-10 Release-8-0-11 Release-8-0-12 Release-8-0-13 Release-8-0-14 Release-8-0-15 Release-8-0-16 Release-8-0-17 Release-8-0-18 Release-8-0-19 Release-8-0-2 Release-8-0-20 Release-8-0-21 Release-8-0-22 Release-8-0-23 Release-8-0-24 Release-8-0-25 Release-8-0-26 Release-8-0-3 Release-8-0-4 Release-8-0-5 Release-8-0-6 Release-8-0-7 Release-8-0-8 Release-8-0-9 Release-8-1 Release-8-1-1 Release-8-1-10 Release-8-1-11 Release-8-1-12 Release-8-1-13 Release-8-1-14 Release-8-1-15 Release-8-1-16 Release-8-1-17 Release-8-1-18 Release-8-1-19 Release-8-1-2 Release-8-1-20 Release-8-1-21 Release-8-1-22 Release-8-1-23 Release-8-1-3 Release-8-1-4 Release-8-1-5 Release-8-1-6 Release-8-1-7 Release-8-1-8 Release-8-1-9 Release-8-2 Release-8-2-1 Release-8-2-10 Release-8-2-11 Release-8-2-12 Release-8-2-13 Release-8-2-14 Release-8-2-15 Release-8-2-16 Release-8-2-17 Release-8-2-18 Release-8-2-19 Release-8-2-2 Release-8-2-20 Release-8-2-21 Release-8-2-3 Release-8-2-4 Release-8-2-5 Release-8-2-6 Release-8-2-7 Release-8-2-8 Release-8-2-9 Release-8-3 Release-8-3-1 Release-8-3-10 Release-8-3-11 Release-8-3-12 Release-8-3-13 Release-8-3-14 Release-8-3-15 Release-8-3-2 Release-8-3-3 Release-8-3-4 Release-8-3-5 Release-8-3-6 Release-8-3-7 Release-8-3-8 Release-8-3-9 Release-8-4 Release-8-4-1 Release-8-4-2 Release-8-4-3 Release-8-4-4 Release-8-4-5 Release-8-4-6 Release-8-4-7 Release-8-4-8 Release-9-0 Release-9-0-1 Release-9-0-2 Release-9-0-3 Release-9-0-4 F. 額外提供的模塊 F.1. adminpack F.2. auto_explain F.3. btree_gin F.4. btree_gist F.5. chkpass F.6. citext F.7. cube F.8. dblink Contrib-dblink-connect Contrib-dblink-connect-u Contrib-dblink-disconnect Contrib-dblink Contrib-dblink-exec Contrib-dblink-open Contrib-dblink-fetch Contrib-dblink-close Contrib-dblink-get-connections Contrib-dblink-error-message Contrib-dblink-send-query Contrib-dblink-is-busy Contrib-dblink-get-notify Contrib-dblink-get-result Contrib-dblink-cancel-query Contrib-dblink-get-pkey Contrib-dblink-build-sql-insert Contrib-dblink-build-sql-delete Contrib-dblink-build-sql-update F.9. dict_int F.10. dict_xsyn F.11. earthdistance F.12. fuzzystrmatch F.13. hstore F.14. intagg F.15. intarray F.16. isn F.17. lo F.18. ltree F.19. oid2name F.20. pageinspect F.21. passwordcheck F.22. pg_archivecleanup F.23. pgbench F.24. pg_buffercache F.25. pgcrypto F.26. pg_freespacemap F.27. pgrowlocks F.28. pg_standby F.29. pg_stat_statements F.30. pgstattuple F.31. pg_trgm F.32. pg_upgrade F.33. seg F.34. spi F.35. sslinfo F.36. tablefunc F.37. test_parser F.38. tsearch2 F.39. unaccent F.40. uuid-ossp F.41. vacuumlo F.42. xml2 G. 外部項目 G.1. 客戶端接口 G.2. 過程語言 G.3. 擴展 H. The Source Code Repository H.1. Getting The Source Via Git I. 文檔 I.1. DocBook I.2. 工具集 I.3. 制作文檔 I.4. 文檔寫作 I.5. 風格指導 J. 首字母縮略詞 參考書目 Bookindex Index
watak

25.5. 熱備

熱備術語是用來形容連接到服務器,并運行只讀查詢的能力,而服務器在歸檔恢復或備模式。 對復制目的和非常精確的備份恢復到所需的狀態(tài),這是非常有用的。 長期的熱備,也指從恢復到正常運行的服務器的能力,而用戶繼續(xù)運行的查詢和/或保持連接開放。

在熱備用模式運行查詢與正常的查詢操作類似,雖然有幾個使用和管理的差異解釋如下。

25.5.1. 用戶概述

當備用服務器上hot_standby參數(shù)的設置為真時,將開始接受連接,一旦恢復帶來的系統(tǒng)到一致的狀態(tài)。 所有這些連接都嚴格只讀的,甚至可能沒有可寫的臨時表。

數(shù)據(jù)從主服務器到備服務器上需要一些時間,所以會有一個主備數(shù)據(jù)庫間的可測量的延遲。 因此,在主備服務器上幾乎同時運行同樣的查詢返回不同的結果。我們說在備服務器上的數(shù)據(jù)最終與主服務器上的一致。 一旦事務提交記錄在備服務器是上回放,由事務產(chǎn)生的變化對于在備服務器上的任何新快照來說是可見的。 快照可能是在每個查詢或事務的開始,取決于當前事務的隔離級別。請參閱Section 13.2獲取更多的信息。

熱備期間開始的事務可能會發(fā)出下面的命令:

  • 查詢訪問-SELECT,COPYTO

  • 游標命令-DECLARE,FETCH,CLOSE

  • 參數(shù)-SHOW,SET,RESET

  • 事務管理命令

    • BEGIN,END,ABORT,STARTTRANSACTION

    • SAVEPOINT,RELEASE,ROLLBACKTOSAVEPOINT

    • EXCEPTION阻塞其它內(nèi)部的子事物。

  • LOCKTABLE,但是僅當明確在這些模式之一: ACCESSSHARE,ROWSHAREROWEXCLUSIVE.

  • 規(guī)劃和資源-PREPARE,EXECUTEDEALLOCATE,DISCARD

  • Pluginsandextensions-LOAD

在熱備期間開始的事務,將從不會分配事務ID,并且不能寫入到系統(tǒng)預寫日志。 因此,以下操作將產(chǎn)生錯誤信息:

  • 數(shù)據(jù)操縱語言(DML)-INSERT, UPDATE,DELETE,COPYFROM, TRUNCATE. 請注意,不允許操作在恢復期間正執(zhí)行觸發(fā)器的結果。此限制也適用于臨時表,因為不分配一個事務ID,不能讀取或?qū)懭氡硇校? 在一個熱備環(huán)境這種情況是不可能的。

  • 數(shù)據(jù)定義語言(DDL)-CREATE, DROP,ALTERCOMMENT。 甚至臨時表也適用這個限制,因為執(zhí)行這些操作將需要更新系統(tǒng)空間表。

  • SELECT...FORSHARE|UPDATE,因為行鎖,不能不采取更新底層數(shù)據(jù)文件。

  • SELECT語句上的規(guī)則產(chǎn)生DML命令。

  • LOCK明確要求一個高于ROWEXCLUSIVEMODE的模式。

  • LOCK簡短的缺省形式,自它請求ACCESSEXCLUSIVEMODE.

  • 事務管理命令明確設置非只讀狀態(tài):

    • BEGINREADWRITE, STARTTRANSACTIONREADWRITE

    • SETTRANSACTIONREADWRITE, SETSESSIONCHARACTERISTICSASTRANSACTIONREADWRITE

    • SETtransaction_read_only=off

  • 兩階段提交命令-PREPARETRANSACTION, COMMITPREPAREDROLLBACKPREPARED 因為即使只讀事務需要在準備階段寫WAL。(兩種階段提交的第一個階段)。

  • 序列更新-nextval(),setval()

  • LISTEN,UNLISTEN,NOTIFY

在正常的操作,允許"只讀"事務更新序列,使用LISTENUNLISTEN、和 NOTIFY,所以熱備會話下操作會比通常的只讀會話限制稍微更嚴格。在將來的版本中這些限制中的一些可能會放寬。

熱備間,transaction_read_only這個參數(shù)總為真,可能不會變。但只要沒有試圖修改數(shù)據(jù)庫, 在熱備的連接,將行動就像任何其它的數(shù)據(jù)庫連接。如果發(fā)生失效切換或倒換,數(shù)據(jù)庫將切換到正常的處理模式。 當服務器改變模式,會話將保持連接。一旦熱備完成,有可能初始化讀寫事務(即使從熱備間的會話)。

通過發(fā)出的SHOWtransaction_read_only將能告訴用戶他們的會話是否只讀的。 另外,一組函數(shù)允許用戶訪問關于備服務器的信息。(請參閱Table 9-57) 這些允許你寫程序獲知數(shù)據(jù)庫的當前狀態(tài)。這些可以用來監(jiān)視恢復進程,或允許你寫復雜的程序來恢復數(shù)據(jù)庫到特定狀態(tài)。

25.5.2. 處理查詢沖突

主備服務器是許多方式松散連接的。在主服務器上的活動將在備服務器上生效。作為一個結果, 它們之間有潛在的負面交互或沖突.最容易理解的沖突是性能:如果在主服務器上發(fā)生大數(shù)據(jù)量加載, 然后將在備服務器上產(chǎn)生類似的WAL記錄流,所以備服務器查詢可能競爭系統(tǒng)資源,像I/O。

在熱備也可能發(fā)生額外的類型沖突。在該場景下,這些沖突是硬沖突。可能需要取消查詢,在某些情況下, 為了解決它們,斷開連接。給用戶提供幾種解決這些沖突的方法。沖突情況包括:

  • 在主服務器上采取訪問排斥鎖,包括明確的LOCK命令和多種DDL操作,在備服務器查詢訪問表沖突。

  • 在主服務器上刪除表空間與備服務器查詢使用該空間的臨時工作文件沖突。

  • 在主服務器上刪除一個數(shù)據(jù)庫與在備服務器上連接到那個數(shù)據(jù)庫的會話沖突。

  • 一個從WAL清空記錄的應用程序vacuum與在備服務器上事務,其快照仍然可以"看到"已刪除的行。

  • 一個從WAL清空記錄的應用程序vacuum與在備服務器上查詢訪問該目標頁,不管要刪除的數(shù)據(jù)是否可見。

在主服務器上,這些情況簡單等待結果,用戶可能選擇取消任何沖突的操作。盡管,在備服務器上沒有選擇: 在主服務器上已經(jīng)發(fā)生的WAL日志,所以備服務器應用它一定不會失敗。此外,允許WAL應用無限期等待可能是很不明智的。 因為備服務器的狀態(tài)將變?yōu)樵隽窟h落后主服務器的。因此,提供一個機制,強行取消備服務器上與將要應用WAL記錄沖突的查詢。

一個該問題情況的例子是管理員在主服務器上運行DROPTABLE一張表,而備服務器當前正查詢這張表。 如果在備服務器上執(zhí)行了DROPTABLE,明確的備服務器查詢不能繼續(xù)。如果這個問題情況發(fā)生在主服務器。則DROPTABLE將等到 其它查詢完成。但是當DROPTABLE運行在主服務器時,主服務器不會有關于備服務器查詢的信息,因此,將不等待任何備服務器查詢。 當備服務器查詢在運行時,WAL改變的記錄來到備服務器,導致一個沖突。備服務器要么延遲應用WAL記錄(任何事情也都要在它們之后),不然取消沖突的查詢, 由此可以應用DROPTABLE。

當一個沖突查詢短的,通常想要允許它完成而延遲WAL應用程序一點點。但是長時間的延遲WAL應用程序通常不是想要的。 所以取消機制有參數(shù)max_standby_archive_delay和max_standby_streaming_delay, 這定義在WAL應用程序中允許延遲最大值。一旦查詢沖突比應用任何新收取的WAL數(shù)據(jù)設定有關延遲長,則取消查詢沖突。 有兩個參數(shù),因此有兩個不同延遲,為從歸檔讀取WAL數(shù)據(jù)(即從一個基準備份初始化恢復或已經(jīng)遠落后的備服務器趕上) 和通過流復制讀取WAL數(shù)據(jù)的指定延遲。

在備服務器存在高可用性的主服務器,最好設置延遲參數(shù)相對短,因此不會由備服務器查詢所導致延遲使遠落后主服務器。 不過,如果備服務器意思為執(zhí)行長時間的查詢,那么一個高的或無期限的延遲值是可取的。請記著如果延遲WAL記錄應用程序,則長時間查詢將導致 備服務器上的其它會話不能看到最新的變化。

在備服務器查詢和WAL回放之間沖突,最常見的原因是"早清除"。 正常地,PostgreSQL允許清除舊版本行,當根據(jù)MVCC規(guī)則確保正確的數(shù)據(jù)可見性,沒有事務需要見到它們。 盡管,這個規(guī)則只能應用于主服務器執(zhí)行的事務。所以在主服務器上清空將刪除行版本,在備服務器上對于一個事務仍然可見。

有經(jīng)驗的用戶應該知道行版本清理和行版本凍結都與備服務器查詢沖突。運行手工的VACUUMFREEZE很可能導致沖突,即使表上沒有 更新和刪除行。

一旦超過了由max_standby_archive_delaymax_standby_streaming_delay指定的延遲,將取消查詢沖突。 這通常結果是一個取消錯誤,雖然在回放DROPDATABASE整個數(shù)據(jù)庫的情況下,將終止沖突會話。此外,如果沖突由空閑事務保持, 終止沖突會話。(這個行為可能在將來版本改變)。

可能立即重試已取消的查詢(在開始一個新事務之后,當然)。自查詢?nèi)∠蕾囉赪AL記錄正回放的本質(zhì),如果再次執(zhí)行,已經(jīng)取消的查詢可能很成功。

請記住這些參數(shù)與從備服務器接收WAL數(shù)據(jù)開始所經(jīng)過的時間比較。允許備服務器上任何查詢的寬期限,從不超過該延遲參數(shù), 并且如果備服務器存在落后主服務器,那么期限的可能相當小。如等待之前查詢執(zhí)行完成的結果,或不能跟上有大量的更新負載的結果。

用戶應該清楚那些表,在主服務器上定期和大量更新表將會很快導致取消備服務器上長時間運行的查詢。 在這類情況下,對max_standby_archive_delaymax_standby_streaming_delay設置一個有限值, 類似于設置statement_timeout。

如果發(fā)現(xiàn)不能接受某些取消備服務器查詢,補救存在的可能性。第一個選項是連接主服務器,并保持一個查詢活動的按照備服務器上運行查詢 所需要的時間。這阻止VACUUM刪除最近的死行,因此清理沖突不會發(fā)生。這能使用contrib/dblinkpg_sleep(), 或通過其它機制。如果你這樣做,你應該知道這將延遲主服務器清理死行,其可能不想要的表膨脹結果。不過這種情況清理不遜于如果備服務器查詢直接運行在 主服務器上,并且你仍然得到卸載執(zhí)行在備服務器上的好處。在這種情況下max_standby_archive_delay必須是保持大的,因為延遲WAL文件可能已經(jīng) 包含了備服務器查詢想要的記錄項。

另一個選項是在主服務器上增加vacuum_defer_cleanup_age,從而將不會像通常很快的清理掉死行。 這將允許在備服務器上取消它們前,更多時間給執(zhí)行查詢,無需設置一個高的max_standby_streaming_delay。 雖然用這種方法保證窗口的執(zhí)行時間是有困難的,因為vacuum_defer_cleanup_age在主服務器執(zhí)行的事務中是可測的。

25.5.3. 管理員概述

如果在postgresql.conf啟用了hot_standby,并且目前有個recovery.conf文件, 該服務器將運行在熱備模式。不過可能花些時間為允許的熱備連接,因為該服務器不接受連接直到完成足夠的恢復能提供一致的狀態(tài), 其查詢能運行。在這個期間,將帶有一個錯誤信息拒絕客戶端嘗試連接。為確認該服務器起來了,要么循環(huán)嘗試從應用程序連接,或者 在服務器日志里查看這些錯誤信息:

LOG:enteringstandbymode

...thensometimelater...

LOG:consistentrecoverystatereached
LOG:databasesystemisreadytoacceptreadonlyconnections

在主服務器上每個檢查點一致的信息記錄一次。在主服務器上沒有將wal_level設置為 hot_standby時,當讀取正在寫的WAL時,啟用熱備是不可能的。 存在這些條件的兩者也可能延遲達到一致性狀態(tài):

  • 一個寫事務有多于64個子事務

  • 很長時間活動的寫事務

如果你正運行基于文件日志傳送(“暖備”),你可能需要等到下一個WAL文件到來,其可能長如在主服務器設置的archive_timeout。

有些參數(shù)的設置在備服務器將需要重新配置,如果在主服務器改變了它們。對于這些參數(shù), 備服務器上的值要大于或等于主服務器上的。如果這些參數(shù)沒有設置足夠高,那么備服務器將拒絕啟動。 提供了更高的值,重啟該服務器再開始恢復。這些參數(shù)是:

  • max_connections

  • max_prepared_transactions

  • max_locks_per_transaction

管理員選擇合適的設置為max_standby_archive_delay和max_standby_streaming_delay是很重要的。根據(jù)業(yè)務的優(yōu)先級,最好的選擇有所不同。 例如:如果服務器是主要任務,作為高可用性的服務器,那么你想低延遲設置,也許設置為0,盡管這也是很積極的設置。 如果備服務器的任務作為決策支持的額外服務器,那么可能接受設置最大延遲為幾個小時,或甚至-1意味著永遠等待查詢完成。

在主服務器上寫的事務狀態(tài)"提示位"沒有記錄WAL日志,所以在備服務器上將或許再次重寫該提示。 因此,備服務器將仍然進行寫磁盤即使所有用戶是只讀的,數(shù)據(jù)值自身沒有發(fā)生改變。用戶將仍然寫大量排序的臨時文件和 重新生成緩存的信息文件,所以在熱備模式數(shù)據(jù)庫沒有部分是真只讀的。 還要注意寫到遠程數(shù)據(jù)庫使用dblink模塊,外部數(shù)據(jù)的操作使用PL函數(shù)仍然是可能的,盡管事務是本地只讀的。

在恢復模式里,不接受下面類型的管理命令:

  • 數(shù)據(jù)定義語言(DDL)-如CREATEINDEX

  • 權限和所有權-GRANT,REVOKE, REASSIGN

  • 維護命令-ANALYZE,VACUUM, CLUSTER,REINDEX

再次,請注意在主服務器的“只讀”模式事務中,允許這里的某些命令。

作為一個總結,你不能創(chuàng)建額外的索引,統(tǒng)計也不能僅在備服務器, 如果需要這些管理命令,應該在主服務器執(zhí)行,并且最終這些變化將傳播到備服務器。

pg_cancel_backend()將在用戶后臺工作,但是不啟動進程,其執(zhí)行恢復。pg_stat_activity 將不顯示為一個啟動進程項,也不顯示做恢復事務的活動。作為一個總結,pg_prepared_xacts在恢復中總是空。 如果你愿解決有疑問準備的事務,在主服務器上查看pg_prepared_xacts和發(fā)出命令來解決這里的事務。

pg_locks將顯示由后臺持有的鎖。pg_locks也顯示 由啟動進程所管理的虛擬事務,其擁有由恢復正回放的事務所持有的AccessExclusiveLocks。 請注意該啟動進程不需要鎖定數(shù)據(jù)庫變化,并且因此非AccessExclusiveLocks其它鎖,不會顯示在啟動進程的pg_locks里。 它們只是推測存在。

Nagios插件check_pgsql將工作,因為用它檢測存在的簡單信息。 check_postgres監(jiān)控腳本將也工作,盡管有些報告值能給不同或迷惑的結果。 例如:上次清理時間將不會保持,自在備服務器沒有清理發(fā)生。運行在主服務器的清理,將仍然發(fā)送它們的 改變到備服務器。

在恢復期間WAL文件控制命令將不工作,比如pg_start_backuppg_switch_xlog等。

動態(tài)加載模塊工作,包括pg_stat_statements

在恢復中咨詢鎖將工作正常,包括死鎖保護。 請注意咨詢鎖從不寫WAL日志,所以對于一個咨詢鎖在主服務器上或回放WAL在備服務器上沖突不可能的。 在主服務器上需要一個咨詢鎖,在備服務器上已經(jīng)初始化了一個類似咨詢鎖也是不可能的。 咨詢鎖只是與需要它們的服務器相關。

基于觸發(fā)器的復制系統(tǒng)像Slony,LondisteBucardo將不在備服務器運行, 盡管在主服務器運行的很好,但變化不會發(fā)送到備服務器應用。WAL回放不是基于觸發(fā)器的,所以你不能從備服務器中繼到任何系統(tǒng),其需要額外的寫或 依賴使用觸發(fā)器。

不能分配新OID,盡管某些UUID生成器可能仍然工作,只要不依靠它們寫新狀態(tài)到數(shù)據(jù)庫。

當前,在只讀事務中不允許創(chuàng)建臨時表,所以在某些情況下存在的腳本將運行不正確。 這個限制可能在以后的版本中放寬。這是一個SQL標準的兼容性和技術問題。

如果表空間是空,DROPTABLESPACE只能成功。有些備服務器用戶可積極的通過temp_tablespaces參數(shù)使用 該表空間。如果在表空間有臨時文件,取消所有活動的查詢來確保刪除臨時文件,所以可以刪除表空間,可以繼續(xù)WAL回放。

在主服務器上運行DROPDATABASEALTERDATABASE...SET TABLESPACE將產(chǎn)生一個WAL項,其將導致已連接到在備服務器上的那個數(shù)據(jù)庫的所有用戶,強制斷開連接。 這個動作立即發(fā)生,不管max_standby_streaming_delay設置。請注意ALTERDATABASE...RENAME不會斷開連接的用戶, 在多數(shù)情況下忽視,不過如果某些方式依賴數(shù)據(jù)庫名,可能在某些情況下導致一個程序混亂。

在正常(非恢復)模式,如果你發(fā)出DROPUSERDROPROLE對于一個有登錄權限的角色,當那個用戶仍然已經(jīng)連接,那么不會 發(fā)生什么對于已連接的用戶-他們保持連接。不過該用戶不能再連接。這個行為在恢復也適用,所以在主服務器上DROPUSER 不能斷開備服務器上該用戶連接。

在恢復中統(tǒng)計采集器是活動的。所有掃描,讀取,塊,索引使用等,將在備服務器中記錄。 回放活動將不復制在主服務器上的影響,因此回放個插入,將不增加插入pg_stat_user_tables列。 恢復開始刪除該統(tǒng)計文件,所以性主備服務器的統(tǒng)計將不同,認為這是個特性,而不是一個臭蟲。

在恢復中自動清理是不活動的。在恢復結束將正常啟動。

在恢復中后臺記錄器是活動的,將執(zhí)行重啟點(類似于主服務器上的檢查點)和正常塊清理活動。這可能包含 存儲在備服務器上的提示信息更新。在恢復中接受CHECKPOINT命令,盡管執(zhí)行一個重啟點而不是一個新檢查點。

25.5.4. 熱備參數(shù)參考

各種參數(shù)已經(jīng)在上面提到Section 25.5.2和Section 25.5.3。

在主服務器上,可以使用參數(shù)wal_level和 vacuum_defer_cleanup_age。 max_standby_archive_delay和max_standby_streaming_delay 如果在主服務器上設置沒有影響。

在備服務器,可以使用參數(shù)hot_standby, max_standby_archive_delay和 max_standby_streaming_delay。 只要服務器保留在備模式, vacuum_defer_cleanup_age沒有影響,盡管變?yōu)橄嚓P的,如果備服務器成為主服務器。

25.5.5. Caveats

有幾個熱備限制。這些可能在將來的版本中解決:

  • 在哈希索引的操作,不會記錄在目前的WAL日志,索引回放將不更新這些索引。

  • 在做快照之前充分認識運行的事務是必需的。事務使用大量的子事務(當前大于64)將延遲 只讀連接的開始直到運行最長寫事務完成。如果這種情況發(fā)生,說明信息將發(fā)送到服務器的日志。

  • 對于備服務器查詢的有效開始點是產(chǎn)生在主服務器上的每個檢查點。如果備服務器關機,當主服務器在關機狀態(tài), 不可能重進熱備直到啟動主服務器,所以在WAL日志里產(chǎn)生進一步的開始點。在最常見的情況下這種情況不是一個問題,它可能發(fā)生。 一般地,如果主服務器關機,不再可用,那可能由于一個嚴重的失敗,需要將備服務器轉(zhuǎn)化為新主服務器運行。 并且有特意取下主服務器的情況,協(xié)調(diào)確保備服務器成為平滑的主服務器,也是標準的處理。

  • 在恢復結束,由準備的事務持有的AccessExclusiveLocks需要鎖表正常數(shù)量的條目的兩倍。如果你計劃 運行大量并發(fā)的準備事務,正常地用AccessExclusiveLocks或你計劃一個大事務用多個AccessExclusiveLocks, 建議你選擇一個大的max_locks_per_transaction值,可能為在主服務器上兩倍這個參數(shù)值。如果你設置max_prepared_transactions0,根本不需要考慮這個。

Artikel sebelumnya: Artikel seterusnya: