您的位置:首页 > 其它

Postgres-XL-9.5 集群部署测试

2017-04-21 17:56 330 查看
一、部署环境
集群环境如下
CentOS6.6_x86_64
Postgres-XL 9.5
主机名IP角色端口nodename数据目录
pgxlsrv1192.168.1.41GTM6666gtm$PGHOME/data/gtm
Coordinator5301coord1$PGHOME/data/coord1
Coordinator5302coord2$PGHOME/data/coord2
pgxlsrv2192.168.1.42Datanode5401dn1$PGHOME/data/dn1
Datanode5402dn2$PGHOME/data/dn2
pgxlsrv3192.168.1.43Datanode5401dn3$PGHOME/data/dn3
Datanode5402dn4$PGHOME/data/dn4
pgxlsrv1作为gtm与主节点Coordinator协调器
pgxlsrv2,pgxlsrv3 作为数据节点存储数据

二、服务器配置
1、环境变量 (3个节点)
export PGHOME=/home/postgres/pgxl9.5
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH

2、安装依赖软件包 (3个节点)
yum -y install openssh-clients
yum -y install flex bison readline-devel zlib-devel openjade docbook-style-dsssl
yum -y install gcc

3、配置无密钥登录
------- root 用户 -----------------------------------------
--- pgxlsrv1 节点
[root @pgxlsrv1 ~]# ssh-keygen
[root @pgxlsrv1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv1
[root @pgxlsrv1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv2
[root @pgxlsrv1 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv3

--- pgxlsrv2 节点
[root @pgxlsrv2 ~]# ssh-keygen
[root @pgxlsrv2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv2
[root @pgxlsrv2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv1
[root @pgxlsrv2 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv3

--- pgxlsrv3 节点
[root @pgxlsrv3 ~]# ssh-keygen
[root @pgxlsrv3 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv3
[root @pgxlsrv3 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv1
[root @pgxlsrv3 ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@pgxlsrv2

-------- 用户 postgres ------------------------------------
--- pgxlsrv1 节点
[postgres @pgxlsrv1 ~]$ ssh-keygen
[postgres @pgxlsrv1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv1
[postgres @pgxlsrv1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv2
[postgres @pgxlsrv1 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv3

--- pgxlsrv2 节点
[postgres @pgxlsrv2 ~]$ ssh-keygen
[postgres @pgxlsrv2 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv2
[postgres @pgxlsrv2 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv1
[postgres @pgxlsrv2 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv3

--- pgxlsrv3 节点
[postgres @pgxlsrv3 ~]$ ssh-keygen
[postgres @pgxlsrv3 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv3
[postgres @pgxlsrv3 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv1
[postgres @pgxlsrv3 ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub postgres@pgxlsrv2

三、 Postgres-XL安装
1、在3个节点分别安装postgrex-xl软件
-- pgxlsrv1 节点
[root @pgxlsrv1 ~]# cd /mytmp
[root @pgxlsrv1 mytmp]# tar -xzvf postgres-xl-9.5r1.5.tar.gz
[root @pgxlsrv1 mytmp]# chown -R postgres:postgres postgres-xl-9.5r1.5
[root @pgxlsrv1 mytmp]# su - postgres
[postgres @pgxlsrv1 ~]$ cd /mytmp/postgres-xl-9.5r1.5
[postgres @pgxlsrv1 postgres-xl-9.5r1.5]$ ./configure --prefix=/home/postgres/pgxl9.5
[postgres @pgxlsrv1 postgres-xl-9.5r1.5]$ make
[postgres @pgxlsrv1 postgres-xl-9.5r1.5]$ make install

-- pgxlsrv2 节点
[root @pgxlsrv2 ~]# cd /mytmp
[root @pgxlsrv2 mytmp]# tar -xzvf postgres-xl-9.5r1.5.tar.gz
[root @pgxlsrv2 mytmp]# chown -R postgres:postgres postgres-xl-9.5r1.5
[root @pgxlsrv2 mytmp]# su - postgres
[postgres @pgxlsrv2 ~]$ cd /mytmp/postgres-xl-9.5r1.5
[postgres @pgxlsrv2 postgres-xl-9.5r1.5]$ ./configure --prefix=/home/postgres/pgxl9.5
[postgres @pgxlsrv2 postgres-xl-9.5r1.5]$ make
[postgres @pgxlsrv2 postgres-xl-9.5r1.5]$ make install

-- pgxlsrv3 节点
[root @pgxlsrv3 ~]# cd /mytmp
[root @pgxlsrv3 mytmp]# tar -xzvf postgres-xl-9.5r1.5.tar.gz
[root @pgxlsrv3 mytmp]# chown -R postgres:postgres postgres-xl-9.5r1.5
[root @pgxlsrv3 mytmp]# su - postgres
[postgres @pgxlsrv3 ~]$ cd /mytmp/postgres-xl-9.5r1.5
[postgres @pgxlsrv3 postgres-xl-9.5r1.5]$ ./configure --prefix=/home/postgres/pgxl9.5
[postgres @pgxlsrv3 postgres-xl-9.5r1.5]$ make
[postgres @pgxlsrv3 postgres-xl-9.5r1.5]$ make install

2、创建 gtm、coordinator、datanode 相关目录
-- pgxlsrv1 节点
[postgres @pgxlsrv1 ~]$ cd $PGHOME
[postgres @pgxlsrv1 pgxl9.5]$ mkdir data
[postgres @pgxlsrv1 pgxl9.5]$ cd data
[postgres @pgxlsrv1 data]$ mkdir gtm
[postgres @pgxlsrv1 data]$ mkdir coord1
[postgres @pgxlsrv1 data]$ mkdir coord2

-- pgxlsrv2 节点
[postgres @pgxlsrv2 ~]$ cd $PGHOME
[postgres @pgxlsrv2 pgxl9.5]$ mkdir data
[postgres @pgxlsrv2 pgxl9.5]$ cd data
[postgres @pgxlsrv2 data]$ mkdir dn1
[postgres @pgxlsrv2 data]$ mkdir dn2

-- pgxlsrv3 节点
[postgres @pgxlsrv3 ~]$ cd $PGHOME
[postgres @pgxlsrv3 pgxl9.5]$ mkdir data
[postgres @pgxlsrv3 pgxl9.5]$ cd data
[postgres @pgxlsrv3 data]$ mkdir dn3
[postgres @pgxlsrv3 data]$ mkdir dn4

3、gtm、coordinator 初始化及配置
-- 初始化gtm
[postgres @pgxlsrv1 ~]$ initgtm -Z gtm -D /home/postgres/pgxl9.5/data/gtm

--初始化coord1
[postgres @pgxlsrv1 ~]$ initdb -D /home/postgres/pgxl9.5/data/coord1 --nodename coord1 -E UTF8 --locale=C -U postgres -W

--初始化coord2
[postgres @pgxlsrv1 ~]$ initdb -D /home/postgres/pgxl9.5/data/coord2 --nodename coord2 -E UTF8 --locale=C -U postgres -W

-- 配置gtm
[postgres @pgxlsrv1 ~]$ vi /home/postgres/pgxl9.5/data/gtm/gtm.conf
nodename = 'gtm'
listen_addresses = '*'
port =6666
startup = ACT

-- 配置 coord1、coord2
[postgres @pgxlsrv1 ~]$ vi /home/postgres/pgxl9.5/data/coord1/postgresql.conf
# - Connection Settings -
listen_addresses = '*'
port = 5301 #coord2这个端口改为5302
max_connections = 100

# DATA NODES AND CONNECTION POOLING
#----------------------------------
pooler_port = 6701 #coord2这个端口改为6702
max_pool_size = 100

# GTM CONNECTION
#--------------------------
gtm_host = '192.168.1.41' #即pgxlsrv1,也就是gtm所在的主机地址
gtm_port = 6666 #gtm配置中,gtm端口号配置为6666
pgxc_node_name = 'coord1'

------- 配置文件 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

4、dn1、dn2、dn3、dn4 初始化及配置
---------- pgxlsrv2 节点 ----------------------------------
--dn1初始化
[postgres @pgxlsrv2 ~]$ initdb -D /home/postgres/pgxl9.5/data/dn1 --nodename dn1 -E UTF8 --locale=C -U postgres -W

--dn2初始化
[postgres @pgxlsrv2 ~]$ initdb -D /home/postgres/pgxl9.5/data/dn2 --nodename dn2 -E UTF8 --locale=C -U postgres -W

----------- pgxlsrv3 节点 ---------------------------------
--dn3初始化
[postgres @pgxlsrv3 ~]$ initdb -D /home/postgres/pgxl9.5/data/dn3 --nodename dn3 -E UTF8 --locale=C -U postgres -W

--dn4初始化
[postgres @pgxlsrv3 ~]$ initdb -D /home/postgres/pgxl9.5/data/dn4 --nodename dn4 -E UTF8 --locale=C -U postgres -W

---------- pgxlsrv2 节点 ---------------------------------
-- dn1 配置
[postgres @pgxlsrv2 ~]$ vi /home/postgres/pgxl9.5/data/dn1/postgresql.conf
CONNECTIONS AND AUTHENTICATION
#------------------------------------
listen_addresses = '*'
port =5401 #dn2,dn3,dn4配置文件分别改为5402、5401、5402
max_connections = 100

# DATA NODES AND CONNECTION POOLING
#----------------------------------------------
pooler_port = 6801 #dn2,dn3,dn4配置文件分别改为6802、6801、6802
#同一台机器要使用不同的端口,如dn1,dn2在同一台机器pgxlsrv2上分别是6801,6802
#dn3,dn4在pgxlsrv3上端口号也是6801,6802。就是同一机器端口号不同即可。
max_pool_size = 100

# GTM CONNECTION
#-----------------------------
gtm_host = '192.168.1.41' #gtm所在的pgxlsrv1的ip地址
gtm_port = 6666 #gtm端口号
pgxc_node_name = 'dn1'

5、启动Postgres-XL
--启动gtm (pgxlsrv1)
[postgres @pgxlsrv1 ~]$ gtm_ctl start -Z gtm -D /home/postgres/pgxl9.5/data/gtm

--启动datanode (pgxlsrv2)
[postgres @pgxlsrv2 ~]$ pg_ctl start -Z datanode -D /home/postgres/pgxl9.5/data/dn1
[postgres @pgxlsrv2 ~]$ pg_ctl start -Z datanode -D /home/postgres/pgxl9.5/data/dn2

--启动datanode (pgxlsrv3)
[postgres @pgxlsrv3 ~]$ pg_ctl start -Z datanode -D /home/postgres/pgxl9.5/data/dn3
[postgres @pgxlsrv3 ~]$ pg_ctl start -Z datanode -D /home/postgres/pgxl9.5/data/dn4

--启动coordinator (pgxlsrv1)
[postgres @pgxlsrv1 ~]$ pg_ctl start -Z coordinator -D /home/postgres/pgxl9.5/data/coord1
[postgres @pgxlsrv1 ~]$ pg_ctl start -Z coordinator -D /home/postgres/pgxl9.5/data/coord2

6、Postgres-XL集群配置
-- 集群配置 --
--配置coord1节点,以postgres用户下进入psql。coord1配置端口号是5301,直接以psql加端口号进入配置
[postgres@pgxlsrv1 ~]$ psql -p 5301
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;

postgres=# alter node coord1 with (type=coordinator,host='192.168.1.41', port=5301);
postgres=# create node coord2 with (type=coordinator,host='192.168.1.41', port=5302);

postgres=# create node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn3 with (type=datanode, host='192.168.1.43',port=5401);
postgres=# create node dn4 with (type=datanode, host='192.168.1.43',port=5402);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

--配置coord2节点,以postgres用户下进入psql。coord2配置端口号是5302,直接以psql加端口号进入配置
[postgres@pgxlsrv1 ~]$ psql -p 5302
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;
postgres=# alter node coord2 with (type=coordinator,host='192.168.1.41', port=5302);
postgres=# create node coord1 with (type=coordinator,host='192.168.1.41', port=5301);

postgres=# create node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn3 with (type=datanode, host='192.168.1.43',port=5401);
postgres=# create node dn4 with (type=datanode, host='192.168.1.43',port=5402);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

-- 配置数据节点(pgxlsrv2) --
--dn1
[postgres@pgxlsrv2 ~]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;

postgres=# create node coord1 with (type=coordinator,host='192.168.1.41', port=5301);
postgres=# create node coord2 with (type=coordinator,host='192.168.1.41', port=5302);

postgres=# alter node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn3 with (type=datanode, host='192.168.1.43',port=5401);
postgres=# create node dn4 with (type=datanode, host='192.168.1.43',port=5402);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

--dn2
[postgres@pgxlsrv2 ~]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;

postgres=# create node coord1 with (type=coordinator,host='192.168.1.41', port=5301);
postgres=# create node coord2 with (type=coordinator,host='192.168.1.41', port=5302);

postgres=# alter node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn3 with (type=datanode, host='192.168.1.43',port=5401);
postgres=# create node dn4 with (type=datanode, host='192.168.1.43',port=5402);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

-- 配置数据节点(pgxlsrv3) --
--dn3
[postgres@pgxlsrv3 ~]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;

postgres=# create node coord1 with (type=coordinator,host='192.168.1.41', port=5301);
postgres=# create node coord2 with (type=coordinator,host='192.168.1.41', port=5302);

postgres=# alter node dn3 with (type=datanode, host='192.168.1.43',port=5401);
postgres=# create node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn4 with (type=datanode, host='192.168.1.43',port=5402);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

--dn4
[postgres@pgxlsrv3 ~]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.

postgres=# select * from pgxc_node;

postgres=# create node coord1 with (type=coordinator,host='192.168.1.41', port=5301);
postgres=# create node coord2 with (type=coordinator,host='192.168.1.41', port=5302);

postgres=# alter node dn4 with (type=datanode, host='192.168.1.43',port=5402);
postgres=# create node dn1 with (type=datanode, host='192.168.1.42',port=5401,primary,preferred);
postgres=# create node dn2 with (type=datanode, host='192.168.1.42',port=5402);
postgres=# create node dn3 with (type=datanode, host='192.168.1.43',port=5401);

postgres=# select pgxc_pool_reload();
postgres=# select * from pgxc_node;

四、验证测试
1、 创建分布模式的测试表并插入数据
[postgres@pgxlsrv1]$ psql -p 5301
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# 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');
postgres=# insert into t1 values(5,'测试5');
postgres=# insert into t1 values(6,'测试6');
postgres=# insert into t1 values(7,'测试7');
postgres=# insert into t1 values(8,'测试8');

-- 插入记录验证 --
-- 在 coord1 和 coord2 上都能查询到所有记录
[postgres@pgxlsrv1]$ psql -p 5301
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
5 | 测试5
6 | 测试6
8 | 测试8
3 | 测试3
4 | 测试4
7 | 测试7
1 | 测试1
2 | 测试2
(8 rows)

[postgres@pgxlsrv1]$ psql -p 5302
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
5 | 测试5
6 | 测试6
8 | 测试8
3 | 测试3
4 | 测试4
7 | 测试7
1 | 测试1
2 | 测试2
(8 rows)

--在数据节点 dn1, dn2, dn3, dn4 分别查询
[postgres@pgxlsrv2]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
5 | 测试5
6 | 测试6
8 | 测试8
(3 rows)

[postgres@pgxlsrv2]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
(0 rows)

[postgres@pgxlsrv3]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
1 | 测试1
2 | 测试2
(2 rows)

[postgres@pgxlsrv3]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t1;
id | name
----+-------
3 | 测试3
4 | 测试4
7 | 测试7
(3 rows)

2、 创建复制模式的测试表并插入数据
[postgres@pgxlsrv1]$ psql -p 5301
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# create table t2(id integer, name varchar(20)) distribute by replication;
postgres=# insert into t2 values(1,'测试1');
postgres=# insert into t2 values(2,'测试2');
postgres=# insert into t2 values(3,'测试3');
postgres=# insert into t2 values(4,'测试4');
postgres=# insert into t2 values(5,'测试5');
postgres=# insert into t2 values(6,'测试6');
postgres=# insert into t2 values(7,'测试7');
postgres=# insert into t2 values(8,'测试8');

-- 插入记录验证 --
-- 在 coord1 和 coord2 以及 dn1、dn2、dn3、dn4 上都能查询到所有记录

-- coord1 --
[postgres@pgxlsrv1]$ psql -p 5301
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

-- coord2 --
[postgres@pgxlsrv1]$ psql -p 5302
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

-- dn1 --
[postgres@pgxlsrv2]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

-- dn2 --
[postgres@pgxlsrv2]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

-- dn3 --
[postgres@pgxlsrv3]$ psql -p 5401
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

-- dn4 --
[postgres@pgxlsrv3]$ psql -p 5402
psql (PGXL 9.5r1.5, based on PG 9.5.6 (Postgres-XL 9.5r1.5))
Type "help" for help.
postgres=# select * from t2;
id | name
----+-------
1 | 测试1
2 | 测试2
3 | 测试3
4 | 测试4
5 | 测试5
6 | 测试6
7 | 测试7
8 | 测试8
(8 rows)

----------------------------- 测试完毕 -----------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  XL Postgres