資料初始化內部流程:bootstrap模式實現了乙個特殊的語言用於解析bki資料,語言的法語解析器會逐個token處理,遇到乙個語法子句就呼叫相應的函式:遇到proname,建立字段屬性;遇到name,建立字段型別;遇到insert,插入乙個tuple,tuple裡面又是該tuple的每個欄位的值,所以遇到值時insertonevalue,整個tuple字段值都處理完後,執行insertonetuple插入乙個tuple。
bki檔案本身由genbki.pl在編譯和安裝時建立,該perl指令碼解析src/include/catalog特殊格式的c標頭檔案,並建立名字為postgres.bki的bki檔案。bki會建立70多個資料庫最重要的表,其中有四個比較特殊:pg_proc/pg_type_pg_attribute/pg_class,其他表如:pg_attrdef/pg_inherits/pg_index/pg_operator/pg_am等。前四個表建立方式最特殊,直接在磁碟上建立,不會走正常的建立table的**流程,其他表會走boot_openrel()**。
對於大多數表而言,它的物理檔案名字由pg_class.relfilenode標識。對於重要的catalog表,比如pg_class則使用特殊的catalog_oid到filenode id的對映檔案pg_filenode.map來標記。
關於Greenplum資料庫
關於greenplum資料庫 greenplum實現了基於資料庫的分布式資料儲存和平行計算 greenplum的資料庫引擎層是基於著名的開源資料庫postgresql greenplum建立在share nothing無共享架構上,讓每一顆cpu和每一塊磁碟io都運轉起來,無共享架構將這種並行處理發...
Greenplum資料庫架構匯出複製
目的 匯出現場的gp資料庫架構 包含表結構,函式,檢視等,不包含具體表資料。在所內恢復一套同樣架構的資料庫出來,方便所內查詢定位。步驟 1 匯出時間,挑選乙個gp事務比較清閒的時間段進行操作 2 檢視現場資料庫裡有多少模式schema 要根據現場實際的schema 如下圖 3 利用gpadmin使用...
Greenplum資料庫中master節點恢復
目錄 1.啟用standby master 2.恢復到原來的設定 option 3.檢查standby master的狀態 option 如果primary master節點失敗,日誌複製程序就會停止。可以使用gpstate f命令檢視standby master的狀態,使用gpactivatest...