日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

GreenPlum的学习心得和知识总结(三)|Greenplum数据库快速入门

發布時間:2024/3/12 数据库 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GreenPlum的学习心得和知识总结(三)|Greenplum数据库快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注:提前言明 本文借鑒了以下博主、書籍或網站的內容,其列表如下:

1、GreenPlum中文官網首頁,點擊前往
2、GreenPlum git倉庫,點擊前往 或 本人GreenPlum gitee倉庫,點擊前往
3、PostgreSQL數據庫倉庫鏈接,點擊前往
4、YouTube greenplum視頻主頁,點擊前往
5、Bilibili greenplum視頻主頁,點擊前往


1、本文內容全部來源于開源社區 GitHub和以上博主的貢獻,本文也免費開源(可能會存在問題,評論區等待大佬們的指正)
2、本文目的:開源共享 拋磚引玉 一起學習
3、本文不提供任何資源 不存在任何交易 與任何組織和機構無關
4、大家可以根據需要自行 復制粘貼以及作為其他個人用途,但是不允許轉載 不允許商用 (寫作不易,還請見諒 💖)


Greenplum數據庫快速入門

  • 文章快速說明索引
  • 學習資料相關分享
  • 打造內核開發環境
  • gp數據庫快速入門
    • gp數據庫的特性
    • gp數據庫的組成
    • gp常用操作演示
    • gp安裝目錄說明



文章快速說明索引

學習目標:

開源、多云、并行的大數據平臺。Greenplum 是全球領先的大數據分析引擎,專為分析、機器學習和AI而打造!接下來一段時間,除了PostgreSQL數據庫的相關內容分享 也會把GreenPlum數據庫的學習心得及相關知識總結記錄下來!后面我可能會去gp工作,不管怎么說 gp都是非常值得一學和大力推廣!


學習內容:(詳見目錄)

1、Greenplum數據庫快速入門


學習時間:

2022年08月07日 11:18:01


學習產出:

1、PostgreSQL數據庫基礎知識回顧 1個
2、CSDN 技術博客 1篇


學習資料相關分享

這塊可以參見本人之前的博客:

  • GreenPlum的學習心得和知識總結(一)|GreenPlum數據庫源碼編譯安裝及學習資料匯總,點擊前往

因為在下是做PostgreSQL數據庫內核開發的,這里只介紹一本書:

  • 《Greenplum:從大數據戰略到實現》,點擊前往

打造內核開發環境

在上一篇,我們介紹了GreenPlum數據庫 內核開發 的環境配置,如下:

  • GreenPlum的學習心得和知識總結(二)|打造Greenplum數據庫內核開發環境,點擊前往

接下來,我們將花一段時間來學習一下GreenPlum的基礎知識及相關背景,我們這里學習的資料來源:

  • GreenPlum的學習心得和知識總結(一)|GreenPlum數據庫源碼編譯安裝及學習資料匯總,點擊前往
  • 《Greenplum:從大數據戰略到實現》,點擊前往
  • 姚老師的《Greenplum 分布式數據庫內核揭秘》
  • Greenplum中文手冊,點擊前往

gp數據庫快速入門

我們這里主要看一下Greenplum數據庫的發展歷程和現狀,以及主要特性。關于如何安裝、部署Greenplum數據庫我們不再贅述!

Greenplum數據庫是基于MPP(Massively Parallel Processing)架構的開源大數據平臺,主要特性如下:

  • 具有良好的彈性和線性擴展能力
  • 內置并行存儲、并行通信、并行計算和并行優化功能
  • 兼容SQL標準
  • 具有強大、高效的PB級數據存儲、處理和實時分析能力
  • 同時支持涵蓋OLTP型業務的混合負載,可部署于企業裸機、容器、私有云和公有云中
  • 目前已為全球金融、電信、制造等行業的大量核心生產系統提供支撐。關于其適用場景:

    • Greenplum主要定位在OLAP領域,利用Greenplum MPP數據庫做大數據計算或分析平臺非常適合,例如:數據倉庫系統、ODS系統、ACRM系統、歷史數據管理系統、電信流量分析系統、移動信令分析系統、SANDBOX自助分析沙箱、數據集市等等

    • 不擅長做OLTP交易系統,所謂交易系統,就是高頻的交易型小規模數據插入、修改、刪除,每次事務處理的數據量不大,但每秒鐘都會發生幾十次甚至幾百次以上交易型事務


    2015年10月,Pivotal正式把投資超過10年的Greenplum產品開源,Greenplum因此成為世界上第一款成熟的開源MPP數據庫!

    • Greenplum5.0是開源之后發布的第一個穩定版本,Greenplum5.x保持大約1.5個月一個版本的發布速度
    • Greenplum6.0于2019年發布,包含許多重要特性。例如:Greenplum 6.0的內核升級到PostgreSQL 9.4.20,大幅提升HTAP(OLAP+ OLTP)性能,支持復制表(Replicated Table)、在線擴容(Online Expand)和一致性哈希(Jump Consistent Hash),支持磁盤配額配置(Disk Quota)、Zstandard壓縮算法、靈活數據分布、基于流復制的全新高可用機制等
    • Greenplum主干分支開發非常活躍,眾多社區期待的特性穩健推進中,處于業界領先地位

    目前Greenplum正在進行內核升級(pg12),gp7大概在明年發布:

    gpadmin@gpadmin0:~/gpdbtest/bin$ ./psql -d postgres psql (12beta2) Type "help" for help.postgres=# select version();version ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------PostgreSQL 12beta2 (Greenplum Database 7.0.0-alpha.0+dev.15592.ge2b23ac456 build dev) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 11.2.0-19ubuntu1) 11.2.0, 64-bit compiled on Aug 1 2022 18:22:31 (1 row)postgres=#

    Greenplum生態的日益完善得益于對SQL標準的支持,Greenplum可以與支持SQL標準的各種上下游產品實現集成,包括PgAdmin4、Informatica、Conf luent、HVR、Cognos、SAS、Talend、Qlik、Tableau、Anaconda、Microstrategy、Boundless、Zattset、Datometry等,涵蓋ETL、商業智能、高級分析、可視化、集成分析、GIS數據處理、遷移、安全和管理等各個領域。


    gp數據庫的特性

  • 開放源代碼。Greenplum數據庫在2015年由Pivotal公司開源,遵從Apache Licence 2.0協議,官方網站為 http://greenplum.org。代碼庫在Github上的鏈接為 https://github. com/greenplum-db/gpdb
  • 超大規模和高性能。Greenplum數據庫采用大規模無共享處理架構MPP,將多臺服務器組成一個強大的計算平臺,實現高效的海量并行運算。Greenplum數據庫可以支持1000個節點以上的集群,管理的數據規模從100TB到數PB,可以滿足大多數企業的數據處理需求
  • 此外為了要達到高性能,除了要有高效的并行處理架構,還要有查詢優化器生成最優的查詢計劃。隨著數據量的持續增加以及查詢越來越復雜,性能對查詢優化器的依賴也越來越強。Greenplum數據庫除了支持基于PostgreSQL的查詢優化器以外,還專門開發了一個新的查詢優化器ORCA。ORCA是一款自頂向下的基于Cascades框架的查詢優化器,目前已經成為企業版Greenplum數據庫的默認優化器。相比基于PostgreSQL的查詢優化器,ORCA查詢優化器能使某些查詢的性能提升10~1000倍

    gpadmin@gpadmin0:~/gpdbtest/bin$ ./psql -d postgres psql (12beta2) Type "help" for help.postgres=# show optimizer;optimizer -----------on (1 row)postgres=# // src/backend/utils/misc/guc_gp.c{{"optimizer", PGC_USERSET, QUERY_TUNING_METHOD,gettext_noop("Enable GPORCA."),NULL},&optimizer, #ifdef USE_ORCAtrue, #elsefalse, #endifcheck_optimizer, NULL, NULL},
  • 高可用性。Greenplum提供 多級容錯機制 確保整個系統的高可用性。主節點Master通過Standby Master進行備份,每個數據節點Primary Segment分別配置一個Mirror Segment節點進行備份,同時確保同一組Primary Segment與Mirror Segment節點不在同一物理機,從而降低由于宕機而導致數據丟失的風險

  • 通用性。Greenplum數據庫擁有完善的SQL標準支持,包括SQL92、SQL99、SQL2003,以及OLAP擴展,是對SQL標準支持最好的開源商用數據庫系統之一。同時,由于Greenplum數據庫基于PostgreSQL,因此繼承了PostgreSQL對于JDBC、ODBC、C、Python API等接口的支持。Greenplum數據庫的通用性確保了任何應用程序都可以方便地與之集成并進行數據訪問

  • 多態存儲。Greenplum數據庫提供 多態存儲 的靈活存儲方式。用戶可以根據數據熱度或者訪問模式的不同而使用不同的存儲方式,以獲得更好的查詢性能。在Greenplum數據庫中,一張表的數據水平分割到各個節點。用戶可以為一張表按照一定規則(比如日期)創建分區表。一張表的各個子分區表可以使用不同的物理存儲方式。支持的存儲方式包括:

  • /* - 1)行存儲,數據以行的形式存儲在數據頁里,適合頻繁更新的查詢 - 2)列存儲,數據以列的形式存儲在數據頁里,適合OLAP分析型查詢 - 3)外部表,數據保存在其他文件系統中,比如HDFS、S3,數據庫只保留元數據信息。用戶可以根據數據的“熱度”決定采用何種方式存儲,比如,需要頻繁更新的數據采用行存儲,很少訪問的歷史數據采用外部表形式 */
  • 高擴展性和高效資源管理。得益于MPP的無共享架構,Greenplum數據庫具有良好的、線性的在線擴展能力。用戶可以為運行中的Greenplum數據庫增加硬件資源。Greenplum數據庫提供了高效的資源管理機制,根據用戶的業務邏輯將資源合理地分配給查詢任務,避免查詢任務因資源不足而得不到響應。Greenplum資源管理主要包括對并發查詢數量的限制,查詢執行時內存、CPU資源使用的限制等。Greenplum在資源管理方面也提供了多級保證。在數據庫連接(Connection)級別上,可以控制用戶接入數量。在數據庫會話(Session)級別上,可以設定每個用戶的資源組來管理任務進入情況,同時控制查詢并發及查詢資源使用占比。在查詢語句級別上,可以為查詢語句設置優先級,并且可以在語句執行中實時調整,從而優化特定查詢,縮短其運行時間。Greenplum數據庫提供兩種資源管理方式:資源隊列(Resource Queue)和資源組(Resource Group),兩者的詳細介紹可以在Greenplum官方網站上查閱,目前推薦使用資源組方式
  • 高效數據加載。Greenplum數據庫利用MPP架構可以高效地并行加載數據,即允許數據從多個文件系統通過多個主機上的多個網卡進行加載,從而達到非常高的數據傳輸率。Greenplum數據庫可以讀出和寫入多種類型的外部數據源,包括文本文件、XML文件、S3上的文件、Gemfire、Web服務器以及Apache開源軟件系統HDFS、HIVE、HBase、Kafka、Spark等,同時支持數據壓縮,以及GBK/UTF8/ISO8859等字符集間的自動轉換
  • 高級數據分析。Greenplum數據庫支持各種過程化編程語言,包括PL/PostgreSQL、PL/R、PL/Python、PL/Java、PL/Perl等語言擴展。PL/Python和PL/R作為不可信(untrusted)語言,用戶自定義函數只能由數據庫管理員創建,Greenplum數據庫針對此問題提供了PL/Container擴展。PL/Container通過對用戶自定義的Python或R代碼容器化執行,實現了與Greenplum集群的計算隔離,同時可自由定制容器鏡像。因此,PL/Container提供了更高的安全性和靈活性。在高級數據分析方面,通過Greenplum數據庫的MADlib擴展模塊,用戶可以很方便地利用MPP架構完成大規模數據的并行分析。同時,MADlib可以與PivotalR一同使用,一個PivotalR包允許用戶使用R客戶端同Greenplum的數據進行交互
  • 良好的監控管理和運維體驗。Greenplum數據庫提供基于Web的可視化工具—Greenplum Command Center(簡稱GPCC)。GPCC可以監控Greenplum數據庫系統的性能、集群健康狀態、查詢執行,以及系統資源使用情況等
  • 注:如上幾大特性,以后我們會逐一進行學習和分享 Greenplum數據庫是一個非常強大的數據庫,對其的學習不可能一蹴而就 我們后面會花上大量的時間和實踐來對其深入的學習,這里的學習是從一名內核開發人員的角度進行的 可能不太適合初學者和各位DBA們!


    gp數據庫的組成

    Greenplum基于PostgreSQL開發,面向數據倉庫應用的關系型MPP數據庫。Greenplum數據庫是典型的Master/Slave架構,一個Greenplum集群通常由一個Master節點、一個Standby Master節點以及多個Segment節點組成,節點之間通過高速網絡互連 如下圖所示:

    如上:其高可用性可見一斑!

    • Master是整個數據庫的入口,終端用戶連接Master執行查詢:(建立與客戶端的連接和管理;SQL的解析并形成執行計劃;向Segment分發執行計劃;收集Segment的執行結果;不存儲業務數據,只存儲數據字典)
    • Standby Master為Master提供高可用(High Availability)支持
    • Segment節點是工作節點(業務數據的存儲和存取;用戶查詢SQL的執行
    • Mirror Segment為Segment提供高可用支持
    • 高速網絡Interconnect(Master-Segment、Segment-Segment的數據傳輸組件)這里想一想UDP協議,我們后面再細談

    當Master節點接收到用戶發起的查詢語句SQL時,會對查詢語句進行查詢編譯、查詢優化等操作,生成并行查詢計劃,并分發到Segment節點執行。Segment執行完畢,會將數據發回Master節點,最終呈現給用戶!


    gp常用操作演示

    下面來看一個示例,進行實操一下!

    postgres=# \d+ testTable "public.test"Column | Type | Collation | Nullable | Default | Storage | Stats target | Description ---------+-----------------------------+-----------+----------+---------+---------+--------------+-------------id | integer | | not null | | plain | | curtime | timestamp without time zone | | | | plain | | Indexes:"test_pkey" PRIMARY KEY, btree (id) Distributed by: (id) Access method: heappostgres=# select gp_segment_id, * from test;gp_segment_id | id | curtime ---------------+----+--------- (0 rows)postgres=# insert into test select * from generate_series(1,10); INSERT 0 10 postgres=# select gp_segment_id, * from test limit 10;gp_segment_id | id | curtime ---------------+----+---------0 | 2 | 0 | 3 | 0 | 4 | 0 | 7 | 0 | 8 | 1 | 1 | 2 | 5 | 2 | 6 | 2 | 9 | 2 | 10 | (10 rows)postgres=#

    如上:創建表的DDL語句中的distributed by關鍵字需要特別注意,這個關鍵字指定了數據的分布方式,目的在于將數據平均分布到各個Segment。Greenplum支持兩種分布方式:哈希(Hash)分布和隨機(Random)分布。哈希分布是選擇一個或者多個列作為分布鍵,通過哈希函數決定該條記錄在插入時存儲到哪個Segment節點上。如果采用隨機分布,數據記錄會被隨機地分布到各個Segment節點上。如果選擇哈希分布,需要根據實際情況謹慎地選擇分布鍵,否則容易出現數據傾斜(Skew),導致查詢性能下降!

    postgres=# create table test2 (id int) DISTRIBUTED RANDOMLY; CREATE TABLE postgres=# create table test3 (id int primary key) DISTRIBUTED RANDOMLY; ERROR: PRIMARY KEY and DISTRIBUTED RANDOMLY are incompatible postgres=# postgres=# \d+ test2Table "public.test2"Column | Type | Collation | Nullable | Default | Storage | Stats target | Description --------+---------+-----------+----------+---------+---------+--------------+-------------id | integer | | | | plain | | Distributed randomly Access method: heappostgres=# insert into test2 select * from generate_series(1,10); INSERT 0 10 postgres=# explain select gp_segment_id, * from test2;QUERY PLAN ------------------------------------------------------------------------------Gather Motion 3:1 (slice1; segments: 3) (cost=0.00..431.00 rows=1 width=8)-> Seq Scan on test2 (cost=0.00..431.00 rows=1 width=8)Optimizer: Pivotal Optimizer (GPORCA) (3 rows)postgres=# select gp_segment_id, * from test2;gp_segment_id | id ---------------+----0 | 10 | 30 | 80 | 101 | 51 | 72 | 22 | 42 | 62 | 9 (10 rows)postgres=#

    關于實現原理和內部技術是我們后面學習的內容,這里不再過多闡述!其支持的表類型,如下:


    創建表的DDL語句還可以通過WITH子句定義表的存儲類型:

    • APPENDONLY=TRUE指定創建一個append-optimized表(簡稱AO表),如果不加這個選項或者使用APPENDONLY=FALSE,創建的表就是堆表(heap表)
    • ORIENTATION=COLUMN指定創建一個列存儲的表,列存儲的表只能是AO表
    • COMPRESSTYPE指定表的壓縮類型,可選值有ZLIB、QUICKLZ、RLE_TYPE,或者不壓縮
    • 只有append-optimized表可以被壓縮
    • PARTITION BY選項可以定義在哪些列上對表數據進行分區
    postgres=# create table test3 (id int primary key) with(appendonly=true,ORIENTATION=COLUMN, COMPRESSTYPE=zlib); ERROR: append-only tables do not support unique indexes postgres=# postgres=# create table test3 (id int) with(appendonly=true,ORIENTATION=COLUMN, COMPRESSTYPE=zlib); NOTICE: Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table. HINT: The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew. CREATE TABLE postgres=# \d+ test3Table "public.test3"Column | Type | Collation | Nullable | Default | Storage | Stats target | Compression Type | Compression Level | Block Size | Description --------+---------+-----------+----------+---------+---------+--------------+------------------+-------------------+------------+-------------id | integer | | | | plain | | zlib | 1 | 32768 | Checksum: t Distributed by: (id) Access method: ao_column Options: compresstype=zlibpostgres=#

    gp安裝目錄說明

    gpadmin@gpadmin0:~/gpdbtest$ pwd /home/gpadmin/gpdbtest gpadmin@gpadmin0:~/gpdbtest$ gpadmin@gpadmin0:~/gpdbtest$ ls bin docs greenplum_path.sh include lib libexec sbin share gpadmin@gpadmin0:~/gpdbtest$

    bin目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls bin/ analyzedb dropdb gpcheckcat gpconfig_modules gpinitsystem gpmemreport gpreload gpssh-exkeys hostfile pg_basebackup pg_ctl pg_recvlogical pg_test_timing psql cluster.conf dropuser gpcheckcat_modules gpdeletesystem gpload gpmemwatcher gp_replica_check.py gpssh_modules initdb pgbench pg_dump pg_resetwal pg_upgrade reindexdb clusterdb ecpg gpcheckperf gpexpand gpload.bat gpmovemirrors gpscp gpstart lib pg_checksums pg_dumpall pg_restore pg_waldump stream createdb gpactivatestandby gpcheckresgroupimpl gpfdist gpload.py gppkg gpsd gpstate minirepro pg_config pg_isready pg_rewind postgres vacuumdb createuser gpaddmirrors gpconfig gpinitstandby gplogfilter gprecoverseg gpssh gpstop pg_archivecleanup pg_controldata pg_receivewal pg_test_fsync postmaster gpadmin@gpadmin0:~/gpdbtest$

    include目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls include/ ecpg_config.h ecpg_informix.h ecpgtype.h gppc.h libpq-events.h pg_config_ext.h pg_config_manual.h pgtypes_date.h pgtypes.h pgtypes_numeric.h postgres_ext.h sql3types.h sqlda-compat.h sqlda-native.h ecpgerrno.h ecpglib.h gppc_config.h libpq libpq-fe.h pg_config.h pg_config_os.h pgtypes_error.h pgtypes_interval.h pgtypes_timestamp.h postgresql sqlca.h sqlda.h gpadmin@gpadmin0:~/gpdbtest$ ls include/postgresql/ informix internal server gpadmin@gpadmin0:~/gpdbtest$

    lib目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls lib libecpg.a libecpg_compat.so libecpg_compat.so.3.12 libecpg.so.7 libgppc.a libgppc.so.1 libpgcommon.a libpgfeutils.a libpgport_shlib.a libpgtypes.so libpgtypes.so.3.12 libpq.so libpq.so.5.12 postgresql libecpg_compat.a libecpg_compat.so.3 libecpg.so libecpg.so.7.12 libgppc.so libgppc.so.1.2 libpgcommon_shlib.a libpgport.a libpgtypes.a libpgtypes.so.3 libpq.a libpq.so.5 pkgconfig python gpadmin@gpadmin0:~/gpdbtest$

    libexec目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls libexec/ ifaddrs gpadmin@gpadmin0:~/gpdbtest$ cd libexec/ gpadmin@gpadmin0:~/gpdbtest/libexec$ ls ifaddrs gpadmin@gpadmin0:~/gpdbtest/libexec$ ./ifaddrs 127.0.0.1 192.168.31.185 ::1 gpadmin@gpadmin0:~/gpdbtest/libexec$

    sbin目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls sbin/ gpcleansegmentdir.py gpconfig_helper.py gpgetstatususingtransition.py gpoperation.py gpsegrecovery.py gpsegsetuprecovery.py gpsegstart.py gpsegstop.py packcore recovery_base.py seg_update_pg_hba.py gpadmin@gpadmin0:~/gpdbtest$

    share目錄:

    gpadmin@gpadmin0:~/gpdbtest$ ls share/postgresql/ cdb_init.d errcodes.txt information_schema.sql pg_ident.conf.sample postgres.bki postgresql.conf.sample psqlrc.sample sql_features.txt timezone tsearch_data contrib extension pg_hba.conf.sample pg_service.conf.sample postgres.description postgres.shdescription snowball_create.sql system_views.sql timezonesets gpadmin@gpadmin0:~/gpdbtest$ gpadmin@gpadmin0:~/gpdbtest$ cat share/greenplum/gucs_disallowed_in_file.txt is_superuser debug_assertions transaction_read_only transaction_deferrable integer_datetimes data_checksums data_directory_mode max_function_args max_index_keys max_identifier_length block_size segment_size wal_block_size wal_segment_size ssl_renegotiation_limit server_version_num seed lc_collate lc_ctype server_encoding server_version role session_authorization config_file ssl_library transaction_isolation gp_retrieve_conn gp_is_writer gp_write_shared_snapshot gp_dbid gp_contentid gp_command_count gp_qd_port gp_session_id gp_server_version_num gp_role gp_qd_hostname gp_server_version gpadmin@gpadmin0:~/gpdbtest$

    上面文件gucs_disallowed_in_file.txt中的內容,就是下面這兩個個文件中含有GUC_DISALLOW_IN_FILE選項的GUC參數:

    src/backend/utils/misc/guc.csrc/backend/utils/misc/guc_gp.c

    接下來看一下Greenplum數據庫的一些常用命令:

  • gpstart:gpstart命令用于啟動一個Greenplum集群,包括啟動Master和Segment節點。如果只想啟動Master節點,而不啟動Segment節點,可以加-m選項,這樣就能以維護模式(maintenance mode)啟動Master節點

  • gpstop:該命令用于關閉一個Greenplum集群。gpstop命令的相關選項說明如下所示:

  • gpadmin@gpadmin0:~/gpdbtest/bin$ ./gpstop --help COMMAND NAME: gpstopStops or restarts a Greenplum Database system.***************************************************** SYNOPSIS *****************************************************gpstop [-d <coordinator_data_directory>] [-B <parallel_processes>] [-M smart | fast | immediate] [-t <timeout_seconds>][-r] [-y] [-a] [-l <logfile_directory>] [-v | -q]gpstop [-m | -c ] [-d <coordinator_data_directory>] [-y][-l <logfile_directory>] [-v | -q]gpstop -u [-d <coordinator_data_directory>] [-l <logfile_directory>] [-v | -q]gpstop --host <segment_host_name> [-d <coordinator_data_directory>][-l <logfile_directory>] [-t <timeout_seconds>] [-a][-v | -q]gpstop --versiongpstop -? | -h | --help ...

  • gpstate命令用于展示運行中的Greenplum數據庫的信息,比如哪個節點宕機、Master和Segment的配置信息、數據庫系統所使用的端口號、Segment和Mirror Segment的映射關系等。加-s選項可以顯示數據庫系統的詳細信息,如下:

  • gpinitstandby:gpinitstandby命令為 Greenplum 數據庫系統添加和/或初始化備用協調器主機

  • gpadmin@gpadmin0:~/gpdbtest/bin$ ./gpinitstandby --help COMMAND NAME: gpinitstandbyAdds and/or initializes a standby coordinator host for a Greenplum Database system.***************************************************** SYNOPSIS *****************************************************gpinitstandby { -s <standby_hostname> [-P <port>] | -r | -n } [-a] [-q] [-D] [-S <standby data directory>] [-l <logfile_directory>]gpinitstandby -? | -v...
  • gpactivatestandby:gpactivatestandby命令用于激活Standby節點,通常用于Master節點無法正常工作的情況。Standby節點被激活后會成為Greenplum數據庫集群中的Master節點,并接受客戶端的查詢請求。gpactivatestandby命令使用-d選項指明正在激活的Master節點數據目錄的絕對路徑。如果沒有-d選項,該命令會使用環境變量MASTER_DATA_DIRECTORY的值
  • gpinitstandby命令和gpactivatestandby命令的示例可以看一下之前的例子:GreenPlum的學習心得和知識總結(一)|GreenPlum數據庫源碼編譯安裝及學習資料匯總,點擊前往

  • gpconfiggpconfig命令用于設置、修改、查看數據庫里的Master、Segment和Mirror節點postgresql.conf配置文件中的配置參數。比如,以下命令把所有Segment節點的max_connection參數設為100,Master節點的max_connection參數設為10:
  • gpadmin@gpadmin0:~/gpdbtest/bin$ ./psql -d postgres psql (12beta2) Type "help" for help.postgres=# show max_connections ;max_connections -----------------250 (1 row)postgres=# \q gpadmin@gpadmin0:~/gpdbtest/bin$ ./gpconfig -c max_connections -v 100 -m 10 20220808:14:44:44:011346 gpconfig:gpadmin0:gpadmin-[INFO]:-completed successfully with parameters '-c max_connections -v 100 -m 10' gpadmin@gpadmin0:~/gpdbtest/bin$ gpadmin@gpadmin0:~/gpdbtest/bin$ ./psql -d postgres psql (12beta2) Type "help" for help.postgres=# show max_connections ;max_connections -----------------250 (1 row)postgres=# \q gpadmin@gpadmin0:~/gpdbtest/bin$

    接下來,重啟服務 如下:

    ./gpstop ./gpstartgpadmin@gpadmin0:~/gpdbtest/bin$ ./psql -d postgres psql (12beta2) Type "help" for help.postgres=# show max_connections ;max_connections -----------------10 (1 row)postgres=# \q gpadmin@gpadmin0:~/gpdbtest/bin$
  • gpdeletesystem:gpdeletesystem命令用于刪除一個Greenplum數據庫系統。執行該命令會終止所有Master和Segment節點上的postgres進程,然后刪除數據目錄。如下:
  • gpadmin@gpadmin0:~/gpdbtest/bin$ ./gpdeletesystem 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Option -d or --master-data-directory not set. Checking environment variable COORDINATOR_DATA_DIRECTORY 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Checking for database dump files... 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Getting segment information... 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Greenplum Instance Deletion Parameters 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:--------------------------------------- 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Greenplum Coordinator hostname = localhost 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Greenplum Coordinator data directory = /home/gpadmin/gpdata/master/gp-1 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Greenplum Coordinator port = 5432 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Greenplum Force delete of dump files = OFF 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Batch size = 32 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:--------------------------------------- 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:- Segment Instance List 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:--------------------------------------- 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Host:Datadir:Port 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/master/gp-1:5432 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/primary/gp0:40000 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/mirror/gp0:7000 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/primary/gp1:40001 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/mirror/gp1:7001 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/primary/gp2:40002 20220808:14:55:55:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-gpadmin0:/home/gpadmin/gpdata/mirror/gp2:7002Continue with Greenplum instance deletion? Yy|Nn (default=N): > Y 20220808:14:55:57:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-FINAL WARNING, you are about to delete the Greenplum instance 20220808:14:55:57:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-on coordinator host localhost.Continue with Greenplum instance deletion? Yy|Nn (default=N): > Y 20220808:14:56:02:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Stopping database... 20220808:14:56:04:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Deleting segments and removing data directories... 20220808:14:56:04:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Waiting for worker threads to complete... 20220808:14:56:04:012588 gpdeletesystem:gpadmin0:gpadmin-[INFO]:-Delete system successful. gpadmin@gpadmin0:~/gpdbtest/bin$

    export COORDINATOR_DATA_DIRECTORY=/home/gpadmin/gpdata/master/gp-1

    此外,Greenplum中還有很多命令,這里不再一一介紹,有興趣的可參考官方文檔,簡易說明如下:

    這里需要注意的是 上面的命令其實是python腳步,如下:

    gpadmin@gpadmin0:~/gpdbtest/bin$ ll gpdeletesystem -rwxr-xr-x 1 gpadmin gpadmin 13664 8月 1 22:16 gpdeletesystem* gpadmin@gpadmin0:~/gpdbtest/bin$ vim gpdeletesystem gpadmin@gpadmin0:~/gpdbtest/bin$

    總結

    以上是生活随笔為你收集整理的GreenPlum的学习心得和知识总结(三)|Greenplum数据库快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。