客户端psql的使用

最近更新时间: 2024-10-17 17:10:00

psql简介

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

psql使用环境配置

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

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。

切换到tbase用户: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;