客户端psql的使用

最近更新时间: 2024-06-12 15:06:00

psql简介

psql是一个基于终端的 TDSQL PostgreSQL 版客户端工具,类似Oracle中的命令行工具sqlplus,但比sqlplus更加强大。它让你能交互式地键入查询,把它们发送给 TDSQL PostgreSQL 版,并且查看查询结果。或者,输入可以来自于一个文件或者命令行参数。此外,psql还提供一些元命令和多种类似shell的特性来为编写脚本和自动化多种任务提供便利。psql还支持命令补全,历史命令回找。

psql使用环境配置

TDSQL PostgreSQL 版-v2是基于多租户设计,安装后所有机器都不会配置 TDSQL PostgreSQL 版的客户端默认使用环境,所以使用psql需要配置其环境变量。切换到数据库用户tbase,如下

export PGXZ_HOME=/usr/local/install/tbase_pgxz

export PATH=$PGXZ_HOME/bin:$PATH

export LD_LIBRARY_PATH=$PGXZ_HOME/lib:${LD_LIBRARY_PATH}

PGUSER=tbase

PGHOST=127.0.0.1

PGDATABASE=postgres

PGPORT=11000

export PGHOST PGUSER PGDATABASE PGPORT

这样就能使用psql客户端了,因为测试只初始化了一个实例,所以我们可以将它配置到 ~/.bashrc 中。

创建 TDSQL PostgreSQL 版默认的分布式使用环境

TDSQL PostgreSQL 版作为分布式数据库系统,使用前我们必需配置数据表默认分布的数据节点(DN),下面演示如何创建一个default node group。

切换到 TDSQL PostgreSQL 版用户:su - tbase

  • 连接数据库

注意:此处指连接到cn节点(后面没特别说明,所有数据库操作都是连接到cn节点)

psql -p port -d database -U user -h

host(psql连接参数就是这些,超级管理用户就是数据库用户tbase,默认数据库为postgres,host如果是在本机连接可省略,默认使用本机ip)

示例:

[tbase@node1 ~]$ psql -p 11000 -d postgres

psql (PostgreSQL 10.0 TBase V2)

Type "help" for help.
  • 查询集群节点配置
postgres=# select * from pgxc_node;
node_name | node_type | node_port | node_host | nodeis_primary |
nodeis_preferred | node_id | node_cluster_name
-----------+-----------+-----------+-------------+----------------+------------------+-------------+-------------------
agtm_0 | G | 11004 | 172.16.0.12 | t | f | 475343005 | tbase_cluster
cn001 | C | 11000 | 172.16.0.12 | f | f | -264077367 | tbase_cluster
cn002 | C | 11000 | 172.16.0.5 | f | f | -674870440 | tbase_cluster
dn001 | D | 11002 | 172.16.0.12 | f | f | 2142761564 | tbase_cluster
dn002 | D | 11002 | 172.16.0.5 | f | f | -17499968 | tbase_cluster
dn003 | D | 11006 | 172.16.0.12 | f | f | -1956435056 | tbase_cluster
(6 rows)
  • 查询当前数据节点(DN),这些DN节点就是上面初始化集群时建立的
postgres=# select * from pgxc_node where node_type='D';

node_name | node_type | node_port | node_host | nodeis_primary |

nodeis_preferred | node_id | node_cluster_name

-----------+-----------+-----------+-------------+----------------+------------------+-------------+-------------------

dn001 | D | 11002 | 172.16.0.12 | f | f | 2142761564 | tbase_cluster

dn002 | D | 11002 | 172.16.0.5 | f | f | -17499968 | tbase_cluster

dn003 | D | 11006 | 172.16.0.12 | f| f | -1956435056 | tbase_cluster
  • 创建数据表默认使用的group
postgres=# create default node group default_group with(dn001, dn002);
  • 为default group创建shardmap

配置完成数据表默认使用的DN节点后,我们接下来需要配置记录的分区方案,shardmap就是 TDSQL PostgreSQL 版各个哈希值与DN的对照表,下面演示如何创建一个shardmap给default_group

执行以下指令,即可像单机一样使用 TDSQL PostgreSQL 版集群:

postgres=# create sharding group to group default_group;

postgres=# clean sharding;

更多group的使用方法

创建扩展group

  • 建立group
postgres=# create node group ext_group with(dn003);

CREATE NODE GROUP
  • 为group创建shard
postgres=# create extension sharding group to group ext_group;

CREATE SHARDING GROUP

postgres=# clean sharding;

CLEAN SHARDING

postgres=#

删除group

postgres=# drop sharding in group ext_group;

DROP SHARDING GROUP

postgres=# drop node group ext_group ;

DROP NODE GROUP

查看集群group

postgres=#select * from pgxc_group;