下面总结工作中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

 

后续继续补充。。。