Postgres-XC/XL/X2分散式資料庫安裝
功能介紹
Postgres-XC/XL/X2是一個開源專案。它提供了一個多主同步、透明的PostgreSQL的叢集解決方案。不同於其它叢集工具的特點是它在寫入資料的時候具有很強的可擴充套件性,很好的引入了多主架構的叢集環境概念。多主意味著在寫入資料的時候不再受單一主節點的限制,在寫入速度上將有很好的提升。
Postgres-XC有三個主要的元件,即GTM(Global Transaction Manager)、Coordinator和Datanode。
其中GTM是最關鍵的一個元件,提供統一的事務處理管理和透明的元件控制。該事務管理技術是基於MVCC而來。任何一個Postgres-XC元件的處理管理都是基於單一的全域性狀態。
Coordinator是一個針對於應用程式的介面,猶如傳統PostgreSQL資料庫的後臺程序。coordinator不儲存實際的資料,只儲存關於資料的描述性資訊,實際的資料會被儲存在datanode上。
Datanode儲存實際的資料。表會在所有的datanode之間被分發或者被複制到所有的節點。由於datanode沒有全域性的資料庫檢視,所以它只會關心自己本地儲存的資料。coordinator對接收的語句進行檢查描述,然後重新組裝後在有關的datanode上執行。再接著根據需要將資料轉儲到其它的datanode上。
系統規劃
先準備5臺機器。1臺作GTM、1臺作GTM_Standby
作業系統資訊為:
[[email protected] ~]# cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[[email protected] ~]# uname -a
Linux localhost.localdomain 2.6.32-279.el6.x86_64 #1 SMP Fri Jun 22 12:19:21 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
安裝使用者: pgxc
安裝根目錄: /home/pgxc
IP資源分配如下:
功能 |
主機名 |
IP地址 |
Global Transaction Manager |
gtm |
192.168.18.164 |
Global Transaction Manager Standby |
gtm_standby |
192.168.18.165 |
Coordinator1/Datanode1/GTM Proxy |
cd1 |
192.168.18.166 |
Coordinator2/Datanode2/GTM Proxy |
cd2 |
192.168.18.167 |
Coordinator3/Datanode3/GTM Proxy |
cd3 |
192.168.18.168 |
安裝儲存目錄:
主機名 |
目錄 |
gtm |
~/gtm |
gtm_standby |
~/ gtm |
cd1 |
~/ coordinator ~/datanode ~/ coordinator_s ~/datanode_s |
cd2 |
~/ coordinator ~/datanode ~/ coordinator_s ~/datanode_s |
cd3 |
~/ coordinator ~/datanode ~/ coordinator_s ~/datanode_s |
埠規劃:
主機名 |
埠 |
gtm |
6666 |
gtm_standby |
6666 |
datanode1/datanode2_s |
15432 |
datanode2/datanode3_s |
15433 |
datanode3/datanode1_s |
15434 |
coordinator1/coordinator2_s |
5432 |
coordinator2/coordinator3_s |
5433 |
coordinator3/coordinator4_s |
5434 |
coordinator1 poolerPorts |
20010 |
coordinator2 poolerPorts |
20011 |
coordinator3 poolerPorts |
20012 |
datanode1 poolerPorts |
20013 |
datanode2 poolerPorts |
20014 |
datanode3 poolerPorts |
20015 |
分散式資料庫軟體資訊:postgres-xl-v9.2-src.tar
注意:分散式資料庫的環境搭建、安裝、維護等均在資料庫所在的主機上進行操作,即gtm、gtm_standby、cd1、cd2、cd3。
分散式資料庫環境準備 (所有主機)
1.安裝依賴包
在資料庫安裝前需要確認如下依賴包已經安裝,推薦在安裝作業系統時使用完全安裝,完全安裝將會包含postgres所需的依賴包。需要的依賴包如下:
yum install -y flex bison readline-devel zlib-devel openjade docbook-style-dsssl
2.新建pgxc使用者
因為分散式資料庫是不能再root使用者下執行的,所以在每臺機器上都新建pgxc使用者以及使用者組:
#groupadd pgxc ----新建使用者組
#useradd -g pgxc pgxc ----新建使用者
#passwd pgxc ----修改新使用者密碼(為了後續方便操作,我將所有密碼都設定為pgxc)
3.新增所有主機的域名資訊
因為在使用pgxc_ctl的配置資訊中會涉及,本次以192.168.18.160~168為例:
#vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.18.164 gtm
192.168.18.165 gtm_standby
192.168.18.166 cd1
192.168.18.167 cd2
192.168.18.168 cd3
並且,以GTM為例,在各自的主機上進行如下設定:
[[email protected] ~]# hostname gtm
[[email protected] ~]# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=gtm
4.建立信任關係
在所有機器上執行如下命令
#su - pgxc
$ssh-keygen -t rsa
---提示需要輸入時,全部回車即可,執行完該命令後將會生成id_rsa.pub檔案。
選擇其中一臺機器(任意一臺,以164為例),以pgxc使用者在其上執行如下命令,根據提示輸入密碼等資訊,生成authorized_keys檔案:
$cd ~/.ssh
$scp [email protected]:/home/pgxc/.ssh/id_rsa.pub /home/pgxc/.ssh/authorized_keys
$scp [email protected]:/home/pgxc/.ssh/id_rsa.pub /home/pgxc/.ssh/temp
$cat temp >> authorized_keys
$scp [email protected]:/home/pgxc/.ssh/id_rsa.pub /home/pgxc/.ssh/temp
$cat temp >> authorized_keys
$scp [email protected]:/home/pgxc/.ssh/id_rsa.pub /home/pgxc/.ssh/temp
$cat temp >> authorized_keys
$scp [email protected]:/home/pgxc/.ssh/id_rsa.pub /home/pgxc/.ssh/temp
$cat temp >> authorized_keys
把authorized_keys拷貝到其他主機上
$scp ./authorized_keys [email protected]:/home/pgxc/.ssh/
$scp ./authorized_keys [email protected]:/home/pgxc/.ssh/
$scp ./authorized_keys [email protected]:/home/pgxc/.ssh/
$scp ./authorized_keys [email protected]:/home/pgxc/.ssh/
進行如上操作後便建立起了所有機器間的信任關係,可以用如下方式進行測試信任關係是否建立成功,在pgxc使用者下執行如下命令:
$ssh [email protected] --如果不再提示輸入密碼,表示信任關係建立成功
分散式資料庫安裝(所有主機)
(1)安裝資料庫
目前本資料庫採用的是編譯安裝的方式(也可以使用rpm安裝)。
首先將postgres-xl-v9.2-src.tar.gz拷貝到指定目錄,然後進行解壓,下面以拷貝到/home/pgxc目錄下為例,在所有機器上進行如下操作:
[[email protected] ~]$ tar -zxf postgres-xl-v9.2-src.tar.gz
[[email protected] ~]$ cd postgres-xl
[[email protected] postgres-xl]$ ./configure --prefix=/home/pgxc/pgxl ---指定安裝路徑
[[email protected] postgres-xl]$ make
[[email protected] postgres-xl]$ make install
[[email protected] postgres-xl]$ cd contrib/
[[email protected] postgres-xl]$ make
[[email protected] postgres-xl]$ make install
(2)新增環境變數
在/home/pgxc/.bashrc中新增如下環境變數,新增完成後以pgxc使用者執行source命令使其立即生效。
export PGHOME=/home/pgxc/pgxl
export PGUSER=pgxc
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH
[[email protected] postgres-xl]$ source ~/.bashrc
(3)放開防火牆限制
使用root許可權,在所有資料庫伺服器上進行放開防火牆限制操作。
關閉防火牆的命令如下:
---永久關閉
#chkconfig iptables on --重啟後生效
--暫時關閉
#service iptables stop --重啟後失效
使用埠放通的方法如下:
[[email protected] ~]# vi /etc/sysconfig/iptables
增加如下資訊:
-A OUTPUT -p tcp --sport 5432 -j ACCEPT
-A INPUT -p tcp --dport 5432 -j ACCEPT
-A OUTPUT -p tcp --sport 5433 -j ACCEPT
-A INPUT -p tcp --dport 5433 -j ACCEPT
-A OUTPUT -p tcp --sport 5434 -j ACCEPT
-A INPUT -p tcp --dport 5434 -j ACCEPT
-A OUTPUT -p tcp --sport 15432 -j ACCEPT
-A INPUT -p tcp --dport 15432 -j ACCEPT
-A OUTPUT -p tcp --sport 15433 -j ACCEPT
-A INPUT -p tcp --dport 15433 -j ACCEPT
-A OUTPUT -p tcp --sport 15434 -j ACCEPT
-A INPUT -p tcp --dport 15434 -j ACCEPT
-A OUTPUT -p tcp --sport 20010 -j ACCEPT
-A INPUT -p tcp --dport 20010 -j ACCEPT
-A OUTPUT -p tcp --sport 20011 -j ACCEPT
-A INPUT -p tcp --dport 20011 -j ACCEPT
-A OUTPUT -p tcp --sport 20012 -j ACCEPT
-A INPUT -p tcp --dport 20012 -j ACCEPT
-A OUTPUT -p tcp --sport 20013 -j ACCEPT
-A INPUT -p tcp --dport 20013 -j ACCEPT
-A OUTPUT -p tcp --sport 20014 -j ACCEPT
-A INPUT -p tcp --dport 20014 -j ACCEPT
-A OUTPUT -p tcp --sport 20015 -j ACCEPT
-A INPUT -p tcp --dport 20015 -j ACCEPT
-A OUTPUT -p tcp --sport 20016 -j ACCEPT
-A INPUT -p tcp --dport 20016 -j ACCEPT
:wq!
[[email protected] ~]# service iptables restart
(4)配置節點資訊
選擇一個主機,以GTM為例,進入/home/pgxc/postgres-xl/contrib/pgxc_ctl目錄中,執行pgxc_ctl命令:
[[email protected]_standby pgxc_ctl]$ ./pgxc_ctl
Installing pgxc_ctl_bash script as /home/pgxc/pgxc_ctl/pgxc_ctl_bash.
ERROR: File "/home/pgxc/pgxc_ctl/pgxc_ctl.conf" not found or not a regular file. No such file or directory
Installing pgxc_ctl_bash script as /home/pgxc/pgxc_ctl/pgxc_ctl_bash.
Reading configuration using /home/pgxc/pgxc_ctl/pgxc_ctl_bash --home /home/pgxc/pgxc_ctl --configuration /home/pgxc/pgxc_ctl/pgxc_ctl.conf
Finished to read configuration.
******** PGXC_CTL START ***************
Current directory: /home/pgxc/pgxc_ctl
PGXC prepare ---執行該命令將會生成一份配置檔案模板
PGXC ^C
pgxc_ctl有自己的工作目錄,一般為$HOME/pgxc_ctl/。在該目錄下存有剛才生成的配置模板檔案pgxc_ctl.conf以及一些日誌資訊。
在pgxc_ctl.conf中配置需要安裝的節點資訊。
修改完成後,執行命令初始化所有資料庫:
$pgxc_ctl -c pgxc_ctl.conf init all --初始化完成後會自動啟動
初始化完成後需要重啟整個叢集:
$pgxc_ctl -c pgxc_ctl.conf stop all ---停止整個分散式叢集
$pgxc_ctl -c pgxc_ctl.conf start all --啟動整個分散式叢集
注意:初始化資訊如果返回錯誤,需要檢查錯誤原因,常見錯誤時埠衝突、網路不通等待,請仔細檢查。然後在所有主機上,停止執行的GTM程序和Postgres程序,並且刪除安裝檔案/home/pgxc/pgxc。修改配置檔案後重新初始化和重新啟動。
相關推薦
Postgres-XC/XL/X2分散式資料庫安裝
功能介紹 Postgres-XC/XL/X2是一個開源專案。它提供了一個多主同步、透明的PostgreSQL的叢集解決方案。不同於其它叢集工具的特點是它在寫入資料的時候具有很強的可擴充套件性,很好的引入了多主架構的叢集環境概念。多主意味著在寫入資料的時候不再受單一主節點的限制,在寫入速度上將有很好的提升。
在CentOS7.2上部署Postgres-XL分散式資料庫
1. 下載安裝包 2. 節點分類及說明 【GTM】 全域性事務控制節點,保證叢集資料的一致性,與Coordinator節點和Datanode節點不斷通訊,是整個叢集的核心節點,只存在一個,可以存在一個GTM Standby節點,對GTM實時備份。G
Amoeba:開源的分散式資料庫Porxy解決方案
來源:https://www.biaodianfu.com/amoeba.html 什麼是Amoeba? Amoeba(變形蟲)專案,該開源框架於2008年 開始釋出一款 Amoeba for Mysql軟體。這個軟體致力於MySQL的分散式資料庫前端代理層,它主要在應用層訪問MySQL的
MyCat:開源分散式資料庫中介軟體
為什麼需要MyCat? 雖然雲端計算時代,傳統資料庫存在著先天性的弊端,但是NoSQL資料庫又無法將其替代。如果傳統資料易於擴充套件,可切分,就可以避免單機(單庫)的效能缺陷。 MyCat的目標就是:低成本地將現有的單機資料庫和應用平滑遷移到“雲”端,解決資料儲存和業務規模迅速
分散式資料庫中CAP原理(CAP+BASE)
傳統的ACID 1)原子性(Atomicity): 事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都成功。 2)一致性(Consistency): 資料庫要一直處於一致的狀態,事務的執行不會改變資料庫原本的一致性約束。 3)獨立性(Isolation): 指併發的事務之
Skype for Business server 資料庫安裝
之前安裝了SFB 2015標準版,但是沒有安裝歸檔據庫,現在打算重新安裝。環境中安裝的是預設自帶的SQL EXPRESS。 繼續安裝嚮導,安裝SQL資料庫。但是在最後的時候遇到了問題。 安裝嚮導報錯 Command execution failed:SQL Server Agent is not sup
大資料HBase系列之HBase分散式資料庫部署
一、部署準備 1. 依賴框架 大資料Hadoop系列之Hadoop分散式叢集部署:https://blog.csdn.net/volitationLong/article/details/80285123 大資料Zookeeper系列之Zookeeper叢集部署:https://
相容MySQL的開源分散式資料庫SequoiaDB在去哪兒網的實踐
在開源資料庫大會(ODF)在京舉辦成功落幕之際,也許很多人依然沉浸在技術大餐中,因為這些技術正是每個從業者所關注甚至是自己的飯碗。只有這樣的技術會議,才會引起技術的碰撞以及共鳴。正如會議很大的一個亮點,“MariaDB/MySQL vs PostgreSQL世紀大決戰”,現場火藥味十足。本人
分散式資料庫的CAP原理和Redis詳解
關係型資料庫遵循ACID事務特性: 事務在英文中是transaction,和現實世界中的交易很類似,它有如下四個特性: 關係型資料庫遵循ACID特性 1、A (Atomicity) 原子性 原子性很容易理解,也就是說事務裡的所有操作要麼全部做完,要麼都不做,事務成功的條件是事務裡的所有操作都
2.0解析系列 | OceanBase 2.0——第一款支援“儲存過程”的原生分散式資料庫
OB君:本文是 “ OceanBase 2.0 技術解析系列” 的第八篇文章,今天我們來說說2.0版本最標誌性、最不得不提的新特性——儲存過程。在為數不多的原生分散式資料庫中,OceanBase 2.0是第一款支援儲存過程功能的產品。本文將為你深入剖析2.0中儲存過程的功能特性和實現機制。更多精彩歡迎關
hadoop-2.7.6 完全分散式的安裝
準備環境 CentOS 7 jdk1.8 (這裡建議使用1.8版本的jdk 連結:https://www.oracle.com/technetwork/ja
mysql 資料庫安裝使用
第一步下載: https://pan.baidu.com/s/1039nJ6d8i4jwuiZxqNa4tQ 第二步:解壓 解壓之後可以將該資料夾改名,放到合適的位置。我是將資料夾改名為MySQL Server 5.6,放到D:\Program Files\MySQL路徑中。當然你也可以放到
Kafka分散式叢集安裝
Kafka分散式叢集安裝 目錄 一、下載 二、安裝前提(zookeeper安裝) 三、安裝 2.1 上傳解壓縮 2.2 修改配置檔案 2.3 將kafka的安裝包分發到其他節點 2.4 建立軟連線 2.5 修改
華為雲分散式資料庫中介軟體DDM和開源MyCAT對比
前言 華為雲分散式資料庫中介軟體(Distributed Database Middleware)是解決資料庫容量、效能瓶頸和分散式擴充套件問題的中介軟體服務,提供分庫分表、讀寫分離、彈性擴容等能力,應對海量資料的高併發訪問場景,有效提升資料庫讀寫效能。 圖1:DDM產品介紹 DDM
Linux(centos7)作業系統下,MongoDB資料庫安裝
Y8 MongoDB 是一個基於分散式檔案儲存的資料庫。由 C++ 語言編寫。旨在為 WEB 應用提供可擴充套件的高效能資料儲存解決方案。MongoDB 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。 下面介紹Mongo
TiDB如何在分散式資料庫中組合OLTP和OLAP
TiDB功能 TiDB的核心功能包括彈性水平可伸縮性,具有ACID保證的分散式事務,高可用性以及實時事務資料的實時分析。讓我們來看看這些功能背後的平臺架構。TiDB平臺具有以下元件: TiDB:與Go相容的無狀態SQL層,內置於Go。 TiKV:一個分散式事務鍵值儲存,用Rust構建。(Ti
【資料庫安裝】雲主機mysql資料庫安裝教程
1.瀏覽器http://downloads.mysql.com/archives/community/登入mysql官網下載相關mysql版本,這裡咱們安裝常用mysql5.0版本如下 下載好msyql後,直接點選setup或者直接點選.msi檔案開始安裝 這裡咱們選擇custo
資料庫之redis篇(1)—— redis資料庫安裝,簡單使用
簡介 reids,由Salvatore Sanfilippo寫的一個高效能的key-value資料庫,並且它是非關係型資料庫,也就是沒有像mysql那樣多表連結操作,並且它是是完全開源免費的,遵守BSD協議。 reids 與其他 key - value 快取產品有以下三個特點: r
oracle11g資料庫安裝採坑記錄 Oracle the network adapter could not establish the connection
第一處坑: 解決方案: 原文:https://blog.csdn.net/yhj198927/article/details/49178279 1.開啟oracle的“Net Manager” 2.開啟“監聽程式” 3.開啟“資料庫服務”  
Hadoop的偽分散式的安裝及部署
文章目錄 需要的軟體及原始碼包 安裝JDK Hadoop的部署安裝 Hadoop的配置 Hadoop的使用 做Hadoop的偽分散式我們分為一下幾個步驟 需要的軟體及原始碼包 FileZil