PostgreSQL学习笔记: 客户端

客户端程序

封装 SQL 命令的客户端程序

  1. clusterdb : CLUSTER 命令的封装,通过索引对基于堆表的物理文件进行重新排序,类似 Oracle 聚簇表
  2. reindexdb : REINDEX 命令的封装,对指定的库或表进行索引重建
  3. vacuumdb : VACUUM [FREEZE|FULL|ANALYZE] 命令的封装,对数据的物理文件进行垃圾回收
  4. vacuumlo : 清理数据库中未引用的大对象
  5. createdb : CREATE DATABASE 命令的封装,同类还有 createuser
  6. dropdb : DROP DATABASE 命令的封装,同类还有 dropuser

备份恢复

  1. pg_basebackup : 获取正在运行中的 PostgreSQL 实例的基础备份
  2. pg_dump/pg_dumpall : 以数据库转储的方式进行备份
  3. pg_restore : 从 pg_dump 中进行数据恢复

其他程序

  1. ecpg : C 程序 PostgreSQL 嵌入式 SQL 预处理器,将 SQL 调用替换为特殊函数调用,转为普通 C 代码
  2. oid2name : 解析数据目录中的 OID 和文件节点
  3. pgbench : 基础测试工具,可模拟简单的压力测试
  4. pg_config : 获取当前安装的 PG 的参数配置
  5. pg_isready : 检测数据库服务器是否可连接
  6. pg_receivexlog : 从运行中的实例获取事务日志流
  7. pg_recvlogical : 控制逻辑解码复制槽,及来自其中的流数据
  8. psql : 连接 PG 的客户端命令行工具

图形化工具

最流行的图形化工具: pgAdmin PostgreSQL: File Browser

命令行工具 psql

类似于 Oracle 的 sqlplus 工具。

psql <db_name> <user>     # psql postgres pguser
psql -h hadoopServer1 -p 5432 -U pguser -W postgres

环境脚本

工具启动时,会读取操作系统用户目录下的 .psqlrc 脚本,并执行该脚本,可在其中设置环境,并定义一些常用命令

-- 编辑 ~/.psqlrc 添加常用命令
\set connections 'select datname, usename, client_addr, count(*) from pg_stat_activity where pid <> pg_backend_pid() group by 1,2,3 order by 1,2,4 desc;'
\set PROMPT1 '%/@%M:%> %R%# '

-- 登录 psql 使用命令
psql mydb pguser
mydb=# :connections

命令提示符

通过 PROMPT1, PROMPT2, PROMPT3 设置不同情况下的命令提示符:
* PROMPT1 : psql 等待输入命令时的提示符
* PROMPT2 : 一行脚本没有完成,等待继续输入时的提示符
* PROMPT3 : COPY FROM STDIN 时需要在终端输入时的提示符

提示符变量如下:
* %M : 数据库服务器别名,通过 -h 参数指定的值,默认是 local
* %> : 服务器的端口号
* %n : 数据库会话的用户名
* %/ : 数据库名
* %# : 超级用户显示 # 其他用户显示 >
* %p : 当前连接的后台进程号
* %R : 连接状态显示 = 断开显示 !

psql 元命令

psql 中使用 ? 可查看所有支持的元命令,使用 -E 选项登录 psql 的时候,会在执行元命令的时候显示对应的 SQL 语句。
* \l : 查看数据库列表
* \db : 查看表空间列表
* \d : 查看表中列的定义 \d <table_name>
* \dt[+] : 查看表相关属性 \dt+ <table_name>
* \di[+] : 查看索引相关属性 \di+ <index_name>
* \sf : 查看函数定义 \sf floor(numeric)
* \x : 切换输出格式,行输出与列输出模式切换
* \h : 查看命令的帮助 \h create table
* \set : 设置变量 \set name value , 等同于命令行选项 -v name=value
* \timing : 以毫秒为单位,显示 SQL 执行的时间
* \watch : 以指定间隔,反复执行上一条 SQL 命令 \watch 3

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。