客户端psql的使用
最近更新时间: 2024-10-17 17:10: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;