前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >笔记分享(4) Tbase/PostgreSQL 常用命令

笔记分享(4) Tbase/PostgreSQL 常用命令

原创
作者头像
大大刺猬
修改2021-05-17 18:04:20
2.5K0
修改2021-05-17 18:04:20
举报
文章被收录于专栏:大大刺猬大大刺猬

分享一下之前用到的tbase/pg命令, 主要是和mysql/oracle差别太大了. 做个记录, 方便后面看.

以下命令为tbase2.15(现在的tdsql-pg版)版本测试的.

pg常用命令:

连上数据库:
psql -U admin_1  -p 11345 -h 192.168.101.193 -d postgres


\h  #帮助
\h drop database  #查看删库的具体用法

\d  #列出当前数据库的所有表视图等.  \d 就是 display  \du也就是display user

\du  #列出所有用户

\c databasename  #连接其他数据库

\conninfo  #列出当前数据库和连接信息

\dn  #列出常用schema
\dn+  #详细版本

\dnS  #列出所有schema

\dt+ t1  #列出t1表的信息. 也可以select pg_size_pretty(pg_relation_size('t1'));

\dt schema_1.*  #列出schema_1下所有的表

\dm  #查看所有物化视图  display map

\ds  #查看所有序列   dispaly sequence

\di  #查看索引   dispaly index

\dp  #查看当前表的权限(默认自己: show search_path)
\dp+ schema_1.*   #查看schema_1下表的权限

\q  #退出

\l  #显示当前集群中的所有数据库
\l+ #详细版本

\dx  #列出所有插件
\dx+ #列出所有插件 详细版

\pset XX  #设置参数
\pset null 'i am null';   #设置null显示为i am null
\pset border 0            #没得框框


\copy  #系统文件和表格直接数据导入导出
\copy t1 to 'test_t1.txt'  #把t1表的数据导出到test_t1.txt文件
\! cat test_t1.txt   #执行操作系统命令 cat test_t1.txt
\copy t1 from 'test_t1.txt'   #把test_t1.txt的数据导入t1表(t1表要提前建好,字段不一样,要指定字段)





#查看数据库大小
select datname,pg_size_pretty(pg_database_size(datname)) from pg_database;  


#创建用户/角色
create user u1 with password '123456';

#创建schema
create schema schema_1;

#授权schema给用户
grant usage on schema schema_1 to u1;


#创建数据库
create database db1 owner u1;

#授权
grant all privileges on database db1 to u1;

#修改密码
\password u1


#显示当前用户
select current_user;

#显示当前schema
select current_schema;
show search_path;

#查看系统参数
show work_mem;
show all;

#设置系统参数
set work_mem='8MB';

#显示客户端编码
\encoding   #没得分号.

#配置客户端编码
\encoding UTF8

#删除插件:
drop extension pg_stat_statements;

#创建插件
create extension pg_stat_statements;


#设置密码
\password user1

#查看所有用户
select * from pg_user;
\du

#设置用户密码过期时间
alter user u1 with valid until '2021-02-23 16:00:00';


#查看所有数据库
select * from pg_database;

#连接指定数据库
\c postgres

#查看所有表
select * from pg_tables

#查看所有视图
select count(*) from pg_views;

#查看所有模式 schema
\dn

#查看表结构
\dt t1

#查看当前连接信息
\conninfo

#查看所有参数
show all;

#查看具体的参数  (类似oracle的redo大小)
show wal_segment_size;

#查看模式下的所有表
\dt information_schema.*


#查看用户系统权限
select * from pg_roles where rolname='u1';

#查看用户表权限
select * from information_schema.table_privileges;

#查看用户usage权限
select * from information_schema.usage_privileges ;

#查看表的权限
\dp t1;




#查看当前的search_path
show search_path;

pg日志:

1. pg_log
位置: $PGDATA/pg_log
默认关闭
记录服务器与DB的状态,比如ERROR,定位慢查询SQL, 数据库启停信息之类的
类似oracle的 alter_instance.log
格式: postgresql-Tuesday-09.csv  postgresql-Tuesday-09.log



2. pg_xlog
位置: $PGDATA/pg_wal
强制开启
记录pg的WAL信息的,也就是事务日志信息, 默认16M
类似 mysql的binlog   oracle的redo
写数据,先写 WAL BUFFER, 再写DATA BUFFER .  提交后,将WAL BUFFER的写入磁盘, DATA BUFFER写入磁盘(推迟)



3. pg_clog
位置: $PGDATA/pg_xact
强制开启
记录事务的元数据(metadata), 非常小,记录事务的状态(看不懂,就是一串UUUU)




备份与恢复( -W 交互式输入密码,  -w 没得密码,就退出)
备份: 
      备份为SQL文件
      pg_dump -d postgres -h 172.17.32.18 -p 11345 -w > test.sql    #导出库
      pg_dump -d postgres -h 172.17.32.18 -p 11345 -w -Fc > test.sql.tar.gz   #归档
	  pg_dump -d postgres -h 172.17.32.18 -p 11345 -n public -n schema2 > test.sql  #导出模式(pg模式的简写是n  如: \dn)
	  pg_dump -d postgres -h 172.17.32.18 -p 11345 -t 'public.t1' -t 'public.t2*' > test.sql #导出表
	  pg_dumpall -h 172.17.32.18 -p 11345 -w > test.sql  #全库导出
	  pg_dumpall -h 172.17.32.18 -p 11345 -g > test.sql  #只备份全局对象
	  pg_dumpall -h 172.17.32.18 -p 11345 -r > test.sql  #只备份角色
	  pg_dumpall -h 172.17.32.18 -p 11345 -t > test.sql  #只备份表空间
	  pg_dumpall -h 172.17.32.18 -p 11345 -s > test.sql  #只备份对象定义
	  
	  备份为dump文件
	  pg_dump -d postgres -h 172.17.32.18 -p 11345 -w -FC > t2.dump   #C表示包含创建语句

	  
恢复(不指定数据库,就只跑脚本, 指定了数据库就连上数据库跑): 
	  通过sql文件恢复
      psql -d postgres -h 172.17.32.18 -p 11345 -w < test.sql    #或者登录数据库 \i file.sql  也是可以的
	  
	  通过dump文件恢复
      pg_restore -d postgres -h 172.17.32.18 -p 11345 -w t2.dump
	
	
dump转为sql
pg_restore  test.dump -f test.sql
pg_restore test.dump > test.sql

tbase适合的命令:

#创建默认组/也可以控制台点
create default node group default_group with(dn001,dn002);  #创建组
create sharding group to group default_group;  #创建sharding map

#查看所有node
select * from pgxc_node;

#查看所有组
select * from pgxc_group

#查看shardmap
select * from pgxc_shard_map;


#删除组(得先清空组)
drop sharding in group default_group;  #先清空
drop node group default_group;  #再删

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pg常用命令:
  • tbase适合的命令:
相关产品与服务
TDSQL PostgreSQL 版
TDSQL PostgreSQL 版(TDSQL for PostgreSQL, 原 TBase)是腾讯自主研发的分布式数据库系统,具备高 SQL 兼容度、完整分布式事务、高安全、高扩展、多级容灾等能力,成功应用在金融、政府、电信等行业核心业务中。同时提供完善的容灾、备份、监控、审计等全套方案,适用于GB~PB级海量 HTAP 场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档