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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

文章目錄

    • citus
      • 簡(jiǎn)介
      • citus主要特性
    • 部署
      • centos單節(jié)點(diǎn)版本部署啟動(dòng)
      • centos集群部署啟動(dòng)
        • 要在所有節(jié)點(diǎn)上執(zhí)行的步驟
        • 要在協(xié)調(diào)器節(jié)點(diǎn)上執(zhí)行的步驟
    • 常用語(yǔ)句
    • 遇到的問題
    • 參考

citus

簡(jiǎn)介

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

citus主要特性

  • PostgreSQL兼容
  • 水平擴(kuò)展
  • 實(shí)時(shí)并發(fā)查
  • 快速數(shù)據(jù)加載
  • 實(shí)時(shí)增刪改查
  • 持分布式事務(wù)
  • 支持常用DDL

部署

centos單節(jié)點(diǎn)版本部署啟動(dòng)

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

  • 安裝 Citus 擴(kuò)展(默認(rèn)你已安裝PostgreSQL 13,如果沒安裝PostgreSQL 13,需要先安裝)
  • # 添加 Citus repository 這一步可能會(huì)因?yàn)榫W(wǎng)絡(luò)原因失敗,多來(lái)幾次 curl https://install.citusdata.com/community/rpm.sh | sudo bash# 安裝 Citus sudo yum install -y citus100_13
  • 初始化集群,讓我們?cè)诖疟P上創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)。為了方便使用 PostgreSQL Unix 域套接字連接,我們將使用postgres用戶(安裝PostgresQL時(shí)默認(rèn)創(chuàng)建的)。
  • # 進(jìn)入默認(rèn)的postgres用戶操作 sudo su - postgres# include path to postgres binaries export PATH=$PATH:/usr/pgsql-13/bincd ~ # 創(chuàng)建文件夾 mkdir citus # 初始化數(shù)據(jù)庫(kù)到citus文件夾 initdb -D citus

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

    echo "shared_preload_libraries = 'citus'" >> citus/postgresql.conf
  • 啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器。最后,我們將為新目錄啟動(dòng)一個(gè) PostgreSQL 實(shí)例:
  • # 啟動(dòng)實(shí)例 pg_ctl -D citus -o "-p 9700" -l citus_logfile start # 關(guān)閉實(shí)例 pg_ctl -D citus -o "-p 9700" -l citus_logfile stop # 重啟實(shí)例 pg_ctl -D citus -o "-p 9700" -l citus_logfile restart

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

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

    centos集群部署啟動(dòng)

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

    要在所有節(jié)點(diǎn)上執(zhí)行的步驟

  • 添加倉(cāng)庫(kù)
  • # Add Citus repository for package manager curl https://install.citusdata.com/community/rpm.sh | sudo bash
  • 安裝Citus,并初始化一個(gè)數(shù)據(jù)庫(kù)(默認(rèn)你已安裝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
  • 配置連接和認(rèn)證
    在啟動(dòng)數(shù)據(jù)庫(kù)之前,讓我們更改其訪問權(quán)限。默認(rèn)情況下,數(shù)據(jù)庫(kù)服務(wù)器僅偵聽本地主機(jī)上的客戶端。作為此步驟的一部分,我們指示它偵聽所有 IP 接口,然后配置客戶端身份驗(yàn)證文件以允許來(lái)自本地網(wǎng)絡(luò)的所有傳入連接。
  • 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集群服務(wù)器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
  • 啟動(dòng)數(shù)據(jù)庫(kù)服務(wù)器,創(chuàng)建Citus擴(kuò)展
  • # start the db server sudo service postgresql-13 restart # and make it start automatically when computer does sudo chkconfig postgresql-13 on

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

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

    要在協(xié)調(diào)器節(jié)點(diǎn)上執(zhí)行的步驟

    以上步驟在所有postgres服務(wù)器執(zhí)行,安裝好citus,設(shè)置extension。下面的步驟,僅在協(xié)調(diào)器節(jié)點(diǎn)上執(zhí)行。

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

    常用語(yǔ)句

    # shell命令# 將postgres的bin目錄加入到pathexport PATH=$PATH:/usr/pgsql-13/bin# 重啟 citus 擴(kuò)展pg_ctl -D citus -o "-p 9700" -l citus_logfile restart# 查看postgres版本(-c執(zhí)行SQL查看)psql -c "select version();"# 查看citus版本psql -p 9700 -c "select citus_version();"# 查看端口號(hào)占用netstat -lnp|grep 9700# 重啟postgresqlsystemctl restart postgresql-13# 進(jìn)入 postgres 用戶sudo su - postgres # 進(jìn)入postgres命令窗口,可選:-p 端口號(hào) -h ip地址psql psql -h 192.168.1.74 -p 5430# sql 語(yǔ)句# 查看postgres版本select version();# 創(chuàng)建citus擴(kuò)展CREATE EXTENSION citus;# 查看citus版本select citus_version();# 查看節(jié)點(diǎn)select * from pg_dist_node;# 查看工作節(jié)點(diǎn)SELECT * FROM master_get_active_worker_nodes();# 設(shè)置協(xié)調(diào)節(jié)點(diǎn)cnSELECT citus_set_coordinator_host('192.168.1.74');# 增加節(jié)點(diǎn) SELECT * from master_add_node('192.168.1.73', 5432);# 刪除節(jié)點(diǎn) 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無(wú)法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

    網(wǎng)絡(luò)問題,多來(lái)幾次

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

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

    確定不要的話,可以關(guān)聯(lián)刪除,全部刪掉。根據(jù)提示直接加上 cascade drop extension citus cascade;

    參考

    • 使用文檔:多租戶應(yīng)用
    • 安裝地址: 單節(jié)點(diǎn)安裝部署
    • 安裝地址:多節(jié)點(diǎn)安裝部署

    總結(jié)

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

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。