磐维2.0数据库日常维护

磐维数据库简介

“中国移动磐维数据库”(ChinaMobileDB),简称“磐维数据库”(PanWeiDB)。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。

其产品内核能力基于华为 OpenGauss 开源软件,并进一步提升了系统稳定性。

磐维数据库 V1.0 基于 openGauss 3.0 研发,在2022年12月29日,openGauss Summit 2022大议上正式发布。

磐维数据库 V2.0 基于 openGauss 5.0 研发,在2023年12月28日,openGauss Summit 2023大会上重磅发布。

磐维数据库2.0,具有高性能、高可靠、高安全、高兼容等特点,能够为集中式、分布式、云原生、一体机等多种应用场景提供强大支撑。

1.磐维数据库查询结果按列展示

         磐维数据库中如何实现查询结果按列展示?类似与MySQL数据库的\G效果,可以使用\x命令,以扩展方式显示查询结果

[omm@pw01 data]$ gsql -d postgres
gsql ((PanWeiDB 2.0.0 (Build0)) compiled at 2024-01-05 17:19:18 commit 9fbca90 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

postgres=# \x
Expanded display is on.
postgres=# \l
List of databases
-[ RECORD 1 ]-----+------------
Name              | panweidb
Owner             | omm
Encoding          | UTF8
Collate           | C
Ctype             | C
Access privileges | 
-[ RECORD 2 ]-----+------------
Name              | postgres
Owner             | omm
Encoding          | UTF8
Collate           | C
Ctype             | C
Access privileges | 
-[ RECORD 3 ]-----+------------
Name              | template0
Owner             | omm
Encoding          | UTF8
Collate           | C
Ctype             | C
Access privileges | =c/omm
                  | omm=CTc/omm
-[ RECORD 4 ]-----+------------
Name              | template1
Owner             | omm
Encoding          | UTF8
Collate           | C
Ctype             | C
Access privileges | =c/omm
                  | omm=CTc/omm

postgres=# select * from pg_user limit 1;
-[ RECORD 1 ]----+-------------
usename          | pwaudit
usesysid         | 34
usecreatedb      | f
usesuper         | f
usecatupd        | f
userepl          | f
passwd           | ********
valbegin         | 
valuntil         | 
respool          | default_pool
parent           | 0
spacelimit       | 
useconfig        | 
nodegroup        | 
tempspacelimit   | 
spillspacelimit  | 
usemonitoradmin  | f
useoperatoradmin | f
usepolicyadmin   | f

postgres=# 

postgres=# \x
Expanded display is off.
postgres=# 

2.gsql常用命令介绍

本文介绍磐维数据库里后台psql工具在一些常用场景下的快捷使用命令。

2.1 使用-r便捷编辑模式

[omm@pw01 data]$ gsql -d postgres -r
gsql ((PanWeiDB 2.0.0 (Build0)) compiled at 2024-01-05 17:19:18 commit 9fbca90 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

postgres=# 

image.png

否则当输入出错时,不能直接使用删除键。

image.png

2.2 快速编辑SQL并执行

元命令\e自动打开上次的查询进行编辑,编辑完成之后立刻执行

[omm@pw01 data]$ gsql -d postgres -r
gsql ((PanWeiDB 2.0.0 (Build0)) compiled at 2024-01-05 17:19:18 commit 9fbca90 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

postgres=# select * from pg_users limit 1;
ERROR:  relation "pg_users" does not exist on dn_6001_6002_6003
LINE 1: select * from pg_users limit 1;
                      ^
postgres=# \e
select * from pg_users limit 1;
~

image.png

上面使用\e直接在上一个SQL语句里进行编辑修改,然后wq保存退出编辑模式之后,自动执行新SQL语句。

2.3 定制客户端提示符

客户端提示符变量,我们可以定制PROMPT1(等待新命令时的提示符),.gsqlrc文件可以进行下面的设置:

\set PROMPT1 '%`date +%H:%M:%S` (%n@%M:%>)%/%R%#%x'


postgres=# \set PROMPT1 '%`date +%H:%M:%S` (%n@%M:%>)%/%R%#%x'
17:40:30 (omm@local:/database/panweidb/tmp:17700)postgres=#
17:40:32 (omm@local:/database/panweidb/tmp:17700)postgres=#select * from dual;
 dummy 
-------
 X
(1 row)

17:40:50 (omm@local:/database/panweidb/tmp:17700)postgres=#

image.png


PROMPT1变量可以定制操作系统的命令,例如显示时间。

2.4 使用边框美化查询结果

在.gsqlrc文件增加下面的设置,可以对查询结果设置边框,美化输出。

\pset border 2
\pset linestyle unicode

image.png

2.5 查询结果自动适配屏幕宽度

在psql里面使用如下pset命令

pset format wrapped \pset columns 0 
或者psql选项里加这两个设置$ psql -r --pset=format=wrapped --pset=columns=0 

image.png

2.6 输出不同的查询格式

文本紧凑模式

[omm@pw01 data]$ psql -qtA  -c "select * from pg_user limit 2;"
pwaudit|34|0|0|0|0|********|||default_pool|0||||||0|0|0
pwsso|35|0|0|0|0|********|||default_pool|0||||||0|0|0
[omm@pw01 data]$ 

文本紧凑模式,使用多字符分隔符@@

[omm@pw01 data]$ psql -qtA -F '@@'  -c  "select * from pg_user limit 2;"
pwaudit@@34@@0@@0@@0@@0@@********@@@@@@default_pool@@0@@@@@@@@@@@@0@@0@@0
pwsso@@35@@0@@0@@0@@0@@********@@@@@@default_pool@@0@@@@@@@@@@@@0@@0@@0
[omm@pw01 data]$ 

HTML格式

[omm@pw01 data]$ psql -qtH  -c "select * from pg_user limit 2;"
<table border="1">
  <tr valign="top">
    <td align="left">pwaudit</td>
    <td align="right">34</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">********</td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">default_pool</td>
    <td align="right">0</td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
  </tr>
  <tr valign="top">
    <td align="left">pwsso</td>
    <td align="right">35</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">********</td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">default_pool</td>
    <td align="right">0</td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">&nbsp; </td>
    <td align="left">0</td>
    <td align="left">0</td>
    <td align="left">0</td>
  </tr>
</table>

[omm@pw01 data]$ 

2.7查看元命令的query语句

使用-E或者–echo-hidden查看db的执行语句

$ psql -E -c "\l"

[omm@pw01 data]$ psql -E -c "\l"
********* QUERY **********
SELECT d.datname as "Name",
       pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
       pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
       d.datcollate as "Collate",
       d.datctype as "Ctype",
       pg_catalog.array_to_string(d.datacl, E'\n') AS "Access pr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七七powerful

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值