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

目錄 搜尋
前言 何為PostgreSQL? PostgreSQL簡(jiǎn)史 格式約定 更多信息 臭蟲匯報(bào)指導(dǎo) I. 教程 章1. 從頭開始 1.1. 安裝 1.2. 體系基本概念 1.3. 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) 1.4. 訪問數(shù)據(jù)庫(kù) 章2. SQL語言 2.1. 介紹 2.2. 概念 2.3. 創(chuàng)建新表 2.4. 向表中添加行 2.5. 查詢一個(gè)表 2.6. 表間鏈接 2.7. 聚集函數(shù) 2.8. 更新 2.9. 刪除 章3. 高級(jí)特性 3.1. 介紹 3.2. 視圖 3.3. 外鍵 3.4. 事務(wù) 3.5. 窗口函數(shù) 3.6. 繼承 3.7. 結(jié)論 II. SQL語言 章4. SQL語法 4.1. 詞法結(jié)構(gòu) 4.2. 值表達(dá)式 4.3. 調(diào)用函數(shù) 章5. 數(shù)據(jù)定義 5.1. 表的基本概念 5.2. 缺省值 5.3. 約束 5.4. 系統(tǒng)字段 5.5. 修改表 5.6. 權(quán)限 5.7. 模式 5.8. 繼承 5.9. 分區(qū) 5.10. 其它數(shù)據(jù)庫(kù)對(duì)象 5.11. 依賴性跟蹤 章 6. 數(shù)據(jù)操作 6.1. 插入數(shù)據(jù) 6.2. 更新數(shù)據(jù) 6.3. 刪除數(shù)據(jù) 章7. 查詢 7.1. 概述 7.2. 表表達(dá)式 7.3. 選擇列表 7.4. 組合查詢 7.5. 行排序 7.6. LIMIT和OFFSET 7.7. VALUES列表 7.8. WITH的查詢(公用表表達(dá)式) 章8. 數(shù)據(jù)類型 8.1. 數(shù)值類型 8.2. 貨幣類型 8.3. 字符類型 8.4. 二進(jìn)制數(shù)據(jù)類型 8.5. 日期/時(shí)間類型 8.6. 布爾類型 8.7. 枚舉類型 8.8. 幾何類型 8.9. 網(wǎng)絡(luò)地址類型 8.10. 位串類型 8.11. 文本搜索類型 8.12. UUID類型 8.13. XML類型 8.14. 數(shù)組 8.15. 復(fù)合類型 8.16. 對(duì)象標(biāo)識(shí)符類型 8.17. 偽類型 章 9. 函數(shù)和操作符 9.1. 邏輯操作符 9.2. 比較操作符 9.3. 數(shù)學(xué)函數(shù)和操作符 9.4. 字符串函數(shù)和操作符 9.5. 二進(jìn)制字符串函數(shù)和操作符 9.6. 位串函數(shù)和操作符 9.7. 模式匹配 9.8. 數(shù)據(jù)類型格式化函數(shù) 9.9. 時(shí)間/日期函數(shù)和操作符 9.10. 支持枚舉函數(shù) 9.11. 幾何函數(shù)和操作符 9.12. 網(wǎng)絡(luò)地址函數(shù)和操作符 9.13. 文本檢索函數(shù)和操作符 9.14. XML函數(shù) 9.15. 序列操作函數(shù) 9.16. 條件表達(dá)式 9.17. 數(shù)組函數(shù)和操作符 9.18. 聚合函數(shù) 9.19. 窗口函數(shù) 9.20. 子查詢表達(dá)式 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. 值存儲(chǔ) 10.5. UNION 章11. 索引 11.1. 介紹 11.2. 索引類型 11.3. 多字段索引 11.4. 索引和ORDER BY 11.5. 組合多個(gè)索引 11.6. 唯一索引 11.7. 表達(dá)式上的索引 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. 事務(wù)隔離 13.3. 明確鎖定 13.4. 應(yīng)用層數(shù)據(jù)完整性檢查 13.5. 鎖和索引 章14. 性能提升技巧 14.1. 使用EXPLAIN 14.2. 規(guī)劃器使用的統(tǒng)計(jì)信息 14.3. 用明確的JOIN語句控制規(guī)劃器 14.4. 向數(shù)據(jù)庫(kù)中添加記錄 14.5. 非持久性設(shè)置 III. 服務(wù)器管理 章15. 安裝指導(dǎo) 15.1. 簡(jiǎn)版 15.2. 要求 15.3. 獲取源碼 15.4. 升級(jí) 15.5. 安裝過程 15.6. 安裝后的設(shè)置 15.7. 支持的平臺(tái) 15.8. 特殊平臺(tái)的要求 章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. 服務(wù)器安裝和操作 17.1. PostgreSQL用戶帳戶 17.2. 創(chuàng)建數(shù)據(jù)庫(kù)集群 17.3. 啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器 17.4. 管理內(nèi)核資源 17.5. 關(guān)閉服務(wù) 17.6. 防止服務(wù)器欺騙 17.7. 加密選項(xiàng) 17.8. 用SSL進(jìn)行安全的TCP/IP連接 17.9. Secure TCP/IP Connections with SSH Tunnels 章18. 服務(wù)器配置 18.1. 設(shè)置參數(shù) 18.2. 文件位置 18.3. 連接和認(rèn)證 18.4. 資源消耗 18.5. 預(yù)寫式日志 18.6. 查詢規(guī)劃 18.7. 錯(cuò)誤報(bào)告和日志 18.8. 運(yùn)行時(shí)統(tǒng)計(jì) 18.9. 自動(dòng)清理 18.10. 客戶端連接缺省 18.12. 版本和平臺(tái)兼容性 18.11. 鎖管理 18.13. 預(yù)置選項(xiàng) 18.14. 自定義的選項(xiàng) 18.15. 開發(fā)人員選項(xiàng) 18.16. 短選項(xiàng) 章19. 用戶認(rèn)證 19.1. pg_hba.conf 文件 19.2. 用戶名映射 19.3. 認(rèn)證方法 19.4. 用戶認(rèn)證 章20. 數(shù)據(jù)庫(kù)角色和權(quán)限 20.1. 數(shù)據(jù)庫(kù)角色 20.2. 角色屬性 20.3. 權(quán)限 20.4. 角色成員 20.5. 函數(shù)和觸發(fā)器 章21. 管理數(shù)據(jù)庫(kù) 21.1. 概述 21.2. 創(chuàng)建一個(gè)數(shù)據(jù)庫(kù) 21.3. 臨時(shí)庫(kù) 21.4. 數(shù)據(jù)庫(kù)配置 21.5. 刪除數(shù)據(jù)庫(kù) 21.6. 表空間 章22. 本土化 22.1. 區(qū)域支持 22.2. 字符集支持 章23. 日常數(shù)據(jù)庫(kù)維護(hù)工作 23.1. Routine Vacuuming日常清理 23.2. 經(jīng)常重建索引 23.3. 日志文件維護(hù) 章24. 備份和恢復(fù) 24.1. SQL轉(zhuǎn)儲(chǔ) 24.2. 文件系統(tǒng)級(jí)別的備份 24.3. 在線備份以及即時(shí)恢復(fù)(PITR) 24.4. 版本間遷移 章25. 高可用性與負(fù)載均衡,復(fù)制 25.1. 不同解決方案的比較 25.2. 日志傳送備份服務(wù)器 25.3. 失效切換 25.4. 日志傳送的替代方法 25.5. 熱備 章26. 恢復(fù)配置 26.1. 歸檔恢復(fù)設(shè)置 26.2. 恢復(fù)目標(biāo)設(shè)置 26.3. 備服務(wù)器設(shè)置 章27. 監(jiān)控?cái)?shù)據(jù)庫(kù)的活動(dòng) 27.1. 標(biāo)準(zhǔn)Unix工具 27.2. 統(tǒng)計(jì)收集器 27.3. 查看鎖 27.4. 動(dòng)態(tài)跟蹤 章28. 監(jiān)控磁盤使用情況 28.1. 判斷磁盤的使用量 28.2. 磁盤滿導(dǎo)致的失效 章29. 可靠性和預(yù)寫式日志 29.1. 可靠性 29.2. 預(yù)寫式日志(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庫(kù) 31.1. 數(shù)據(jù)庫(kù)聯(lián)接函數(shù) 31.2. 連接狀態(tài)函數(shù) 31.3. 命令執(zhí)行函數(shù) 31.4. 異步命令處理 31.5. 取消正在處理的查詢 31.6. 捷徑接口 31.7. 異步通知 31.8. 與COPY命令相關(guān)的函數(shù) 31.9. Control Functions 控制函數(shù) 31.10. 其他函數(shù) 31.11. 注意信息處理 31.12. 事件系統(tǒng) 31.13. 環(huán)境變量 31.14. 口令文件 31.15. 連接服務(wù)的文件 31.16. LDAP查找連接參數(shù) 31.17. SSL支持 31.18. 在多線程程序里的行為 31.19. 制作libpq程序 31.20. 例子程序 章32. 大對(duì)象 32.1. 介紹 32.2. 實(shí)現(xiàn)特點(diǎn) 32.3. 客戶端接口 32.4. 服務(wù)器端函數(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. 關(guān)于這個(gè)模式 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. 服務(wù)器端編程 章35. 擴(kuò)展SQL 35.1. 擴(kuò)展性是如何實(shí)現(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++擴(kuò)展 章36. 觸發(fā)器 36.1. 觸發(fā)器行為概述 36.3. 用 C 寫觸發(fā)器 36.2. 數(shù)據(jù)改變的可視性 36.4. 一個(gè)完整的例子 章37. 規(guī)則系統(tǒng) 37.1. The Query Tree 37.2. 視圖和規(guī)則系統(tǒng) 37.3. 在INSERT,UPDATE和DELETE上的規(guī)則 37.4. 規(guī)則和權(quán)限 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的結(jié)構(gòu) 39.3. 聲明 39.4. 表達(dá)式 39.5. 基本語句 39.6. 控制結(jié)構(gòu) 39.7. 游標(biāo) 39.8. 錯(cuò)誤和消息 39.9. 觸發(fā)器過程 39.10. PL/pgSQL Under the Hood 39.11. 開發(fā)PL/pgSQL的一些提示 39.12. 從OraclePL/SQL 進(jìn)行移植 章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. 參考手冊(cè) 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. 客戶端應(yīng)用程序 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服務(wù)器應(yīng)用程序 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. 索引開銷估計(jì)函數(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ù)庫(kù)物理存儲(chǔ) 54.1. 數(shù)據(jù)庫(kù)文件布局 54.2. TOAST 54.3. 自由空間映射 54.4. 可見映射 54.5. 數(shù)據(jù)庫(kù)分頁(yè)文件 章55. BKI后端接口 55.1. BKI 文件格式 55.2. BKI命令 55.3. 系統(tǒng)初始化的BKI文件的結(jié)構(gòu) 55.4. 例子 章56. 規(guī)劃器如何使用統(tǒng)計(jì)信息 56.1. 行預(yù)期的例子 VIII. 附錄 A. PostgreSQL錯(cuò)誤代碼 B. 日期/時(shí)間支持 B.1. 日期/時(shí)間輸入解析 B.2. 日期/時(shí)間關(guān)鍵字 B.3. 日期/時(shí)間配置文件 B.4. 日期單位的歷史 C. SQL關(guān)鍵字 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. 外部項(xiàng)目 G.1. 客戶端接口 G.2. 過程語言 G.3. 擴(kuò)展 H. The Source Code Repository H.1. Getting The Source Via Git I. 文檔 I.1. DocBook I.2. 工具集 I.3. 制作文檔 I.4. 文檔寫作 I.5. 風(fēng)格指導(dǎo) J. 首字母縮略詞 參考書目 Bookindex Index
文字

15.5. 安裝過程

  1. 配置

    安裝過程的第一步就是配置源代碼樹并選擇你喜歡的選項(xiàng)。 這個(gè)工作是通過運(yùn)行configure腳本實(shí)現(xiàn)的,對(duì)于缺省安裝,你只需要簡(jiǎn)單地敲入

    ./configure

    該腳本將運(yùn)行一些測(cè)試來決定一些系統(tǒng)相關(guān)的變量,并檢測(cè)操作系統(tǒng)的設(shè)置, 最后將在編譯樹中創(chuàng)建一些文件以記錄它找到了什么。如果你想保持編譯目錄的獨(dú)立, 那么你也可以在源代碼樹之外的其它目錄里運(yùn)行configure腳本。 這個(gè)過程也稱作VPATH編譯。 如下:

    mkdir build_dir
    cd build_dir
    /path/to/source/tree/configure [options go here]
    gmake

    缺省設(shè)置將編譯服務(wù)器和應(yīng)用程序,還有所有只需要C編譯器的客戶端程序和接口。 缺省時(shí)所有文件都將安裝到/usr/local/pgsql目錄。

    你可以通過給出下面的一個(gè)或多個(gè)configure命令行選項(xiàng)來自定義編譯和安裝過程:

    --prefix=PREFIX

    把所有文件裝在PREFIX目錄下而不是/usr/local/pgsql里。 實(shí)際的文件會(huì)安裝到不同的子目錄里; 甚至沒有一個(gè)文件會(huì)直接安裝到PREFIX目錄里。

    如果你有特殊需要,你還可以用下面的選項(xiàng)自定義不同子目錄的位置。 不過,即使你保持缺省設(shè)置,也可以在安裝之后移動(dòng)目錄(mandoc路徑不受影響),

    此時(shí)你可能需要使用configure--disable-rpath選項(xiàng)。 還有,你需要告訴操作系統(tǒng)如何找到共享庫(kù)。

    --exec-prefix=EXEC-PREFIX

    把體系相關(guān)的文件安裝到EXEC-PREFIX , 而不是PREFIX設(shè)置的地方。 這樣做可以比較方便地在不同主機(jī)之間共享體系相關(guān)的文件。 如果你省略它,那么EXEC-PREFIX就會(huì)被設(shè)置為等于PREFIX 并且體系相關(guān)和體系無關(guān)的文件都會(huì)安裝到同一目錄樹下,當(dāng)然這也可能是你想要的。

    --bindir=DIRECTORY

    需要聲明可執(zhí)行程序的安裝目錄,缺省是EXEC-PREFIX/bin, 通常也就是/usr/local/pgsql/bin。

    --sysconfdir=DIRECTORY

    設(shè)置配置文件的安裝目錄,缺省是PREFIX/etc

    --libdir=DIRECTORY

    設(shè)置庫(kù)文件和動(dòng)態(tài)裝載模塊的安裝目錄。缺省是EXEC-PREFIX/lib。

    --includedir=DIRECTORY

    設(shè)置C和C++頭文件的目錄。缺省是PREFIX/include。

    --datarootdir=DIRECTORY

    設(shè)置各種類型的只讀數(shù)據(jù)文件的根目錄,只是后面一些選項(xiàng)的缺省設(shè)置。缺省是PREFIX/share

    --datadir=DIRECTORY

    設(shè)置安裝的程序使用的只讀數(shù)據(jù)文件的目錄。缺省是DATAROOTDIR。 注意這與您的數(shù)據(jù)庫(kù)文件放置位置無關(guān)。

    --localedir=DIRECTORY

    設(shè)置語言環(huán)境數(shù)據(jù)的安裝目錄,尤其是消息編譯目錄文件。缺省是DATAROOTDIR/locale。

    --mandir=DIRECTORY

    PostgreSQL自帶手冊(cè)頁(yè)是安裝到各自的manx子目錄里。 缺省是DATAROOTDIR/man。

    --docdir=DIRECTORY

    設(shè)置文檔文件的根安裝目錄,除了"man"。這只能設(shè)置為下列選項(xiàng)的默認(rèn)選項(xiàng)。 該選項(xiàng)的缺省值是 DATAROOTDIR/doc/postgresql。

    --htmldir=DIRECTORY

    PostgreSQL的HTML格式文件將安裝在這個(gè)目錄下,缺省是 DATAROOTDIR。

    Note: 為了讓PostgreSQL能夠安裝在一些共享的安裝位置(比如/usr/local/include), 同時(shí)又不至于和系統(tǒng)其它部分產(chǎn)生名字空間干擾,我們采取了一些步驟。 首先,安裝腳本會(huì)自動(dòng)給datadir, sysconfdir, 和docdir 后面附加上""/postgresql"", 除非展開的完整路徑名已經(jīng)包含字符串"postgres""pgsql"。 比如,如果你選擇/usr/local作為前綴,那么文檔將安裝在/usr/local/doc/postgresql, 但如果前綴是/opt/postgres ,那么它將被放到/opt/postgres/doc 。 客戶接口的公共C頭文件安裝到了 includedir ,并且是名字空間無關(guān)的。 內(nèi)部的頭文件和服務(wù)器頭文件都安裝到includedir下的私有目錄中去了。 參考每種接口的文檔獲取關(guān)于如何得到頭文件的信息。 最后,如果合適,那么也會(huì)在libdir下創(chuàng)建一個(gè)私有的子目錄,用于動(dòng)態(tài)裝載模塊。

    --with-includes=DIRECTORIES

    DIRECTORIES是一系列冒號(hào)分隔的目錄, 這些目錄將被加入編譯器的頭文件搜索列表中。 如果你有一些可選的包(比如GNU Readline)安裝在非標(biāo)準(zhǔn)位置, 你就必須使用這個(gè)選項(xiàng),以及可能還有相應(yīng)的--with-libraries選項(xiàng)。

    例子: --with-includes=/opt/gnu/include:/usr/sup/include.

    --with-libraries=DIRECTORIES

    DIRECTORIES是一系列冒號(hào)分隔的目錄,這些目錄是用于查找?guī)煳募摹? 如果你有一些包安裝在非標(biāo)準(zhǔn)位置, 你可能就需要使用這個(gè)選項(xiàng)(以及對(duì)應(yīng)的--with-includesoption選項(xiàng))。

    例子: --with-libraries=/opt/gnu/lib:/usr/sup/lib.

    --enable-nls[=LANGUAGES]

    打開本地語言支持(NLS),也就是以非英文顯示程序信息的能力。 LANGUAGES是一個(gè)可選空格分隔的語言代碼列表,標(biāo)識(shí)你想支持的語言。 比如--enable-nls='de fr'。 你提供的列表和實(shí)際支持的列表之間的交集會(huì)自動(dòng)計(jì)算出來。 如果你沒有聲明一個(gè)列表,那么就安裝所有可用的翻譯。

    要使用這個(gè)選項(xiàng),你需要一個(gè)GettextAPI的實(shí)現(xiàn)。見上文。

    --with-pgport=NUMBER

    NUMBER為服務(wù)器和客戶端的缺省端口(缺省是5432)。 這個(gè)端口可以在以后設(shè)置,不過如果你在這里聲明,那么服務(wù)器和客戶端就都有了相同的編譯好了的缺省值。 這樣會(huì)方便些。 通常選取一個(gè)非缺省值的原因是你要在同一臺(tái)機(jī)器上運(yùn)行多個(gè)PostgreSQL服務(wù)器。

    --with-perl

    編譯PL/Perl服務(wù)器端編程語言。

    --with-python

    編譯PL/Python服務(wù)器端編程語言。

    --with-tcl

    編譯PL/Tcl服務(wù)器端編程語言。

    --with-tclconfig=DIRECTORY

    Tcl安裝的tclConfig.sh文件所在目錄里面包含編譯Tcl模塊的配置信息。 configure通常會(huì)自動(dòng)在約定俗成的位置找到這些文件, 但是如果你需要一個(gè)不同版本的Tcl,你也可以聲明不同的目錄。

    --with-gssapi

    編譯支持GSSAPI認(rèn)證。在許多系統(tǒng)上,GSSAPI(通常是Kerberos安裝的一部分) 沒有安裝在缺省的搜索目錄下(比如/usr/include, /usr/lib),所以你必須使用附加的--with-includes and --with-libraries選項(xiàng)。 configure在繼續(xù)配置之前將檢查所需要的頭文件和庫(kù),以確保GSSAPI是充分可用的。

    --with-krb5

    編譯支持 Kerberos 5 在許多系統(tǒng)上,Kerberos 系統(tǒng)沒有安裝在缺省的搜索目錄下(比如 /usr/include, /usr/lib), 所以你必須使用附加的--with-includes--with-libraries選項(xiàng)。 configure在繼續(xù)配置之前將檢查所需要的頭文件和庫(kù),以確保 Kerberos 是充分可用的。

    --with-krb-srvnam=NAME

    Kerberos缺省的主服務(wù)主名(也被GSSAPI使用),缺省值是postgres,通常不可以修改這個(gè)值。 除非你有一個(gè)Windows環(huán)境,在這種情況下,它必須設(shè)置為大寫POSTGRES。

    --with-openssl

    編譯支持SSL(加密的)連接。 這個(gè)選項(xiàng)需要安裝OpenSSL包。 configure將在安裝之前檢查所需要的頭文件和庫(kù)文件以確保OpenSSL安裝是充分可用的。

    --with-pam

    編譯PAM(可插拔認(rèn)證模塊)支持。

    --with-ldap

    編譯LDAP支持。 用于認(rèn)證和查找連接參數(shù)(參見Section 31.16 and Section 19.3.7以獲取更多信息)。 在Unix上,這需要OpenLDAP包的支持。在Windows上,將使用缺省的WinLDAP庫(kù)。 configure將會(huì)檢查所需的頭文件和庫(kù)以確保OpenLDAP的安裝是充分可用的。

    --without-readline

    避免使用Readlinelibedit庫(kù)。 這樣會(huì)關(guān)閉psql命令行編輯和歷史,因此建議不使用。

    --with-libedit-preferred

    BSD許可優(yōu)先使用libedit庫(kù)而不是Readline庫(kù)。 該選項(xiàng)僅在同時(shí)安裝了這兩個(gè)庫(kù)的情況下才有意義,這時(shí)會(huì)缺省使用Readline庫(kù)。

    --with-bonjour

    編譯Bonjour支持。這要求操作系統(tǒng)支持Bonjour。 在Mac OS X系統(tǒng)上建議使用。

    --with-ossp-uuid

    當(dāng)編譯contrib/uuid-ossp,使用OSSP UUID library。該庫(kù)提供生成的UUID的函數(shù)。

    --with-libxml

    編譯libxml(允許SQL/XML支持)。該功能需要Libxml 2.6.23或更新的版本。

    Libxml通過安裝xml2-config來檢測(cè)所需的編譯器和鏈接器選項(xiàng)。 如果發(fā)現(xiàn),PostgreSQL將自動(dòng)使用它。為了在指定位置來進(jìn)行l(wèi)ibxml安裝, 可以設(shè)置環(huán)境變量XML2_CONFIG來指向從屬安裝的xml2-config程序, 或使用的選項(xiàng)--with-includes--with-libraries。

    --with-libxslt

    當(dāng)編譯contrib/xml2時(shí),使用libxslt。contrib/xml2依靠這個(gè)庫(kù)來執(zhí)行由XSL轉(zhuǎn)換的XML。

    --disable-integer-datetimes

    禁用支持64位整數(shù)存儲(chǔ)時(shí)間戳和間隔,以浮點(diǎn)值存儲(chǔ)日期。浮點(diǎn)缺省日期存儲(chǔ)是 PostgreSQL8.4之前發(fā)布的,但它現(xiàn)在已經(jīng)過時(shí),因?yàn)樵?tt class="TYPE">timestamp值域的微秒精度方面,它不支持。 然而,基于整數(shù)日期時(shí)間的存儲(chǔ)需要64位的整數(shù)類型。因此,當(dāng)沒有這種類型可用或兼容為 PostgreSQL之前版本事先編寫的應(yīng)用程序時(shí),這個(gè)選項(xiàng)可以使用。 參閱 Section 8.5獲得更多詳細(xì)信息。

    --disable-float4-byval

    禁止按"by value"傳遞float4值,應(yīng)該通過"by reference"來傳遞。 此選項(xiàng)可估算性能,但可能需要與舊的用戶自定義函數(shù)(用C語言編寫并且是使用"version 0"來調(diào)用的約定)兼容。 一個(gè)更好的長(zhǎng)期解決方案是使用"version 1"調(diào)用約定來更新任何此類函數(shù)。

    --disable-float8-byval

    禁止按"by value"傳遞float8的值,應(yīng)該通過"by reference"來傳遞。 此選項(xiàng)可估算性能,但可能需要與舊的用戶自定義函數(shù)(用C語言編寫并且是使用"version 0"來調(diào)用的約定)兼容。 一個(gè)更好的長(zhǎng)期解決方案是使用"version 1"調(diào)用約定來更新任何此類函數(shù)。 注意:這個(gè)選項(xiàng)影響不僅float8,int8和一些相關(guān)的類型如時(shí)間戳等也會(huì)受影響。 在32位平臺(tái)上,缺省的是--disable-float8-byval,不允許選擇--enable-float8-byval

    --with-segsize=SEGSIZE

    設(shè)置段大?。╯egment size),以千兆字節(jié)為單位。大型表分為多個(gè)操作系統(tǒng)文件,每個(gè)大小等于段大小。 這就避免了存在許多平臺(tái)上文件大小限制問題。 默認(rèn)段大小為1千兆字節(jié),在所有支持平臺(tái)上都是安全的。 如果您的操作系統(tǒng)支持"largefile",那么您可以使用一個(gè)較大值的段大小。 這可能有助于減少運(yùn)行于大表中消耗的文件描述符數(shù), 但要小心,不要選擇比您的平臺(tái)支持的,并且你打算使用的文件系統(tǒng)大的值。 你想使用其他工具,如tar,還設(shè)置了可用文件大小限制。建議,但不是絕對(duì)需要,該值 是2的乘方。請(qǐng)注意,改變這個(gè)值需要一個(gè)initdb。

    --with-blocksize=BLOCKSIZE

    設(shè)置block size,以千字節(jié)為單位。這是表內(nèi) 存儲(chǔ)和I/O的單位。缺省值是8千字節(jié),適用于大多數(shù)情況,但其他值在特殊情況下也可能是有用的。 值必須是是在1和32之間的2的乘方,以千字節(jié)為單位。 請(qǐng)注意,改變這個(gè)值,需要一個(gè)initdb。

    --with-wal-segsize=SEGSIZE

    設(shè)置WAL segment size,以兆字節(jié)為單位。這是 WAL日志每一個(gè)獨(dú)立文件的大小??梢酝ㄟ^調(diào)整該值的大小來控制WAL日志傳送粒度。 該值必須是在1和64之間的2的乘方(兆字節(jié)為單位),缺省大小為16兆字節(jié)。 請(qǐng)注意,改變這個(gè)值,需要一個(gè)initdb。

    --with-wal-blocksize=BLOCKSIZE

    設(shè)置WAL block size,以千字節(jié)為單位。這是WAL日志內(nèi) 存儲(chǔ)和I/O的單位。缺省情況值是8千字節(jié),適用于大多數(shù)情況,但其他值在特殊情況下也可能是有用的。 值必須是1和64之間的2的乘方(千字節(jié)為單位)。 請(qǐng)注意,改變這個(gè)值,需要一個(gè)initdb。

    --disable-spinlocks

    允許PostgreSQL在沒有該平臺(tái)的CPU自旋鎖支持的情況下編譯成功。 缺乏自旋鎖的支持將導(dǎo)致性能惡化,因此,只有在編譯過程中止,并且提示該平臺(tái)缺乏自旋鎖支持的時(shí)候才使用這個(gè)選項(xiàng)。 如果在你的平臺(tái)上需要這個(gè)選項(xiàng)才能編譯PostgreSQL,請(qǐng)向PostgreSQL開發(fā)者報(bào)告這個(gè)問題。

    --disable-thread-safety

    禁用客戶端庫(kù)的線程安全。該選項(xiàng)通過安全地控制他們私有的連接句柄來阻止在libpqECPG程序里的并發(fā)線程。

    --with-system-tzdata=DIRECTORY

    PostgreSQL包括它自己的時(shí)區(qū)數(shù)據(jù)庫(kù)(該庫(kù)需要時(shí)間和日期操作操作)。 這個(gè)時(shí)區(qū)數(shù)據(jù)庫(kù)實(shí)際上兼容由許多操作系統(tǒng)(如FFreeBSD, Linux,和Solaris)提供的"zoneinfo"時(shí)區(qū)數(shù)據(jù)庫(kù),因此不必重新安裝。 當(dāng)使用此選項(xiàng)時(shí),使用的是DIRECTORY中系統(tǒng)提供的時(shí)區(qū)數(shù)據(jù)庫(kù),而不是PostgreSQL的源代碼發(fā)布中的時(shí)區(qū)數(shù)據(jù)庫(kù)。 DIRECTORY必須聲明為絕對(duì)路徑。 在某些操作系統(tǒng)上,該目錄可能是/usr/share/zoneinfo。 請(qǐng)注意,安裝程序?qū)⒉粰z測(cè)不匹配或錯(cuò)誤的時(shí)區(qū)數(shù)據(jù)。 如果您使用此選項(xiàng),建議您運(yùn)行回歸測(cè)試來驗(yàn)證,指向正確運(yùn)行PostgreSQL的時(shí)間區(qū)域數(shù)據(jù)。

    此選項(xiàng)主要是面向?qū)δ繕?biāo)操作系統(tǒng)很了解的二進(jìn)制包分發(fā)者。 使用該選項(xiàng)的最大好處是,無論何時(shí),當(dāng)本地夏令時(shí)規(guī)則發(fā)生改變時(shí),不需要?jiǎng)倮鸓ostgreSQL包。 另一個(gè)好處是,如果時(shí)區(qū)數(shù)據(jù)庫(kù)文件并不需要在安裝期間編譯, PostgreSQL可以更直接交叉編譯()。

    --without-zlib

    避免使用Zlib庫(kù)。 這樣就關(guān)閉了pg_dumppg_restore里面的壓縮支持。 這個(gè)選項(xiàng)只適用于那些沒有這個(gè)庫(kù)的罕見的系統(tǒng)。

    --enable-debug

    把所有程序和庫(kù)以帶有調(diào)試符號(hào)的方式編譯。 這意味著你可以通過一個(gè)調(diào)試器運(yùn)行程序來分析問題。 這樣做顯著增大了最后安裝的可執(zhí)行文件的大小,并且在非GCC的編譯器上,通常還要關(guān)閉編譯器優(yōu)化,導(dǎo)致速度下降。 但是,如果有這些符號(hào)表的話,就可以非常有效地幫助定位可能發(fā)生問題的位置。 目前,我們建議只有在使用GCC的情況下才在生產(chǎn)安裝中使用這個(gè)選項(xiàng)。 但是如果你正在進(jìn)行開發(fā)工作,或者正在使用beta版本,那么應(yīng)該一直開啟它。

    --enable-coverage

    If using GCC, all programs and libraries are compiled with code coverage testing instrumentation. When run, they generate files in the build directory with code coverage metrics. See Section 30.4 for more information. This option is for use only with GCC and when doing development work.

    如果使用GCC編譯,所有的程序和庫(kù)被編譯成 代碼覆蓋測(cè)試儀器。運(yùn)行時(shí),他們 在代碼覆蓋度量的編譯庫(kù)中產(chǎn)生文件。See Section 30.4 for more information.此選項(xiàng)只與GCC一起使用并且是做開發(fā)工作中。

    --enable-profiling

    如果使用GCC,所有程序和庫(kù)都被編譯用以,這樣才能對(duì)其進(jìn)行分析。 在后臺(tái)出口,將創(chuàng)建一個(gè)子目錄(包含gmon.out文件)用于分析使用。 此選項(xiàng)只與GCC一起使用并且是做開發(fā)工作中。

    --enable-cassert

    打開在服務(wù)器中的assertion檢查,它會(huì)檢查許多"cannot happen"的條件。 它對(duì)于代碼開發(fā)的用途而言是無價(jià)之寶,不過這些測(cè)試會(huì)顯著減緩服務(wù)器。 并且,打開這個(gè)測(cè)試不會(huì)提高系統(tǒng)的穩(wěn)定性! 這些assertion檢查并不是按照錯(cuò)誤的嚴(yán)重性分類的, 因此一些相對(duì)無害的小問題也可能導(dǎo)致服務(wù)器重啟 (只要它觸發(fā)了一次assertion失敗)。 目前,我們不推薦在生產(chǎn)中使用這個(gè)選項(xiàng), 但是如果你在做開發(fā)或者在使用beta版本的時(shí)候應(yīng)該打開它。

    --enable-depend

    打開自動(dòng)倚賴性跟蹤。 如果打開這個(gè)選項(xiàng), 那么makefile文件將設(shè)置為在任何頭文件被修改的時(shí)候都將重新編譯所有受影響的目標(biāo)文件。 如果你在做開發(fā)的工作,那么這個(gè)選項(xiàng)很有用,但是如果你只是想編譯一次并且安裝, 那這么做就是浪費(fèi)時(shí)間。目前,這個(gè)選項(xiàng)只有在你使用GCC的時(shí)候才管用。

    --enable-dtrace

    編譯PostgreSQL,支持動(dòng)態(tài)跟蹤工具DTrace。 參閱See Section 27.4. 經(jīng)常需要通過設(shè)置DTRACE環(huán)境變量來指向dtrace程序。 因?yàn)?tt class="COMMAND">dtrace通常安裝在/usr/sbin中,而該目錄一般不在搜索路經(jīng)中。 可以通過環(huán)境變量DTRACEFLAGS來聲明dtrace程序的其他命令行選項(xiàng)。 在Solaris平臺(tái)上,要包含64位DTrace支持,需要指定DTRACEFLAGS="-64" , 比如,使用GCC編譯:

    ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...

    在使用Sun編譯器的時(shí)候:

    ./configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64' ...

    如果你喜歡使用不同于configure找出來的C編譯器, 可以將環(huán)境變量CC設(shè)置為你選擇的程序。 缺省時(shí),configure將選擇gcc(只要可用), 或者是該平臺(tái)的缺省選擇(通常是cc),如果需要的話,你也可以用CFLAGS覆蓋缺省編譯器標(biāo)志。

    你可以在configure命令行上聲明環(huán)境變量,比如:

        ./configure CC=/opt/bin/gcc CFLAGS='-O2 -pipe'
        

    下面是一些重要的環(huán)境變量列表:

    BISON

    Bison 程序

    CC

    C編譯器命令

    CFLAGS

    指向C編譯器的選項(xiàng)

    CPP

    C預(yù)處理器

    CPPFLAGS

    指向C預(yù)處理器的選項(xiàng)

    DTRACE

    dtrace程序的位置

    DTRACEFLAGS

    指向dtrace程序的選項(xiàng)

    FLEX

    Flex 程序

    LDFLAGS

    連接可執(zhí)行文件或共享庫(kù)時(shí)可用的選項(xiàng)

    LDFLAGS_EX

    僅用于連接可執(zhí)行文件的附加選項(xiàng)

    LDFLAGS_SL

    僅連接共享庫(kù)的附加選項(xiàng)

    MSGFMT

    為本地語言支持的msgfmt程序

    PERL

    Perl解釋器的完整路徑,用于確定編譯PL/Perl的依賴關(guān)系。

    PYTHON

    Python解釋器的完整路徑。用于確定編譯PL/Python的依賴關(guān)系。 在這里,需要指出的一點(diǎn)是,Python 2或3(或其他隱式選擇)可以決定哪種PL/Python的變種語言可用。 參閱 Section 42.1獲得更多詳細(xì)信息。

    TCLSH

    Tcl解釋器的完整路徑。用于確定編譯PL/Tcl的依賴關(guān)系, 并且,它將代替Tcl腳本。

    XML2_CONFIG

    xml2-config用于定位libxml的安裝。

  2. 編譯

    要開始編譯,輸入:

    gmake

    (一定要記得用GNU make.) 依硬件不同,編譯過程需要的時(shí)間也不同。 顯示的最后一行應(yīng)該是:

    All of PostgreSQL is successfully made. Ready to install.

    如果你想編譯所有可以編譯的,包括 文檔(HTML和手冊(cè)頁(yè)),附加模塊 (contrib),輸入:

    gmake world

    顯示最后一行應(yīng)該是:

    PostgreSQL, contrib and HTML documentation successfully made. Ready to install.

  3. 回歸測(cè)試

    如果你想在安裝文件前測(cè)試新編譯的服務(wù)器,那么你可以在這個(gè)時(shí)候運(yùn)行回歸測(cè)試。 回歸測(cè)試是一個(gè)用于驗(yàn)證PostgreSQL在系統(tǒng)上是否按照開發(fā)人員設(shè)想的那樣運(yùn)行的測(cè)試套件 輸入:

    gmake check

    這條命令不能用root用戶執(zhí)行,需要以非特權(quán)用戶運(yùn)行該命令。 Chapter 30 contains 包含關(guān)于如何解釋測(cè)試結(jié)果的詳細(xì)信息。 你可以在以后的任何時(shí)間通過執(zhí)行這條命令來運(yùn)行這個(gè)測(cè)試。

  4. 安裝文件

    Note: 如果你正在升級(jí)一套現(xiàn)有的系統(tǒng)并且準(zhǔn)備把新文件覆蓋在舊文件上面, 那么要記得在覆蓋之前備份數(shù)據(jù)并關(guān)閉舊服務(wù)器, 像之前在Section 15.4里面解釋的那樣。

    要安裝PostgreSQL ,輸入:

    gmake install

    這條命令將把文件安裝到在step 1聲明的目錄里面去。 確保你對(duì)那個(gè)目錄有足夠的權(quán)限以寫入。 通常需要用root用戶(或有root權(quán)限的用戶)來執(zhí)行該命令, 當(dāng)然,也可以先創(chuàng)建目標(biāo)目錄,然后給該用戶分配足夠的,在該目錄上的權(quán)限。

    文檔(HTML和手冊(cè)頁(yè))的安裝,輸入:

        gmake install-docs
        

    如果要安裝所有的可以安裝的,輸入:

    gmake install-world

    該命令也會(huì)安裝文檔文件。

    gmake install-strip命令代替gmake install命令, 可以在安裝可執(zhí)行文件和庫(kù)文件時(shí)把它們的調(diào)試信息抽取掉,這樣可以節(jié)約一些磁盤空間。 如果你編譯時(shí)帶著調(diào)試支持,那么該命令將刪除調(diào)試支持,因此我們應(yīng)該只是在不再需要調(diào)試的時(shí)候使用。 install-strip力圖做一些合理的事情來節(jié)約空間, 但是它并不知道如何從可執(zhí)行文件中抽取每個(gè)不需要的字節(jié), 因此,如果你希望節(jié)約所有可能節(jié)約的磁盤空間,那么你可以手工做些處理。

    標(biāo)準(zhǔn)的安裝提供所有客戶端應(yīng)用開發(fā)和服務(wù)器端的程序開發(fā)的頭文件, 比如用C寫的通用函數(shù)或者數(shù)據(jù)類型的頭文件。(PostgreSQL8.0之前,后者需要一個(gè)單獨(dú)的gmake install-all-headers命令, 現(xiàn)在標(biāo)準(zhǔn)安裝中一包含了這一步。)

    只安裝客戶端. 如果你只想裝客戶應(yīng)用和接口庫(kù),那么你可以用下面的命令:

    gmake -C src/bin install
    gmake -C src/include install
    gmake -C src/interfaces install
    gmake -C doc install

    src/bin中有一些僅供服務(wù)器使用的二進(jìn)制文件,但是它們都很小。

Windows上注冊(cè)eventlog. 要在該操作系統(tǒng)上注冊(cè)一個(gè)Windows eventlog庫(kù), 在安裝完畢之后執(zhí)行下面的命令:

    regsvr32 pgsql_library_directory/pgevent.dll
    

這樣就創(chuàng)建了一個(gè)用于事件查看器的注冊(cè)表項(xiàng)目。

卸載. 可以使用gmake uninstall命令進(jìn)行卸載,不過這樣不會(huì)刪除創(chuàng)建出來的目錄。

清理. 在安裝完成以后,可以通過在源碼樹里面用命令gmake clean刪除編譯過程文件來釋放磁盤空間。 這樣會(huì)保留configure程序生成的文件,這樣以后你就可以用gmake命令重新編譯所有東西。 要把源碼樹恢復(fù)為發(fā)布時(shí)的狀態(tài),用gmake distclean命令。 如果你想從同一棵源碼樹上為多個(gè)不同平臺(tái)編譯,你就一定要運(yùn)行這條命令并且為每個(gè)平臺(tái)重新配置。 另外,在每種系統(tǒng)上使用一套獨(dú)立的編譯樹,這樣源代碼樹就可以保留不被更改。

如果你執(zhí)行了一次編譯,然后發(fā)現(xiàn)你的configure選項(xiàng)是錯(cuò)誤的, 或者你修改了configure所探測(cè)到的東西(比如升級(jí)了軟件), 那么在重新配置和編譯之前運(yùn)行一下gmake distclean是個(gè)好習(xí)慣。 如果不做這個(gè)事情,你修改的配置選項(xiàng)可能無法生效。

上一篇: 下一篇: