關(guān)于我們
書單推薦
新書推薦
|
PostgreSQL修煉之道:從小工到專家(第2版) 讀者對象:1. 數(shù)據(jù)庫入門者。本書是一本入門數(shù)據(jù)庫的書籍,通過學習本書和相關(guān)的數(shù)據(jù)庫知識,可以讓一個對數(shù)據(jù)庫了解不是很深的數(shù)據(jù)庫愛好者成為數(shù)據(jù)庫專家。2. 非PostgreSQL數(shù)據(jù)庫的D
本書分為四大部分,分別為準備篇、基礎(chǔ)篇、提高篇和配套開源軟件及架構(gòu)篇。準備篇為沒有數(shù)據(jù)庫基礎(chǔ)的讀者準備的,如果讀者已經(jīng)具備了一定的數(shù)據(jù)庫基礎(chǔ),可以跳過其中的一些內(nèi)容;A(chǔ)篇介紹了PostgreSQL數(shù)據(jù)庫中的一些基礎(chǔ)內(nèi)容,讀者學習完此篇可以完成基本的PostgreSQL數(shù)據(jù)庫的日常操作工作。提高篇講解了一些更深的內(nèi)容,如PostgreSQL的一些技術(shù)內(nèi)幕、特色功能、優(yōu)化等方面的內(nèi)容,讀者仔細閱讀此篇以便早日成為PostgreSQL數(shù)據(jù)庫高手。第三方開源軟件及架構(gòu)篇講解了與PostgreSQL數(shù)據(jù)庫配套使用的一些常用的開源軟件及架構(gòu)設(shè)計方面的內(nèi)容,通過閱讀此篇,可以提高讀者的眼界和數(shù)據(jù)庫架構(gòu)設(shè)計能力。
前言
第一篇 準備篇 第1章 PostgreSQL簡介 2 1.1 什么是PostgreSQL 2 1.1.1 PostgreSQL的發(fā)展歷史 2 1.1.2 PostgreSQL數(shù)據(jù)庫的優(yōu)勢 4 1.1.3 PostgreSQL應(yīng)用現(xiàn)狀和發(fā)展趨勢 5 1.2 PostgreSQL數(shù)據(jù)庫與其他數(shù)據(jù)庫的對比 6 1.2.1 PostgreSQL與MySQL數(shù)據(jù)庫的對比 6 1.2.2 PostgreSQL與Oracle數(shù)據(jù)庫的對比 8 1.3 小結(jié) 8 第2章 PostgreSQL的安裝與配置 9 2.1 從發(fā)行版本安裝 9 2.1.1 Red Hat/CentOS下的安裝方法 10 2.1.2 Windows下的安裝方法 12 2.1.3 從發(fā)行版本安裝總結(jié) 18 2.2 從源碼安裝 18 2.2.1 編譯安裝過程簡介 18 2.2.2 下載源代碼 18 2.2.3 編譯及安裝 20 2.2.4 PostgreSQL的配置 22 2.2.5 創(chuàng)建數(shù)據(jù)庫實例 23 2.2.6 安裝contrib目錄下的工具 23 2.2.7 啟動和停止數(shù)據(jù)庫 23 2.2.8 編譯安裝過程中的常見問題及解決方法 24 2.3 PostgreSQL的簡單配置 25 2.3.1 pg_hba.conf的配置 26 2.3.2 修改監(jiān)聽的IP和端口 26 2.3.3 數(shù)據(jù)庫日志相關(guān)參數(shù) 26 2.3.4 內(nèi)存參數(shù)的設(shè)置 27 2.4 PostgreSQL的安裝技巧 27 2.4.1 不想把數(shù)據(jù)庫實例創(chuàng)建到“/var/lib/pgsql”目錄下 27 2.4.2 如何使用較大的數(shù)據(jù)塊提高I/O性能 29 2.4.3 打開數(shù)據(jù)塊的checksum功能 29 2.5 小結(jié) 30 第3章 SQL入門 31 3.1 SQL語句語法簡介 31 3.1.1 語句的分類 31 3.1.2 詞法結(jié)構(gòu) 31 3.2 DDL語句 32 3.2.1 建表語句 32 3.2.2 刪除表語句 34 3.3 DML語句 34 3.3.1 插入語句 34 3.3.2 更新語句 35 3.3.3 刪除語句 35 3.4 查詢語句 36 3.4.1 單表查詢語句 36 3.4.2 過濾條件的查詢 36 3.4.3 排序 37 3.4.4 分組查詢 38 3.4.5 多表關(guān)聯(lián)查詢 38 3.4.6 子查詢 40 3.5 其他SQL語句 42 3.5.1 INSERT ... SELECT語句 42 3.5.2 UNION語句 42 3.5.3 TRUNCATE TABLE語句 43 3.6 小結(jié) 43 第二篇 基礎(chǔ)篇 第4章 psql工具 46 4.1 psql介紹 46 4.2 psql的簡單使用 46 4.3 psql的常用命令 48 4.3.1 “\h”命令 49 4.3.2 “\d”命令 49 4.3.3 指定客戶端字符集的命令 52 4.3.4 格式化輸出的\pset命令 52 4.3.5 “\x”命令 55 4.3.6 執(zhí)行存儲在外部文件中的SQL命令 56 4.3.7 編輯命令 56 4.3.8 輸出信息的“\echo”命令 57 4.3.9 其他命令 58 4.4 psql的使用技巧 59 4.4.1 歷史命令與補全功能 59 4.4.2 自動提交技巧 59 4.4.3 如何得到psql中快捷命令執(zhí)行的實際SQL 60 4.5 小結(jié) 62 第5章 數(shù)據(jù)類型 63 5.1 數(shù)據(jù)類型介紹 63 5.1.1 數(shù)據(jù)類型的分類 63 5.1.2 數(shù)據(jù)類型的輸入與轉(zhuǎn)換 65 5.2 布爾類型 65 5.2.1 布爾類型介紹 65 5.2.2 布爾類型的操作符 67 5.3 數(shù)值類型 68 5.3.1 數(shù)值類型介紹 68 5.3.2 整數(shù)類型 68 5.3.3 精確的小數(shù)類型 69 5.3.4 浮點數(shù)類型 70 5.3.5 序列類型 70 5.3.6 貨幣類型 70 5.3.7 數(shù)學函數(shù)和操作符 71 5.4 字符串類型 73 5.4.1 字符串類型介紹 73 5.4.2 字符串函數(shù)和操作符 73 5.5 二進制數(shù)據(jù)類型 76 5.5.1 二進制數(shù)據(jù)類型介紹 76 5.5.2 二進制數(shù)據(jù)類型轉(zhuǎn)義表示 76 5.5.3 二進制數(shù)據(jù)類型的函數(shù) 77 5.6 位串類型 78 5.6.1 位串類型介紹 78 5.6.2 位串類型的使用方法 78 5.6.3 位串的操作符及函數(shù) 79 5.7 日期/時間類型 80 5.7.1 日期/時間類型介紹 80 5.7.2 日期輸入 81 5.7.3 時間輸入 82 5.7.4 特殊值 84 5.7.5 函數(shù)和操作符列表 84 5.7.6 時間函數(shù) 85 5.7.7 extract和date_part函數(shù) 89 5.8 枚舉類型 90 5.8.1 枚舉類型的使用 90 5.8.2 枚舉類型說明 91 5.8.3 枚舉類型的函數(shù) 92 5.9 幾何類型 92 5.9.1 幾何類型概況 93 5.9.2 幾何類型的輸入 93 5.9.3 幾何類型的操作符 98 5.9.4 幾何類型的函數(shù) 106 5.10 網(wǎng)絡(luò)地址類型 107 5.10.1 網(wǎng)絡(luò)地址類型概況 107 5.10.2 inet與cidr類型 107 5.10.3 macaddr類型 110 5.10.4 網(wǎng)絡(luò)地址類型的操作符 110 5.10.5 網(wǎng)絡(luò)地址類型的函數(shù) 111 5.11 復(fù)合類型 112 5.11.1 復(fù)合類型的定義 112 5.11.2 復(fù)合類型的輸入 113 5.11.3 訪問復(fù)合類型 114 5.11.4 修改復(fù)合類型 114 5.11.5 復(fù)合類型的輸入輸出 115 5.12 xml類型 116 5.12.1 xml類型的輸入 116 5.12.2 字符集的問題 117 5.12.3 xml類型函數(shù) 118 5.13 JSON類型 124 5.13.1 JSON類型簡介 124 5.13.2 JSON類型的輸入與輸出 125 5.13.3 JSON類型的操作符 126 5.13.4 JSON類型的函數(shù) 127 5.13.5 JSON類型的索引 132 5.14 Range類型 136 5.14.1 Range類型簡介 136 5.14.2 創(chuàng)建Range類型 138 5.14.3 Range類型的輸入與輸出 138 5.14.4 Range類型的操作符 141 5.14.5 Range類型的函數(shù) 142 5.14.6 Range類型的索引和約束 142 5.15 數(shù)組類型 143 5.15.1 數(shù)組類型的聲明 143 5.15.2 如何輸入數(shù)組值 144 5.15.3 訪問數(shù)組 146 5.15.4 修改數(shù)組 148 5.15.5 數(shù)組的操作符 149 5.15.6 數(shù)組的函數(shù) 151 5.16 偽類型 153 5.17 其他類型 154 5.17.1 UUID類型 154 5.17.2 pg_lsn 類型 154 5.18 小結(jié) 155 第6章 邏輯結(jié)構(gòu)管理 156 6.1 數(shù)據(jù)庫邏輯結(jié)構(gòu)介紹 156 6.2 數(shù)據(jù)庫基本操作 156 6.2.1 創(chuàng)建數(shù)據(jù)庫 156 6.2.2 修改數(shù)據(jù)庫 157 6.2.3 刪除數(shù)據(jù)庫 158 6.2.4 常見問題及解答 158 6.3 模式 159 6.3.1 什么是模式 159 6.3.2 模式的使用 159 6.3.3 公共模式 161 6.3.4 模式的搜索路徑 161 6.3.5 模式的權(quán)限 162 6.3.6 模式的可移植性 162 6.4 表 163 6.4.1 創(chuàng)建表 163 6.4.2 表的存儲屬性 165 6.4.3 臨時表 167 6.4.4 UNLOGGED表 170 6.4.5 默認值 170 6.4.6 約束 171 6.4.7 修改表 175 6.4.8 表繼承 179 6.4.9 通過表繼承實現(xiàn)分區(qū)表 181 6.4.10 聲明式分區(qū) 186 6.5 觸發(fā)器 188 6.5.1 創(chuàng)建觸發(fā)器 189 6.5.2 語句級觸發(fā)器與行級觸發(fā)器 190 6.5.3 BEFORE觸發(fā)器與AFTER觸發(fā)器 193 6.5.4 刪除觸發(fā)器 194 6.5.5 觸發(fā)器的行為 194 6.5.6 觸發(fā)器函數(shù)中的特殊變量 195 6.6 事件觸發(fā)器 196 6.6.1 創(chuàng)建事件觸發(fā)器 198 6.6.2 修改事件觸發(fā)器 201 6.7 表空間 201 6.7.1 什么是表空間 201 6.7.2 表空間的使用方法 201 6.8 視圖 202 6.8.1 什么是視圖 202 6.8.2 創(chuàng)建視圖 203 6.8.3 可更新視圖 204 6.9 索引 207 6.9.1 索引簡介 207 6.9.2 索引的分類 207 6.9.3 創(chuàng)建索引 208 6.9.4 并發(fā)創(chuàng)建索引 209 6.9.5 修改索引 211 6.9.6 刪除索引 212 6.10 用戶及權(quán)限管理 213 6.10.1 用戶和角色 213 6.10.2 創(chuàng)建用戶和角色 213 6.10.3 權(quán)限的管理 214 6.10.4 函數(shù)和觸發(fā)器的權(quán)限 219 6.10.5 權(quán)限的總結(jié) 220 6.10.6 權(quán)限的示例 220 6.11 事務(wù)、并發(fā)和鎖 220 6.11.1 什么是ACID 221 6.11.2 DDL事務(wù) 221 6.11.3 事務(wù)的使用方法 221 6.11.4 SAVEPOINT 222 6.11.5 事務(wù)隔離級別 224 6.11.6 兩階段提交 225 6.11.7 鎖機制 226 6.11.8 死鎖及防范 230 6.11.9 表級鎖命令LOCK TABLE 230 6.11.10 行級鎖命令 231 6.11.11 鎖的查看 231 6.12 小結(jié) 238 第7章 PostgreSQL的核心架構(gòu) 239 7.1 進程及內(nèi)存結(jié)構(gòu) 239 7.1.1 進程和內(nèi)存架構(gòu)圖 239 7.1.2 主進程Postmaster介紹 240 7.1.3 Logger系統(tǒng)日志進程介紹 241 7.1.4 BgWriter后臺寫進程介紹 241 7.1.5 WalWriter預(yù)寫式日志寫進程介紹 241 7.1.6 PgArch歸檔進程 242 7.1.7 AutoVacuum自動清理進程 242 7.1.8 PgStat統(tǒng)計數(shù)據(jù)收集進程 242 7.1.9 共享內(nèi)存 242 7.1.10 本地內(nèi)存 243 7.2 存儲結(jié)構(gòu) 243 7.2.1 邏輯存儲結(jié)構(gòu) 243 7.2.2 軟件目錄結(jié)構(gòu) 244 7.2.3 物理存儲結(jié)構(gòu) 244 7.2.4 表空間的目錄 246 7.3 應(yīng)用程序訪問接口 247 7.3.1 訪問接口總體圖 247 7.3.2 不同編程語言的PostgreSQL驅(qū)動介紹 248 7.4 小結(jié) 249 第8章 服務(wù)管理 250 8.1 服務(wù)的啟停及原理 250 8.1.1 服務(wù)的啟停方法 250 8.1.2 pg_ctl工具 251 8.1.3 信號 255 8.1.4 postgres及單用戶模式 255 8.2 服務(wù)配置介紹 256 8.2.1 配置參數(shù) 256 8.2.2 連接配置項 259 8.2.3 內(nèi)存配置項 261 8.2.4 預(yù)寫式日志的配置項 262 8.2.5 錯誤報告和日志項 264 8.3 訪問控制配置文件 268 8.3.1 pg_hba.conf 文件 268 8.3.2 認證方法介紹 269 8.3.3 認證方法實戰(zhàn) 270 8.4 備份和還原 271 8.4.1 邏輯備份 271 8.4.2 pg_dump命令 272 8.4.3 pg_restore命令 275 8.4.4 pg_dump和pg_restore應(yīng)用示例 278 8.4.5 物理備份 279 8.4.6 使用LVM快照進行熱備份 279 8.5 常用的管理命令 282 8.5.1 查看系統(tǒng)信息的常用命令 282 8.5.2 系統(tǒng)維護常用命令 288 8.6 小結(jié) 289 第三篇 提高篇 第9章 PostgreSQL執(zhí)行計劃 292 9.1 執(zhí)行計劃的解釋 292 9.1.1 EXPLAIN命令 292 9.1.2 EXPLAIN輸出結(jié)果解釋 293 9.1.3 EXPLAIN使用示例 294 9.1.4 全表掃描 297 9.1.5 索引掃描 297 9.1.6 位圖掃描 297 9.1.7 條件過濾 298 9.1.8 嵌套循環(huán)連接 299 9.1.9 散列連接 299 9.1.10 合并連接 300 9.2 與執(zhí)行計劃相關(guān)的配置項 301 9.2.1 ENABLE_*參數(shù) 301 9.2.2 COST基準值參數(shù) 301 9.2.3 基因查詢優(yōu)化的參數(shù) 302 9.2.4 其他執(zhí)行計劃配置項 303 9.3 統(tǒng)計信息的收集 304 9.3.1 統(tǒng)計信息收集器的配置項 304 9.3.2 SQL執(zhí)行的統(tǒng)計信息輸出 304 9.3.3 手動收集統(tǒng)計信息 305 9.4 小結(jié) 306 第10章 PostgreSQL中的技術(shù)內(nèi)幕 307 10.1 表中的系統(tǒng)字段 307 10.1.1 oid 308 10.1.2 ctid 310 10.1.3 xmin、xmax、cmin、cmax 311 10.2 多版本并發(fā)控制 312 10.2.1 多版本并發(fā)控制的原理 312 10.2.2 PostgreSQL中的多版本并發(fā)控制 313 10.2.3 PostgreSQL多版本的優(yōu)劣分析 315 10.3 物理存儲結(jié)構(gòu) 315 10.3.1 PostgreSQL中的術(shù)語 315 10.3.2 數(shù)據(jù)塊結(jié)構(gòu) 316 10.3.3 Tuple結(jié)構(gòu) 316 10.3.4 數(shù)據(jù)塊空閑空間管理 317 10.3.5 可見性映射表文件 320 10.4 控制文件解密 320 10.4.1 控制文件介紹 320 10.4.2 數(shù)據(jù)庫的唯一標識串解密 321 10.4.3 Checkpoint信息解密 322 10.4.4 與Standby相關(guān)的信息 323 10.5 WAL文件解密 324 10.5.1 WAL文件介紹 324 10.5.2 WAL文件名的秘密 324 10.5.3 WAL文件循環(huán)復(fù)用原理 325 10.6 CommitLog文件與事務(wù)ID技術(shù)解密 327 10.6.1 CommitLog文件介紹 327 10.6.2 事務(wù)ID技術(shù) 328 10.7 實例恢復(fù)與熱備份原理解密 328 10.7.1 實例恢復(fù)的原理 328 10.7.2 熱備份的原理 329 10.8 一些技術(shù)解密 332 10.8.1 Index-Only Scans 332 10.8.2 Heap-Only Tuples 334 10.9 小結(jié) 335 第11章 PostgreSQL的特色功能 336 11.1 規(guī)則系統(tǒng) 336 11.1.1 SELECT規(guī)則 336 11.1.2 更新規(guī)則 337 11.1.3 規(guī)則和權(quán)限 340 11.1.4 規(guī)則和命令狀態(tài) 341 11.1.5 規(guī)則與觸發(fā)器的比較 342 11.2 模式匹配和正則表達式 342 11.2.1 PostgreSQL中的模式匹配和正則表達式 343 11.2.2 傳統(tǒng)SQL的LIKE 操作符 343 11.2.3 SIMILAR TO 正則表達式 345 11.2.4 POSIX 正則表達式 346 11.2.5 模式匹配函數(shù) substring 347 11.3 LISTEN與NOTIFY命令 349 11.3.1 LISTEN與NOTIFY的簡單示例 349 11.3.2 LISTEN與NOTIFY的相關(guān)命令 350 11.3.3 LISTEN與NOTIFY的使用詳解 351 11.4 索引的特色 354 11.4.1 表達式上的索引 354 11.4.2 部分索引 355 11.4.3 GiST索引 357 11.4.4 SP-GiST索引 359 11.4.5 GIN索引 360 11.4.6 BRIN索引 362 11.5 序列的使用 365 11.5.1 序列的創(chuàng)建 365 11.5.2 序列的使用及相關(guān)函數(shù) 366 11.5.3 常見問題及解答 368 11.6 咨詢鎖的使用 370 11.6.1 什么是咨詢鎖 370 11.6.2 咨詢鎖的函數(shù)及使用 370 11.6.3 常見問題及解答 374 11.7 SQL/MED 374 11.7.1 SQL/MED的介紹 375 11.7.2 外部數(shù)據(jù)包裝器對象 376 11.7.3 外部服務(wù)器對象 377 11.7.4 用戶映射對象 378 11.7.5 外部表對象 378 11.7.6 file_fdw使用實例 379 11.7.7 postgres_fdw使用實例 382 11.7.8 oracle_fdw使用實例 383 11.7.9 odbc_fdw使用實例 385 11.8 全文檢索 385 11.8.1 全文檢索介紹 386 11.8.2 全文檢索入門 386 11.8.3 使用zhparser做中文全文檢索 388 11.9 數(shù)組的特色功能 391 11.9.1 數(shù)組的應(yīng)用場景介紹 391 11.9.2 數(shù)組的使用技巧 393 11.10 并行查詢功能 394 11.10.1 并行查詢相關(guān)的配置參數(shù) 395 11.10.2 支持的并行操作介紹 395 11.11 小結(jié) 396 第12章 數(shù)據(jù)庫優(yōu)化 397 12.1 數(shù)據(jù)庫優(yōu)化準則和方法 397 12.1.1 數(shù)據(jù)庫優(yōu)化準則 397 12.1.2 優(yōu)化方法 398 12.2 硬件知識 398 12.2.1 CPU及服務(wù)器體系結(jié)構(gòu) 399 12.2.2 內(nèi)存 400 12.2.3 硬盤 400 12.3 文件系統(tǒng)及I/O調(diào)優(yōu) 402 12.3.1 文件系統(tǒng)的崩潰恢復(fù) 403 12.3.2 Ext2文件系統(tǒng) 403 12.3.3 Ext3文件系統(tǒng) 403 12.3.4 Ext4文件系統(tǒng) 404 12.3.5 XFS文件系統(tǒng) 406 12.3.6 Barriers I/O 406 12.3.7 I/O調(diào)優(yōu)的方法 407 12.3.8 SSD的Trim優(yōu)化 410 12.4 性能監(jiān)控 410 12.4.1 數(shù)據(jù)庫性能視圖 411 12.4.2 Linux監(jiān)控工具 414 12.5 數(shù)據(jù)庫配置優(yōu)化 415 12.5.1 內(nèi)存配置優(yōu)化 415 12.5.2 大頁內(nèi)存的配置 418 12.5.3 VACUUM中的優(yōu)化 419 12.5.4 預(yù)寫式日志寫優(yōu)化 422 12.5.5 配置的最佳實踐 424 12.6 數(shù)據(jù)庫的邏輯結(jié)構(gòu)優(yōu)化 430 12.6.1 表的優(yōu)化 430 12.6.2 索引的優(yōu)化 432 12.7 SQL的優(yōu)化 436 12.7.1 找出慢的SQL 436 12.7.2 SQL語句的優(yōu)化技巧 439 12.8 小結(jié) 441 第13章 Standby數(shù)據(jù)庫的搭建 442 13.1 Standby數(shù)據(jù)庫原理 442 13.1.1 PITR原理 442 13.1.2 WAL日志歸檔 443 13.1.3 流復(fù)制 444 13.1.4 Standby數(shù)據(jù)庫的運行原理 444 13.1.5 建Standby數(shù)據(jù)庫的步驟 445 13.2 pg_basebackup命令行工具 447 13.2.1 pg_basebackup介紹 447 13.2.2 pg_basebackup的命令行參數(shù) 447 13.2.3 pg_basebackup使用示例 449 13.3 異步流復(fù)制Hot Standby的示例 450 13.3.1 配置環(huán)境 450 13.3.2 主數(shù)據(jù)庫的配置 450 13.3.3 在Standby上生成基礎(chǔ)備份 451 13.3.4 啟動Standby數(shù)據(jù)庫 452 13.3.5 交換主備庫的角色 454 13.3.6 故障切換 455 13.4 同步流復(fù)制的Standby數(shù)據(jù)庫 458 13.4.1 同步流復(fù)制的架構(gòu) 458 13.4.2 同步復(fù)制的配置 458 13.4.3 配置實例 459 13.5 檢查備庫及流復(fù)制情況 465 13.5.1 檢查異步流復(fù)制的情況 465 13.5.2 檢查同步流復(fù)制的情況 466 13.5.3 pg_stat_replication視圖詳解 467 13.5.4 查看備庫的狀態(tài) 468 13.6 Hot Standby的限制 470 13.6.1 Hot Standby的查詢限制 470 13.6.2 Hot Standby的查詢沖突處理 473 13.7 恢復(fù)配置詳解 474 13.7.1 歸檔恢復(fù)配置項 474 13.7.2 Recovery Target配置 475 13.7.3 Standby Server配置 476 13.8 流復(fù)制的注意事項 476 13.8.1 min_wal_size參數(shù)的配置 476 13.8.2 vacuum_defer_cleanup_age參數(shù)的配置 477 13.9 邏輯復(fù)制 477 13.9.1 邏輯復(fù)制的介紹 477 13.9.2 邏輯復(fù)制的發(fā)布 478 13.9.3 邏輯復(fù)制的訂閱 479 13.9.4 邏輯復(fù)制的沖突處理 481 13.9.5 邏輯復(fù)制的限制 481 13.9.6 邏輯復(fù)制的監(jiān)控與安全 482 13.9.7 邏輯復(fù)制的相關(guān)配置參數(shù) 483 13.9.8 邏輯復(fù)制的搭建實踐 483 13.10 小結(jié) 488 第四篇 架構(gòu)篇 第14章 PgBouncer 490 14.1 PgBouncer 介紹 490 14.2 PgBouncer的相關(guān)概念 491 14.3 PgBouncer的安裝方法 491 14.4 PgBouncer的簡單使用 491 14.4.1 簡單配置方法 492 14.4.2 啟動PgBouncer 492 14.4.3 停止PgBouncer 493 14.4.4 查看連接池信息 493 14.5 PgBouncer的配置文件詳解 495 14.5.1 “[databases]”配置 495 14.5.2 “[pgbouncer]”配置 496 14.5.3 用戶密碼文件 499 14.6 小結(jié) 500 第15章 Slony-I的使用 501 15.1 Slony-I中的主要概念 501 15.1.1 集群 502 15.1.2 節(jié)點 502 15.1.3 復(fù)制集合 502 15.1.4 數(shù)據(jù)原始生產(chǎn)者、數(shù)據(jù)提供者和數(shù)據(jù)訂閱者 502 15.1.5 Slon守護程序 502 15.1.6 Slonik配置程序 503 15.2 Slony-I復(fù)制的一些限制 503 15.3 在Linux下安裝和配置Slony-I 503 15.3.1 二進制方式安裝Slony-I 503 15.3.2 源碼編譯安裝Slony-I 504 15.3.3 配置Slony-I的基本復(fù)制 506 15.3.4 添加和移除表的復(fù)制 512 15.3.5 主備切換 513 15.4 小結(jié) 514 第16章 Bucardo的使用 515 16.1 Bucardo的相關(guān)概念 515 16.1.1 Bucardo介紹 515 16.1.2 Bucardo FAQ 515 16.1.3 Bucardo 同步中定義的概念 516 16.2 Bucardo的安裝方法 516 16.2.1 Bucardo的安裝步驟 516 16.2.2 安裝Test-Simple、ExtUtils-MakeMaker、version 517 16.2.3 安裝DBI及DBD::Pg 518 16.2.4 安裝DBIx-Safe 518 16.2.5 安裝Bucardo源碼包 518 16.2.6 使用yum安裝Bucardo 519 16.3 Bucardo同步配置 520 16.3.1 示例環(huán)境 520 16.3.2 Bucardo的工作原理 520 16.3.3 bucardo install 521 16.3.4 配置同步 523 16.3.5 Bucardo 常用命令 525 16.4 Bucardo的日常維護 526 16.4.1 Bucardo的觸發(fā)器日志清理 526 16.4.2 臨時停止和啟動同步的方法 526 16.4.3 新增表到同步的方法 527 16.4.4 移除某個表或序列的方法 527 16.5 小結(jié) 527 第17章 PL/Proxy的使用 528 17.1 PL/Proxy的相關(guān)概念 528 17.1.1 什么是PL/Proxy 528 17.1.2 PL/Proxy的特性說明 530 17.2 PL/Proxy的安裝及配置 530 17.2.1 編譯安裝 530 17.2.2 安裝規(guī)劃 531 17.2.3 配置過程 531 17.3 PL/Proxy的集群配置詳解 535 17.3.1 Cluster configuration API方式 536 17.3.2 SQL/MED方式配置集群 538 17.4 PL/Proxy語言詳解 539 17.4.1 CONNECT 539 17.4.2 CLUSTER 539 17.4.3 RUN ON 539 17.4.4 SPLIT 540 17.4.5 TARGET 540 17.5 PL/Proxy的高可用方案 540 17.5.1 方案介紹 540 17.5.2 方案架構(gòu) 541 17.5.3 具體實施步驟 542 17.6 小結(jié) 550 第18章 pgpool-II的使用 551 18.1 pgpool-II的相關(guān)概念 551 18.1.1 什么是pgpool-II 551 18.1.2 pgpool-II的發(fā)展簡介 552 18.1.3 pgpool-II的架構(gòu) 552 18.1.4 pgpool-II的工作模式 554 18.1.5 pgpool-II的程序模塊 556 18.2 pgpool-II的安裝方法 556 18.2.1 安裝軟件 556 18.2.2 安裝 pgpool_regclass 557 18.2.3 建立 insert_lock表 557 18.2.4 安裝pgpool_recovery 558 18.3 pgpool-II配置快速入門 558 18.3.1 pgpool-II的配置過程 558 18.3.2 內(nèi)置復(fù)制模式的示例 561 18.3.3 流復(fù)制的主備模式示例 564 18.3.4 show命令 566 18.4 pgpool-II高可用配置方法 568 18.4.1 pgpool-II高可用切換及恢復(fù)的原理 568 18.4.2 pgpool-II的在線恢復(fù) 568 18.4.3 流復(fù)制模式中的故障切換 570 18.4.4 pgpool-II的健康檢查 571 18.4.5 流復(fù)制的主備模式的高可用示例 571 18.4.6 watchdog的配置 576 18.5 小結(jié) 582 第19章 Postgres-XC的使用 583 19.1 Postgres-XC的相關(guān)概念 583 19.1.1 什么是Postgres-XC 583 19.1.2 Postgres-XC的特點 584 19.1.3 Postgres-XC的性能 584 19.1.4 Postgres-XC的組件 585 19.2 Postgres-XC的安裝 585 19.2.1 源碼安裝方法 585 19.2.2 Postgres-XC目錄及程序說明 586 19.3 配置Postgres-XC集群 588 19.3.1 集群規(guī)劃 588 19.3.2 初始化GTM 588 19.3.3 初始化GTM備庫 589 19.3.4 初始化GTM Proxy 589 19.3.5 初始化Coordinators、數(shù)據(jù)節(jié)點 590 19.3.6 啟動集群 591 19.3.7 停止集群 592 19.3.8 配置集群節(jié)點信息 592 19.4 Postgres-XC的使用 594 19.4.1 建表詳解 594 19.4.2 使用限制 600 19.4.3 重新分布數(shù)據(jù) 601 19.4.4 增加Coordinator節(jié)點的方法 602 19.4.5 移除Coordinator節(jié)點的方法 603 19.4.6 增加Datanode節(jié)點的方法 604 19.4.7 移除Datanode節(jié)點的方法 605 19.5 小結(jié) 605 第20章 高可用性方案設(shè)計 606 20.1 高可用架構(gòu)基礎(chǔ) 606 20.1.1 各種高可用架構(gòu)介紹 606 20.1.2 服務(wù)的可靠性設(shè)計 607 20.1.3 數(shù)據(jù)可靠性設(shè)計 607 20.2 基于共享存儲的高可用方案 608 20.2.1 SAN存儲方案 608 20.2.2 DRBD方案 609 20.3 WAL日志同步或流復(fù)制同步方案 609 20.3.1 持續(xù)復(fù)制歸檔的Standby方法 609 20.3.2 異步流復(fù)制方案 610 20.3.3 同步流復(fù)制方案 610 20.4 基于觸發(fā)器的同步方案 610 20.4.1 基于觸發(fā)器的同步方案特點 610 20.4.2 基于此方案的同步軟件介紹 610 20.5 基于中間件的高可用方案 611 20.5.1 基于中間件的高可用方案的特點 611 20.5.2 基本中間件的開源軟件介紹 612 20.6 小結(jié) 613
你還可能感興趣
我要評論
|