Greenplum擴容

一、Greenplum擴展分類

  1. 在現有segment主機上添加新的segment。
  2. 添加新的segment主機並添加新的segment。

二、總體步驟介紹:

  1. 爲擴展準備新的節點
    具體步驟包括修改操作系統參數,安裝數據庫軟件,交換SSH祕鑰。
    如非添加新的segment主機,此步驟省略。
  2. 生成擴展配置文件
    使用gpexpand命令交互方式生成節點擴展配置文件。
    須指定需要擴展segment的主機以及擴展模式(expansion schema)。
    根據提示輸入需要擴展的segment數量、primary路徑等信息。
    如配置了mirror,需要執行mirror的分佈方式和路徑。
    如數據庫中包含文件空間,需要指定文件空間路徑。
    生成的配置文件格式爲gpexpand_inputfile_yyyymmdd_hhmmss
    生成的文件空間配置文件爲gpexpand_inputfile_yyyymmdd_hhmmss.fs
  3. 初始化新的segment
    該步驟會自動停止KADB數據庫,並在初始化新的segment完成後重啓系統。
  4. 重分佈表
    擴展模式中會生成三張表:
    gpexpand.status gpexpand.status_detail gpexpand.expansion_progress
    可以通過修改gpexpand.status_detail表中的rank值,設定需要重分佈的表的優先級。
    可以通過查看gpexpand.expansion_progress瞭解重分佈的預估進度。
  5. 刪除擴展模式。

三、命令參考

1.環境準備
創建集羣管理用戶kaadmin,拷貝SSH祕鑰到新的主機。
將現有節點上的數據庫軟件同步到新的節點。

$gpssh-exkeys -e host_exist -x host_new
$gpseginstall -f ./host_new -u kaadmin

2.生成配置文件

$gpexpand –f hostfile_segment  -D expansc

3.初始化新的segment

$gpexpand –i kaexpand_inputfile_20180108_164123 –D expandsc –S –V –v –n 1 –B 1 –t /tmp

4.重分佈表

$gpexpand –a –d 2:00:00 –D expands –S –t /tmp –v –n 1

5.刪除擴展模式

$kaexpand -c

四、失敗回滾

在初始化新的segment步驟,由於多種原因,可能導致此步驟失敗,如配置文件錯誤,磁盤空間不足等,此時需要將擴展操作回滾,待失敗原因解決之後,再次執行初始化新的segment操作。
$gpexpand –rollback –D expands

五、注意事項

1.表中有唯一索引時,擴容過程執行到檢測唯一索引步驟之後不再繼續執行,具體提示如下:
Tables with unique indexes exists. Until these tables are successfully redistributed, unique constraints may be violated. For more information on this issue, see the Greenplum Administrator Guide

解決辦法,先刪除唯一索引,擴容完成之後再建立。
2.擴容的系統,需要有mirror。
提示信息如下:
primary must have mirror when mirroring enabled:%s %repr(seg)
(當時我只建了master的standy,segment的mirror未配置,結果就不讓擴容,提示需要建立mirror才行。)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章