下面总结工作中GreenPlum常用命令及SQL:
gp常用命令:
gpstop
-a:直接停止,不提示终端用户输入确认
-m:只停止master实例,与gpstart -m对应使用
-f:停止数据库,中断所有数据库连接,回滚正在运行的事物
-u:不停止数据库,只加载pg_hba.conf和postgresql.conf中运行时的参数,当改动参数配置时使用
-r:重启数据库
gpstart
-a:直接启动,不提示终端用户输入yes确认
-m:只启动master实例,主要在故障处理时使用
gpstate 查看DB状态
-c:primary instance和mirror instance对应关系
-m:只列出mirror实例的状态和配置信息
-f:显示standby master的详细信息
-e:Segment mirroring status report
-s:查看细节,如果在同步,可显示数据同步完成百分比
--version:查看数据库version
gpconfig
-l:列出所有参数
gprecoverseg 恢复Failuer节点
-F 进行Segment全量恢复 恢复文件丢失的节点
-R 必须停机重启后使用,慎用,易导致镜像双坏 (停库对调primary和mirror,re-balance)
在Linux中执行SQL语句: psql -c "SQL语句"
获取down掉节点细节信息:
SELECT * FROM gp_segment_configuration WHERE status = 'd'
查看实例配置和状态:
SELECT * FROM gp_segment_configuration ORDER BY content
SELECT * FROM pg_filespace_entry
查看表大小:
SELECT pg_size_pretty(pg_relation_size('$schema.$table')) ???
查看当前用户的表:
SELECT * FROM pg_stat_user_tables
查看当前用户的索引:
SELECT * FROM pg_star_user_indexes
查询正在运行的SQL:
SELECT * FROM pg_stat_activity
查看当前存活的查询:
SELECT procpid as pid,sess_id as session,usename as user,
current_query as query,waiting,date_trunc('second',query_start) as start_time,
client_addr as useraddr
FROM pg_stat_activity
WHERE datname = '此处填写数据库名'
AND current_query NOT LIKE '%from pg_stat_activity%where dataname = %'
ORDER BY start_time
查看数据分布情况:
SELECT gp_segment_id,count(*) FROM tablename GROUP BY 1;
查询数据库用户表:
select * from pg_roles
Linux操作:
Linux:
ps -ef |grep -i postgres |grep -i con 每个连接进程
pg_ctl:
pg_ctl 是一个PostgreSQL工具,用于初始化PostgreSQL 数据库实例;启动、终止或重启数据库服务,查看数据库状态。
用法:
pg_ctl init[db] [-D DATADIR] [-s] [-o "OPTIONS"]
pg_ctl start [-w] [-t SECS] [-D DATADIR] [-s] [-l FILENAME] [-o "OPTIONS"]
pg_ctl stop [-W] [-t SECS] [-D DATADIR] [-s] [-m Shutdown-mode]
pg_ctl restart [-w] [-t SECS] [-D DATADIR] [-s] [-m Shutdown-mode] [-o "OPTIONS"]
pg_ctl reload [-D DATADIR] [-s]
pg_ctl status [-D DATADIR]
pg_ctl promote [-D DATADIR] [-s]
pg_ctl kill SIGNALNAME PID
常规选项:
-D,--pgdata DATADIR:指定数据库存储目录
-s,--silent:仅打印错误,不输出信息
-t SECS:指定等待秒数
-w:等待直到操作完成
-W:不等待操作完成
若没有指定-D选项则使用环境变量PGDATA
start或restart的选项:
-c,--core-files:允许postgres产生core文件
-l,--log FILENAME:指定日志文件
-o OPTIONS:指定传递给postgres命令的选项
-p PATH-TO-POSTGRES:指定postgres的路径
stop或restart的选项:
-m Shutdown-mode:可能的值为"smart","fast","immediate"
Shutdown模式:
smart:在所有客户端都断开时退出
fast:直接退出
immediate:不完成shutdown退出,然后重启恢复
SIGNALNAME可能值为:
HUP INT QUIT ABRT TERM USR1 USR2
pg_ctl实例:
1.查看postgres的状态信息(是否运行,PID等)
pg_ctl status -D /usr/local/postgres/data
2.关闭postgres服务器
pg_ctl stop -D /data
3.启动postgres服务器
pg_ctl start -D /data
4.重启postgres服务器
pg_ctl restart -D /data
5.初始化postgres数据
pg_ctl initdb -D /data
6.重新加载pg_hba.conf文件
pg_ctl reload -D /data
备注:GP中 -D 后的路径为postmaster.pid文件所在的路径
访问控制:
GP的访问控制和PostgreSQL的访问控制相同。
参考官方文档:https://www.postgresql.org/docs/9.4/auth-pg-hba-conf.html
其他记录:
postgresql log文件夹区分
/pg_log(数据库运行日志) /pg_xlog(WAL日志 即重做日志) /pg_clog(事物提交日志,记录事物元数据)
GP Admin操作(state,recoverseg...等操作..)日志location
/home/gpadmin/gpAdminLogs
后续继续补充。。。