GreenPlum常用命令和SQL

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

 

后续继续补充。。。

posted @ 2020-05-20 21:54  OldCha  阅读(3443)  评论(0)    收藏  举报