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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

citus介绍和centos7安装部署和集群搭建

發布時間:2024/3/13 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 citus介绍和centos7安装部署和集群搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • citus
      • 簡介
      • citus主要特性
    • 部署
      • centos單節點版本部署啟動
      • centos集群部署啟動
        • 要在所有節點上執行的步驟
        • 要在協調器節點上執行的步驟
    • 常用語句
    • 遇到的問題
    • 參考

citus

簡介

  • Citus是PostgreSQL數據庫的分布式中間件,用以解決PostgreSQL橫向擴展問題,以支持更大的數據量、更大的寫入和查詢性能。
  • Citus由CitusData公司開發,目前已被微軟收購,并在Azure上提供Citus Cloud服務。Citus為開源軟件,經過約10年的發展,最近剛發布10.0版本,License為AGPL。
  • 不像pg-xc的原生分布式方案,Citus是以Extension的方式擴展PostgreSQL能力,不侵入修改PostgreSQL內核代碼,可以很容易和PostgreSQL的新版本配套適用,享受到內核版本演進帶來的好處
  • citus是一款基于PostgreSQL的開源分布式數據庫,自動繼承了PostgreSQL強大的SQL支持能力和應用生態(不僅僅是客戶端協議的兼容還包括服務端擴展和管理工具的完全兼容)

citus主要特性

  • PostgreSQL兼容
  • 水平擴展
  • 實時并發查
  • 快速數據加載
  • 實時增刪改查
  • 持分布式事務
  • 支持常用DDL

部署

centos單節點版本部署啟動

下載安裝,參考:https://docs.citusdata.com/en/stable/installation/single_node_rhel.html

  • 安裝 Citus 擴展(默認你已安裝PostgreSQL 13,如果沒安裝PostgreSQL 13,需要先安裝)
  • # 添加 Citus repository 這一步可能會因為網絡原因失敗,多來幾次 curl https://install.citusdata.com/community/rpm.sh | sudo bash# 安裝 Citus sudo yum install -y citus100_13
  • 初始化集群,讓我們在磁盤上創建一個新數據庫。為了方便使用 PostgreSQL Unix 域套接字連接,我們將使用postgres用戶(安裝PostgresQL時默認創建的)。
  • # 進入默認的postgres用戶操作 sudo su - postgres# include path to postgres binaries export PATH=$PATH:/usr/pgsql-13/bincd ~ # 創建文件夾 mkdir citus # 初始化數據庫到citus文件夾 initdb -D citus

    Citus 是 Postgres 的擴展。要告訴 Postgres 使用此擴展,您需要修改PostgresQL配置文件,將其添加到名為 shared_preload_libraries 的配置變量中:

    echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf
  • 啟動數據庫服務器。最后,我們將為新目錄啟動一個 PostgreSQL 實例:
  • # 啟動實例 pg_ctl -D citus -o "-p 9700" -l citus_logfile start # 關閉實例 pg_ctl -D citus -o "-p 9700" -l citus_logfile stop # 重啟實例 pg_ctl -D citus -o "-p 9700" -l citus_logfile restart

    在上面,您將 Citus 添加到shared_preload_libraries. 這讓它可以連接到 Postgres 的一些深層部分,交換查詢計劃器和執行器。在這里,我們加載 Citus 面向用戶的一面(例如您即將調用的函數):

    psql -p 9700 -c "CREATE EXTENSION citus;"
  • 驗證安裝是否成功
  • psql -p 9700 -c "select citus_version();"

    centos集群部署啟動

    集群版本和單節點差不多,都是先安裝citus,改配置,增加extension,只是最后需要在cn節點增加cn節點和work節點配置。
    安裝參考:https://docs.citusdata.com/en/stable/installation/multi_node_rhel.html

    要在所有節點上執行的步驟

  • 添加倉庫
  • # Add Citus repository for package manager curl https://install.citusdata.com/community/rpm.sh | sudo bash
  • 安裝Citus,并初始化一個數據庫(默認你已安裝PostgreSQL 13,如果沒安裝PostgreSQL 13,需要先安裝)
  • # install PostgreSQL with Citus extension sudo yum install -y citus100_13 # initialize system database (using RHEL 6 vs 7 method as necessary) sudo service postgresql-13 initdb || sudo /usr/pgsql-13/bin/postgresql-13-setup initdb # preload citus extension echo "shared_preload_libraries = 'citus'" | sudo tee -a /var/lib/pgsql/13/data/postgresql.conf
  • 配置連接和認證
    在啟動數據庫之前,讓我們更改其訪問權限。默認情況下,數據庫服務器僅偵聽本地主機上的客戶端。作為此步驟的一部分,我們指示它偵聽所有 IP 接口,然后配置客戶端身份驗證文件以允許來自本地網絡的所有傳入連接。
  • sudo vi /var/lib/pgsql/13/data/postgresql.conf# Uncomment listen_addresses for the changes to take effect listen_addresses = '*' sudo vi /var/lib/pgsql/13/data/pg_hba.conf# Allow unrestricted access to nodes in the local network. The following ranges # correspond to 24, 20, and 16-bit blocks in Private IPv4 address spaces. # 10.0.0.0/8 是postgres集群服務器ip段 host all all 10.0.0.0/8 trust# Also allow the host unrestricted access to connect to itself host all all 127.0.0.1/32 trust host all all ::1/128 trust
  • 啟動數據庫服務器,創建Citus擴展
  • # start the db server sudo service postgresql-13 restart # and make it start automatically when computer does sudo chkconfig postgresql-13 on

    您必須將 Citus 擴展添加到要在集群中使用的每個數據庫(如果你有多個庫)。以下示例將擴展添加到名為postgres的默認數據庫。

    sudo -i -u postgres psql -c "CREATE EXTENSION citus;"

    要在協調器節點上執行的步驟

    以上步驟在所有postgres服務器執行,安裝好citus,設置extension。下面的步驟,僅在協調器節點上執行。

  • 設置本節點為協調節點 cn
  • # 設置協調節點cnSELECT citus_set_coordinator_host('192.168.1.76');
  • 把其他節點設置為工作節點 work
  • SELECT * from master_add_node('192.168.1.73', 5432); SELECT * from master_add_node('192.168.1.74', 5432);
  • 驗證集群是否成功
  • # 查看所有節點select * from pg_dist_node;# 查看工作節點SELECT * FROM master_get_active_worker_nodes();

    常用語句

    # shell命令# 將postgres的bin目錄加入到pathexport PATH=$PATH:/usr/pgsql-13/bin# 重啟 citus 擴展pg_ctl -D citus -o "-p 9700" -l citus_logfile restart# 查看postgres版本(-c執行SQL查看)psql -c "select version();"# 查看citus版本psql -p 9700 -c "select citus_version();"# 查看端口號占用netstat -lnp|grep 9700# 重啟postgresqlsystemctl restart postgresql-13# 進入 postgres 用戶sudo su - postgres # 進入postgres命令窗口,可選:-p 端口號 -h ip地址psql psql -h 192.168.1.74 -p 5430# sql 語句# 查看postgres版本select version();# 創建citus擴展CREATE EXTENSION citus;# 查看citus版本select citus_version();# 查看節點select * from pg_dist_node;# 查看工作節點SELECT * FROM master_get_active_worker_nodes();# 設置協調節點cnSELECT citus_set_coordinator_host('192.168.1.74');# 增加節點 SELECT * from master_add_node('192.168.1.73', 5432);# 刪除節點 SELECT master_remove_node('192.168.1.74', '9700');# 查詢有哪些表select tablename from pg_tables where tablename not like 'pg_%';# 查詢有哪些表select tablename from pg_tables where tablename like 'ads%';# 刪除extensiondrop extension citus cascade;

    遇到的問題

  • citus無法yum安裝源
  • https://repos.citusdata.com/community/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 302 - Found Trying other mirror. failure: repodata/repomd.xml from citusdata_community: [Errno 256] No more mirrors to try. https://repos.citusdata.com/community/el/7/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 302 - Found

    網絡問題,多來幾次

  • pg_ctl: command not found
  • 將postgres的bin目錄加入path:export PATH=$PATH:/usr/pgsql-13/bin,再去執行pg_ctl

  • extension 無法刪除,或者database、table無法刪除
  • RROR: cannot drop extension citus because other objects depend on it HINT: Use DROP ... CASCADE to drop the dependent objects too.

    確定不要的話,可以關聯刪除,全部刪掉。根據提示直接加上 cascade drop extension citus cascade;

    參考

    • 使用文檔:多租戶應用
    • 安裝地址: 單節點安裝部署
    • 安裝地址:多節點安裝部署

    總結

    以上是生活随笔為你收集整理的citus介绍和centos7安装部署和集群搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

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