搭建redis集群以及主从

⦁ Nginx 安装
Yum安装方式
⦁ 跳转目录 # cd /etc/yum.repos.d

⦁ 创建临时空白文件 # sudo vi nginx

:wq 保存。然后可以看到文件已被创建

⦁ 复制重命名yum文件 # cp nginx nginx.repo

⦁ 删除临时文件 #sudo rm –rf nginx

⦁ Yum文件分配管理员权限 # sudo chmod 777 nginx.repo
⦁ 编辑nginx.repo 文件 # vi nginx.repo

配置内容如下:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/rhel/7/x86_64/
gpgcheck=0
enabled=1
注意: 不同的linux系统版本切换相应的yum源(http://nginx.org/packages/)

http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.12.1-1.el7.ngx.x86_64.rpm

⦁ 清理文件 #yum clean all

#yum makecache

⦁ 安装nginx #sudo yum install –y nginx

⦁ 查看nginx目录 # whereis nginx

⦁ 切换到nginx配置文件目录 # cd /etc/nginx/conf.d

⦁ Nginx配置文件分配管理员权限 #sudo chmod 777 default.conf
⦁ 编辑nginx配置文件 # vi default.conf (此处配置nginx的端口、首页等相关信息)

⦁ 启动nginx #sudo nginx

到此,nginx安装完成
⦁ Redis 安装
Yum install redis

设置reids 访问密码等其他配置信息
1.进入redis客户端 redis-cli

2.查看是否设置了访问密码

显然是没有设置访问密码
3.开始设置访问密码 config set requirepass pw

4.验证访问密码是否设置成功,此处已然是设置成功了

5.启动redis sudo redis-server /etc/redis.conf

⦁ Redis集群安装部署
⦁ 下载reids
进入Redis网站下载需要的版本(redis下载网址:http://download.redis.io/releases)下文redis 采用 redis-5.0.3 版本。一台服务器多节点部署。不能少于3各节点
⦁ 解压
tar –axvf redis-5.0.3.tar.gz
⦁ 编译安装
进入解压目录使用make && make install命令编译
⦁ 创建节点
再解压目录创建redis_cluster(任意)文件夹,再创建节点的文件夹,将redis.conf复制到节点文件夹中。修改redis.conf配置参数如下:
port 6400
#端口
bind 0.0.0.0
#默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes

redis后台运行

dir /soft/redis_cluster/redis6400
pidfile /var/run/redis_6400.pid

pidfile文件对应端口

cluster-enabled yes

开启集群

cluster-config-file nodes_6400.conf
#集群的配置 配置文件首次启动自动生成
cluster-node-timeout 15000
#请求超时 默认15秒,可自行设置
appendonly yes
appendfilename “appendonly6400.aof”

logfile redis6400.log
#是否需要每个节点都可用,集群才算可用,关闭
cluster-require-full-coverage no
⦁ 启动集群节点
使用./src/redis-server redis_cluster/node1/redis.conf命令启动各节点(和启动单节点一样)
⦁ 查看集群节点
使用redis-cli –p 7001 cluster node命令查看所有集群节点都被发现,如果未发现集群其他节点则通过 redis-cli –p 7001 cluster meet host port 命令去握手集群的其他节点。如果还发现不了,查看防火墙是否端口被屏蔽了。(firewall-cmd --zone=public --add-port=80/tcp –permanent:添加防火墙端口;firewall-cmd –reload:重启防火墙)。
⦁ 查看集群节点主从
通过redis-cli –p 7003 luster replicate nodeid命令(这里的7003是从节点,nodeid是主节点)
⦁ 查看集群节点slots
编写条件slots的脚本,内容如下:
#!/bin/bash/
start=$1
end=$2
port=$3
host=$4
for slot in seq ${start} ${end}
do
echo “slot:${slot}”
/soft/redis_cluster/redis-5.0.5/src/redis-cli -h ${host} -p ${port} cluster addslots ${slot}
Done
Redis cluster 一共有16383个槽,现在分配到三个主节点上。运行slots脚本分配slots;最后通过redis-cli –p 7001 cluster slots命令查看slots的分配情况。
Redis-cli –p 7001 cluster info 命令查看集群的状态。
⦁ Gitlab 安装
⦁ 使用国内镜像安装
创建vi /etc/yum.repos.d/gitlab-ce.repo 文件
[gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6/
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
⦁ yum install gitlab-ce
⦁ vi /etc/gitlab/gitlab.rb
⦁ gitlab-ctl reconfigure
⦁ gitlab-ctl restart
⦁ gitlab-ctl start
http://172.22.9.4:8060

我这里使用的是centos 7 64bit,我试过centos 6也是可以的!

  1. 安装依赖软件
    yum -y install policycoreutils openssh-server openssh-clients postfix
    2.设置postfix开机自启,并启动,postfix支持gitlab发信功能
    systemctl enable postfix && systemctl start postfix
    3.下载gitlab安装包,然后安装
    centos 6系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el6
    centos 7系统的下载地址:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
    我的是centos7,所以我在https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7中找了个gitlab8.0.0版本,建议下载一个比较新的版本,我这里选了一个比较旧的版本仅仅是实验
    下载rpm包并安装:
    wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
    rpm -i gitlab-ce-8.0.0-ce.0.el7.x86_64.rpm
    4.修改gitlab配置文件指定服务器ip和自定义端口:
    vim /etc/gitlab/gitlab.rb
    退出并保存
    ps:注意这里设置的端口不能被占用,默认是8080端口,如果8080已经使用,请自定义其它端口,并在防火墙设置开放相对应得端口
    5.重置并启动GitLab
    执行:
    gitlab-ctl reconfigure
    gitlab-ctl restart

初始账户: root 密码: 5iveL!fe
⦁ Jdk 安装
⦁ 解压缩jdk #tar -zxvf jdk-8u162-linux-x64.tar.gz
⦁ 设置jdk环境变量 #vim /etc/profile

添加如下内容:JAVA_HOME根据实际目录来
export JAVA_HOME=/usr/java/jdk1.8.0.162
export JRE_HOME= J A V A H O M E / j r e e x p o r t C L A S S P A T H = {JAVA_HOME}/jre export CLASSPATH= JAVAHOME/jreexportCLASSPATH={JAVA_HOME}/lib: J R E H O M E / l i b e x p o r t P A T H = { JRE_HOME }/lib export PATH= JREHOME/libexportPATH={JAVA_HOME}/bin:$PATH
⦁ 重新加载jdk配置 #source /etc/profile
⦁ 查看jdk安装情况 # java –version

⦁ RabbitMQ 安装
⦁ 加载rabbitmq 依赖源#rpm -Uvh https://mirrors.ustc.edu.cn/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
⦁ 安装rabbitmq依赖 #sudo yum install erlang

⦁ 下载 rabbitmq yum 源 #wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm

⦁ 安装rabbitmq # sudo yum install -y rabbitmq-server-3.6.15-1.el7.noarch.rpm

⦁ # sudo rabbitmq-plugins enable rabbitmq_management 启用web管理页面
⦁ # cd /etc/rabbitmq 如果没有权限则#sudo chmod 777 rabbitmq 后重新进入文件夹
⦁ # vi rabbitmq.config 创建配置文件
内容如下:
[
{
rabbit,
[
{tcp_listeners,[8062]},
{loopback_users, []}
]
},
{
rabbitmq_management,
[
{
listener,
[
{port,18062},
{ssl,false},
{ip,”172.22.9.4”}
]
}
]
}
].

⦁ # rabbitmq-server start 启动mq

http⦁ ?/172.22.9.4:18062/ 默认用户/密码guest/guest

⦁ #sudo rabbitmqctl stop 停止mq
⦁ 添加 Virtual Hosts :
rabbitmqctl add_vhost
⦁ 删除 Virtual Hosts :
rabbitmqctl delete_vhost
⦁ 添加 Users :
rabbitmqctl add_user
rabbitmqctl set_user_tags …
rabbitmqctl set_permissions [-p ]
⦁ 删除 Users :
delete_user
⦁ user 有5种 tags :
management :访问 management plugin;
policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
administrator :一切权限;
None :无配置

⦁ RabbitMQ集群安装
⦁ 在各节点服务器上安装rabbitmq(单节点MQ安装方法)
在各节点服务上安装好rabbitmq后先都不要启动,在主节点服务复制配置文件/usr/share/doc/rabbitmq-server-3.6.15/rabbitmq.config.example到/etc/rabbitmq/目录中改名成为rabbitmq.config编辑mq的相关端口,然后启动主节点mq服务,再启动mq节点启用web管理页配置
⦁ 同步erlangcookie文件
Rabbitmq的集群是依附于erlang的集群来工作的,所以必须先构建起erlang的集群景象。Erlang的集群中各节点是经由过程一个magic cookie来实现的,这个cookie存放在/var/lib/rabbitmq/.erlang.cookie中,文件是400的权限。所以必须保证各节点cookie一致,不然节点之间就无法通信。命令:scp /var/lib/rabbitmq/.erlang.cookie user@host: /var/lib/rabbitmq
⦁ 子节点加入集群主节点
加入主几点命令:rabbitmqctl join_cluster --ram rabbit@mq01 //加入到磁盘节点(–ram 表示内存节点,默认是磁盘节点;rabbit@mq01:主节点服务器);如果启动报错:Error: unable to connect to node rabbit@localhost: nodedown。1)通讯端口是否被防火墙拦截(4369,25672及自定义端口);2)如果端口都是正常的科通过以下三个命令重试:1.systemctl enable rabbitmq-server.service systemctl start;2.rabbitmq-server.service;3.rabbitmqctl start_app。如果假如主节点是子节点是启动的那么先关闭子节点服务命令如下:rabbitmqctl stop_app.
⦁ Haproxy负载均衡
安装haproxy:yum install –y haproxy安装完成后修改相关配置(进入/etc/haproxy/haproxy.cfg)具体配置修改如下
listen pricate_monitoring ## 服务器端连接超时时间
bind 0.0.0.0:8100 #监听端口
mode http
option httplog # 采用http日志格式
stats enable
stats uri /stats #设置haproxy监控地址为http://localhost:8100/stats
stats refresh 30s #统计页面自动刷新时间
stats auth guest:guest #添加用户名密码认证
backend app
balance roundrobin
server app1 127.0.0.1:5001 check
server app2 127.0.0.1:5002 check
server app3 127.0.0.1:5003 check
server app4 127.0.0.1:5004 check
#####################我把RabbitMQ的管理界面也放在HAProxy后面了###############################
listen rabbitmq_admin
bind 0.0.0.0:18063
server rabbitnode1 192.168.132.247:18062
server rabbitnode2 192.168.132.248:18062
server rabbitnode3 192.168.132.249:18062
listen rabbitmq_cluster
bind 0.0.0.0:8063
mode tcp
option tcplog
option clitcpka
balance roundrobin
#负载均衡算法(#banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
server rabbitmqnode1 192.168.132.247:8062 check inter 5s rise 2 fall 3
#check inter 2000 是检测心跳频率,rise 2是2次正确认为服务器可用,fall 3是3次失败认为服务器不可用
server rabbitmqnode2 192.168.132.248:8062 check inter 5s rise 2 fall 3
server rabbitmqnode3 192.168.132.249:8062 check inter 5s rise 2 fall 3
启动haproxy:haproxy –f 配置文件路径
重启haproxy:service haproxy restart

⦁ 启动/停止产品
⦁ # cd /home/crmuser/product 进入产品文件夹
⦁ # sh startcenter.sh 启动相关应用(此处以center为例)
⦁ # sh stopcenter.sh 停止相关应用(此处以center为例)
⦁ 产品ui路径
/usr/share/nginx/html/crm_ui
⦁ 常用命令格式
注意:如果权限不足请在命令行首加 sudo
⦁ 删除文件 rm –rf 文件/目录名
⦁ 复制文件 cp 源文件路径 目标路径
⦁ 编辑文件 vi 文件名称
⦁ 推出vi编辑
按ESC键 跳到命令模式
⦁ :w 保存,不退出vi
⦁ :w! 强制保存,不退出vi
⦁ :wq 保存文件,并退出vi
⦁ :wq! 强制保存文件,并退出vi
⦁ :q 不保存文件
⦁ :q! 不保存文件,强制退出vi
⦁ :e! 放弃所有修改,从上次保存文件开始再编辑
⦁ 查看进程 ps aux|grep 软件服务名
⦁ 杀进程 kill -9 pid
⦁ 添加防火墙端口 firewall-cmd --zone=public --add-port=80/tcp –permanent
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
⦁ 解压缩文件 tar -zxvf 文件名.tar.gz
⦁ 查看软件是否安装 rpm -qa | grep 软件服务名(例如:查看nginx是否安装使用rpm -qa | grep nginx)
⦁ 解压缩安装编译 make & make install
⦁ 查询软件安装路径 whereis nginx
⦁ Yum卸载软件 yun remove nginx
⦁ Amore服务器信息
Vpn CN0000952 CN0000952@
堡垒机 qipeng Pass@1234
跳板机
跳板机管理员:User:arvato密码:YcYTgP1a
⦁ vacuumdb -d yourdbname -f -z -v 来清理数据库。
⦁ jenkins 安装
⦁ 下载jenkins包 下载地址 http://pkg.jenkins-ci.org/redhat-stable
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm
⦁ 安装jenkins
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm
⦁ 配置jenkins端口
vi /etc/sysconfig/jenkins
⦁ 启动/停止/重启jenkins
service jenkins start/stop/restart
⦁ 打开jenkins
⦁ Postgresql-xl 集群安装部署
⦁ 组件
⦁ Global Transaction Monitor (GTM)
全局事务管理器,确保群集范围内的事务一致性。 GTM负责发放事务ID和快照作为其多版本并发控制的一部分。集群可选地配置一个备用GTM,以改进可用性。此外,可以在协调器间配置代理GTM, 可用于改善可扩展性,减少GTM的通信量
⦁ GTM Standby
GTM的备节点,在pgxc,pgxl中,GTM控制所有的全局事务分配,如果出现问题,就会导致整个集群不可用,为了增加可用性,增加该备用节点。当GTM出现问题时,GTM Standby可以升级为GTM,保证集群正常工作
⦁ GTM-Proxy
GTM需要与所有的Coordinators通信,为了降低压力,可以在每个Coordinator机器上部署一个GTM-Proxy
⦁ Coordinator
协调员管理用户会话,并与GTM和数据节点进行交互。协调员解析,并计划查询,并给语句中的每一个组件发送下一个序列化的全局性计划。 为节省机器,通常此服务和数据节点部署在一起
⦁ Data Node
数据节点是数据实际存储的地方。数据的分布可以由DBA来配置。为了提高可用性,可以配置数据节点的热备以便进行故障转移准备。
⦁ 服务器规划
主机名 地址 角色 端口号 节点名称 数据目录
Gtm 192.168.132.250 GTM 6666 gtm /home/postgres/DATA/gtm
Datanode1 192.168.132.251 Coordinator 5432 coord1 /home/postgres/DATA/coord1
Datanode 5433 Datanode1 /home/postgres/DATA/dn1
GTM-Proxy 6666
Datanode2 192.168.132.252 Coordinator 5432 coord2 /home/postgres/DATA/coord2
Datanode 5433 Datanode2 /home/postgres/DATA/dn2
GTM-Proxy 6666

⦁ 安装集群
⦁ 依赖安装:请按一下步骤进行 (集群所有机器都需要安装)
sudo apt-get install make flex bison libreadline6-dev openjade docbook-dsssl;
⦁ 创建postgres账号(集群所有机器都需要进行如下操作)
添加用户:sudo adduser postgres
修改用户密码:sudo passwd postgres
切换用户:su postgres
创建目录:mkdir ~/.ssh
赋予拥有者有读、写、执行权限 : chmod 700 ~/.ssh
⦁ 让GTM可以免密码登陆所有集群节点(此处只需在gtm机器操作即可)
su postgres
ssh-keygen -t rsa 注意:弹出框,一顿enter健下去。但是如果你修改了ip,操作时,要将整个 ~/.ssh 删除,然后重新操作
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
拥有者读写权限:chmod 600 ~/.ssh/authorized_keys
给集群所有节点传输密钥 scp ~/.ssh/authorized_keys postgres@datanode1:~/.ssh/;scp ~/.ssh/authorized_keys postgres@datanode2:~/.ssh/
分别测试是否可以免密码登录,有反馈时间信息就ok。:ssh postgres@datanode1 date
⦁ 安装postgresxl(所有集群机器)。https://www.postgres-xl.org/,去此官网下载postgres-xl,目前最新发行版10R.1.
⦁ 解压:tar -zxvf postgres-xl-10r1.1.tar.tar
⦁ ./configure --prefix=/home/postgres/10r1.1/
⦁ Make 如果此步骤报缺少包,请安装相关包即可
⦁ Make install
⦁ su postgres 进入postgres 的home目录
⦁ 配置用户环境变量vi .bashrc
文件末尾添加如下配置
export PGHOME=/home/postgres/10r1.1
export LD_LIBRARY_PATH= P G H O M E / l i b : PGHOME/lib: PGHOME/lib:LD_LIBRARY_PATH
export PATH= P G H O M E / b i n : PGHOME/bin: PGHOME/bin:PATH
⦁ 使生效:source .bashrc
⦁ 测试:echo $PGHOME
⦁ postgresxl配置(所有集群机器)
切回普通用户下:cd /home/postgres
创建我们规划的数据目录:mkdir DATA
赋予权限:sudo chown -R postgres:postgres /home/postgres
⦁ 执行GTM(在gtm机器上,切换到postgres用户下执行初始化:)
su postgres
初始化全局事物管理器: initgtm -Z gtm -D /home/postgres/DATA/gtm
修改GTM配置文件:vi /home/postgres/DATA/gtm/gtm.conf
修改如下地方:
nodename = ‘gtm’ #节点名称,任意指定,不能与其他节点重复
listen_addresses = ‘*’ #GTM监听的ip地址,*代表监听所有的集群ip
port =6666 #gtm监控的端口号
startup = ACT #act代表gtm是主库,如果是standy,设置为’STANDBY’
⦁ 初始化GTM Proxy(在每个节点上都安装了GTM Proxy,先于datanode1上执行)
su – postgres
初始化gtm_proxy:initgtm -Z gtm_proxy -D /home/postgres/DATA/gtm_proxy --nodename gtm_proxy1
注意:如果 --nodename gtm_proxy1 这部分执行失败,去掉即可 ,我是在配置文件中直接配置的
vim /home/postgres/DATA/gtm_proxy/gtm_proxy.conf
nodename=‘gtm_proxy1’
port=6666
gtm_host=‘pg1’
gtm_port=6666
⦁ 初始化Coordinators(在每个节点上都安装了Coordinator,先于datanode1上执行)
su – postgres
初始化Coordinator:initdb -D /home/postgres/DATA/coord --nodename coord1 -E UTF8 --locale=C -U postgres –W
注意执行这句时会弹出:”Enter new superuser password: “,请输入密码,我这里使用的是123456
vi /home/postgres/DATA/coord/postgresql.conf
找到如下内容进行修改

- Connection Settings -

listen_addresses = ‘*’
port = 5432
max_connections = 100

DATA NODES AND CONNECTION POOLING

#----------------------------------
pooler_port = 6667
max_pool_size = 100

GTM CONNECTION

#--------------------------
gtm_host = ‘pg1’ #gtm所在的主机地址
gtm_port = 6666 #gtm配置中,gtm端口号配置为6666
pgxc_node_name = ‘coord1’
设置pg_hba.conf文件: vi /home/postgres/DATA/coord/pg_hba.conf
找到如下内容进行修改:

“local” is for Unix domain socket connections only

local all all trust

IPv4 local connections:

host all all 0.0.0.0/0 trust

IPv6 local connections:

host all all ::1/128 trust
⦁ 初始化Datanode(在每个节点上都安装了datanode,先于datanode1上执行)
pg2中初始化dn1,要在postgres用户下执行,并切换至家目录:su – postgres
初始化datanode:initdb -D /home/postgres/DATA/dn --nodename dn1 -E UTF8 --locale=C -U postgres –W
注意执行这句时会弹出:”Enter new superuser password: “,请输入自己想要的的密码,我这里统一使用123456
vi /home/postgres/DATA/dn/postgresql.conf
找到如下内容进行修改:

- Connection Settings -

listen_addresses = ‘*’
port = 5433
max_connections = 100

DATA NODES AND CONNECTION POOLING

#----------------------------------
pooler_port = 6668
max_pool_size = 100

GTM CONNECTION

#--------------------------
gtm_host = ‘pg1’ #gtm所在的主机地址
gtm_port = 6666 #gtm配置中,gtm端口号配置为6666
pgxc_node_name = ‘coord1’
配置pg_hba.conf:vi /home/postgres/DATA/dn/pg_hba.conf
找到如下内容进行修改:

“local” is for Unix domain socket connections only

local all all trust

IPv4 local connections:

host all all 0.0.0.0/0 trust

IPv6 local connections:

host all all ::1/128 trust
⦁ 启动Postgres-XL集群
集群启动顺序是GTM GTM Standby GTM-Proxy Datanodes Coordinators
启动GTM gtm_ctl start -Z gtm -D /home/postgres/DATA/gtm 注意如果出现:server starting,则表示成功!!!!
启动GTM-Proxy gtm_ctl start -Z gtm_proxy -D /home/postgres/DATA/gtm_proxy 注意如果出现:server starting,则表示成功!!!!
启动 datanode pg_ctl start -Z datanode -D /home/postgres/DATA/dn 注意如果出现:cluster monitor started,则表示成功!!!!
启动coordinators pg_ctl start -Z coordinator -D /home/postgres/DATA/coord 注意如果出现:cluster monitor started,则表示成功!!!!
⦁ 配置集群
以postgres用户下进入datanode1,并进入数据库。规划中coord1配置端口号是5432:psql -p 5432
进入数据库后,我们先查询集群节点,并写入我们规划的集群,并使它重新加载生效
postgres=# select * from pgxc_node;
postgres=# alter node coord1 with (type=coordinator,host=‘pg2’, port=5432);
postgres=# create node coord2 with (type=coordinator,host=‘pg3’, port=5432);
postgres=# create node dn1 with (type=datanode, host=‘pg2’,port=5433,primary,preferred);
postgres=# create node dn2 with (type=datanode, host=‘pg3’,port=5433);
postgres=#select pgxc_pool_reload();
postgres=# select * from pgxc_node;

以postgres用户下进入datanode2,并进入数据库。规划中coord1配置端口号是5432:psql -p 5432
进入数据库后,我们先查询集群节点,并写入我们规划的集群,并使它重新加载生效
postgres=# select * from pgxc_node;
postgres=# create node coord1 with (type=coordinator,host=‘pg2’, port=5432);
postgres=# alter node coord2 with (type=coordinator,host=‘pg3’, port=5432);
postgres=# create node dn1 with (type=datanode, host=‘pg2’,port=5433,primary,preferred);
postgres=# create node dn2 with (type=datanode, host=‘pg3’,port=5433);
postgres=#select pgxc_pool_reload();
postgres=# select * from pgxc_node;

以postgres用户下进入datanode1,并进入数据库。规划中datanode1配置端口号是5433:psql -p 5433
进入数据库后,我们先查询集群节点,并写入我们规划的集群,并使它重新加载生效
postgres=# select * from pgxc_node;
postgres=# create node coord1 with (type=coordinator,host=‘pg2’, port=5432);
postgres=# create node coord2 with (type=coordinator,host=‘pg3’, port=5432);
postgres=# alter node dn1 with (type=datanode, host=‘pg2’,port=5433,primary,preferred);
postgres=# create node dn2 with (type=datanode, host=‘pg3’,port=5433);
postgres=#select pgxc_pool_reload();
postgres=# select * from pgxc_node;

以postgres用户下进入datanode2,并进入数据库。规划中datanode2配置端口号是5433:psql -p 5433
进入数据库后,我们先查询集群节点,并写入我们规划的集群,并使它重新加载生效
postgres=# select * from pgxc_node;
postgres=# create node coord1 with (type=coordinator,host=‘pg2’, port=5432);
postgres=# create node coord2 with (type=coordinator,host=‘pg3’, port=5432);
postgres=# create node dn1 with (type=datanode, host=‘pg2’,port=5433,primary,preferred);
postgres=# alter node dn2 with (type=datanode, host=‘pg3’,port=5433);
postgres=#select pgxc_pool_reload();
postgres=# select * from pgxc_node;

⦁ 测试集群
使用postgres用户进入pg2,并进入数据库:psql -p 5432
create table t1(id integer, name varchar(20)); #说明:无论从哪一个集群的入口建表,实际上是给整个集群都建表。
postgres=# insert into t1 values(1,‘测试1’);
postgres=# insert into t1 values(2,‘测试2’);
postgres=# insert into t1 values(3,‘测试3’);
postgres=# insert into t1 values(4,‘测试4’);
这时候我们的集群已经有了表,并且有了几条数据。
当我们从集群另外的pg3中coord2进入并查询数据,同样可以查询到刚插入的数据。
但如果我们直接从集群的每个数据节点进入,并执行查询,只能查询到部分数据,这里我们实际看到集群中的数据节点实际上轮流存储的。ok,至此我们的测试已经完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值