disabled什么意思-绿毒2 0 4
![postgresql命令](/uploads/image/0994.jpg)
2023年4月4日发(作者:硬盘对拷)
PG数据库常⽤命令
查看帮助命令
DB=#help--总的帮助
DB=#h--SQLcommands级的帮助
DB=#?--psqlcommands级的帮助
按列显⽰,类似MySQL的G
DB=#x
Expandeddisplayison.
查看DB安装⽬录(最好root⽤户执⾏)
find/-nameinitdb
查看有多少DB实例在运⾏(最好root⽤户执⾏)
find/-
查看DB版本
cat$PGDATA/PG_VERSION
psql--version
DB=#showserver_version;
DB=#selectversion();
查看DB实例运⾏状态
pg_ctlstatus
查看所有数据库
psql–l--查看5432端⼝下⾯有多少个DB
psql–pXX–l--查看XX端⼝下⾯有多少个DB
DB=#l
DB=#select*frompg_database;
创建数据库
createdbdatabase_name
DB=#hcreatedatabase--创建数据库的帮助命令
DB=#createdatabasedatabase_name
进⼊某个数据库
psql–ddbname
DB=#cdbname
查看当前数据库
DB=#c
DB=#selectcurrent_database();
查看数据库⽂件⽬录
DB=#showdata_directory;
cat$PGDATA/|grepdata_directory
cat/etc/init.d/postgresql|grepPGDATA=
lsof|grep5432得出第⼆列的PID号再ps–ef|grepPID
查看表空间
select*frompg_tablespace;
查看语⾔
select*frompg_language;
查询所有schema,必须到指定的数据库下执⾏
select*frominformation_ta;
SELECTnspnameFROMpg_namespace;
dnS
查看表名
DB=#dt--只能查看到当前数据库下public的表名
DB=#SELECTtablenameFROMpg_tablesWHEREtablenameNOTLIKE'pg%'ANDtablenameNOTLIKE'sql_%'ORDERBY
tablename;
DB=#SELECT*FROMinformation_WHEREtable_name='ff_v3_ff_basic_af';
查看表结构
查看表结构
DB=#dtablename
DB=#select*frominformation_swheretable_schema='public'andtable_name='XX';
查看索引
DB=#di
DB=#select*frompg_index;
查看视图
DB=#dv
DB=#select*frompg_viewswhereschemaname='public';
DB=#select*frominformation_heretable_schema='public';
查看触发器
DB=#select*frominformation_rs;
查看序列
DB=#select*frominformation_ceswheresequence_schema='public';
查看约束
DB=#select*frompg_constraintwherecontype='p'
DB=#eastable_name,easconstraint_name,easconstraint_typefrompg_classa,pg_constraintbwhere
=e='cc';
查看XX数据库的⼤⼩
SELECTpg_size_pretty(pg_database_size('XX'))Asfulldbsize;
查看所有数据库的⼤⼩
selectpg_e,pg_size_pretty(pg_database_size(pg_e))ASsizefrompg_database;
查看各数据库数据创建时间:
selectdatname,(pg_stat_file(format('%s/%s/PG_VERSION',casewhenspcname='pg_default'then'base'else
'pg_tblspc/'||||'/PG_11_201804061/'end,))).*frompg_databaset1,pg_lespace=;
按占空间⼤⼩,顺序查看所有表的⼤⼩
selectrelname,pg_size_pretty(pg_relation_size(relid))frompg_stat_user_tableswhereschemaname='public'orderby
pg_relation_size(relid)desc;
按占空间⼤⼩,顺序查看索引⼤⼩
selectindexrelname,pg_size_pretty(pg_relation_size(relid))frompg_stat_user_indexeswhereschemaname='public'orderby
pg_relation_size(relid)desc;
查看参数⽂件
DB=#showconfig_file;
DB=#showhba_file;
DB=#showident_file;
查看当前会话的参数值
DB=#showall;
查看参数值
select*frompg_file_settings
查看某个参数值,⽐如参数work_mem
DB=#showwork_mem
修改某个参数值,⽐如参数work_mem
DB=#altersystemsetwork_mem='8MB'
--使⽤altersystem命令将修改⽂件,⽽不是,这样可以很好的保护⽂件,加⼊你使⽤很
多altersystem命令后搞的⼀团糟,那么你只需要删除,再执⾏pg_ctlreload加载⽂件即可实现参数的重
新加载。
查看是否归档
DB=#showarchive_mode;
查看运⾏⽇志的相关配置,运⾏⽇志包括Error信息,定位慢查询SQL,数据库的启动关闭信息,checkpoint过于频繁等的告警信息。
showlogging_collector;--启动⽇志收集
showlog_directory;--⽇志输出路径
showlog_filename;--⽇志⽂件名
showlog_truncate_on_rotation;--当⽣成新的⽂件时如果⽂件名已存在,是否覆盖同名旧⽂件名
showlog_statement;--设置⽇志记录内容
showlog_min_duration_statement;--运⾏XX毫秒的语句会被记录到⽇志中,-1表⽰禁⽤这个功能,0表⽰记录所有语句,类似mysql的慢查
询配置
查看wal⽇志的配置,wal⽇志就是redo重做⽇志
存放在data_directory/pg_wal⽬录
查看当前⽤户
DB=#c
DB=#selectcurrent_user;
查看所有⽤户
DB=#select*frompg_user;
DB=#select*frompg_shadow;
查看所有⾓⾊
DB=#du
DB=#select*frompg_roles;
查询⽤户XX的权限,必须到指定的数据库下执⾏
select*frominformation__privilegeswheregrantee='XX';
创建⽤户XX,并授予超级管理员权限
createuserXXXSUPERUSERPASSWORD'123456'
创建⾓⾊,赋予了login权限,则相当于创建了⽤户,在pg_user可以看到这个⾓⾊
createrole"user1"superuser;--pg_roles有user1,pg_user和pg_shadow没有user1
alterrole"user1"login;--pg_user和pg_shadow也有user1了
授权
DB=#hgrant
GRANTALLPRIVILEGESONschemaschemanameTOdbuser;
grantALLPRIVILEGESonalltablesinschemafdstodbuser;
GRANTALLONtablenameTOuser;
GRANTALLPRIVILEGESONDATABASEdbnameTOdbuser;
grantselectonalltablesinschemapublictodbuser;--给⽤户读取public这个schema下的所有表
GRANTcreateONschemaschemanameTOdbuser;--给⽤户授予在schema上的create权限,⽐如createtable、createview等
GRANTUSAGEONschemaschemanameTOdbuser;
grantselectonschemapublictodbuser;--报错ERROR:invalidprivilegetypeSELECTforschema
--USAGE:对于程序语⾔来说,允许使⽤指定的程序语⾔创建函数;对于Schema来说,允许查找该Schema下的对象;对于序列来说,允许使
⽤currval和nextval函数;对于外部封装器来说,允许使⽤外部封装器来创建外部服务器;对于外部服务器来说,允许创建外部表。
查看表上存在哪些索引以及⼤⼩
selectrelname,asindex_typefrompg_classm,pg_=(elidfrompg_class
a,pg_=e='cc');
e,e,es*8assize_kbFROMpg_classc,pg_classc2,pg_e='cc'
==e;
查看索引定义
elidfrompg_classa,pg_=e='cc';
selectpg_get_indexdef(elid);
查看过程函数定义
selectoid,*frompg_procwhereproname='insert_platform_action_exist';--oid=24610
select*frompg_get_functiondef(24610);
查看表⼤⼩(不含索引等信息)
selectpg_relation_size('cc');--368640byte
selectpg_size_pretty(pg_relation_size('cc'))--360kB
查看表所对应的数据⽂件路径与⼤⼩
SELECTpg_relation_filepath(oid),relpagesFROMpg_classWHERErelname='empsalary';
posegresql查询当前lsn
1、⽤到哪些⽅法:
apple=#selectpronamefrompg_procwherepronamelike'pg_%_lsn';
proname
---------------------------------
pg_current_wal_flush_lsn
pg_current_wal_insert_lsn
pg_current_wal_lsn
pg_last_wal_receive_lsn
pg_last_wal_replay_lsn
2、查询当前的lsn值:
apple=#selectpg_current_wal_lsn();
pg_current_wal_lsn
--------------------------
0/45000098
3、查询当前lsn对应的⽇志⽂件
selectpg_walfile_name('0/1732DE8');
4、查询当前lsn在⽇志⽂件中的偏移量
SELECT*FROMpg_walfile_name_offset(pg_current_wal_lsn());
切换pg_wal⽇志
selectpg_switch_wal();
清理pg_wal⽇志
pg_archivecleanup/postgresql/pgsql/data/pg_wal
表⽰删除之前的所有⽇志
--pg_wal⽇志没有设置保留周期的参数,即没有类似mysql的参数expire_logs_days,pg_wal⽇志永久保留,除⾮shell脚步删除⼏天前或pg-
rman备份时候设置保留策略
查询有哪些slot,任意⼀个数据库下都可以查,查询的结果都⼀样
select*frompg_replication_slots;
更多推荐
postgresql命令
发布评论