GP日常维护手册-常用命令
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Greenplum 日常维护手册
1.数据库启动:gpstart
常用可选参数:-a : 直接启动,不提示终端用户输入yes确认
-m:只启动master 实例,主要在故障处理时使用
2.数据库停止:gpstop:
常用可选参数:-a:直接停止,不提示终端用户输入确认
-m:只停止master 实例,与gpstart –m 对应使用
-M fast:停止数据库,中断所有数据库连接,回滚正在运
行的事务
-u:不停止数据库,只加载pg_hba.conf 和postgresql.conf中
运行时参数,当改动参数配置时候使用。
-f:强制停止数据库
-r:重启数据库
3.查看实例配置和状态
select * from gp_configuration order by 1 ;
select * from gp_configuration_history order by 1 ;
主要字段说明:
Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror Instance)
Isprimary:实例是否作为primary instance 运行
Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。
Port:实例运行的端口
Datadir:实例对应的数据目录
注 4.0后,实例配置的数据表:gp_segment_configuration 、pg_filespace_entry、gp_fault_strategy;
其它常用的系统表:pg_class,pg_attribute,pg_database,pg_tables……
可以用tab来匹配表名;
4.gpstate :显示Greenplum数据库运行状态,详细配置等信息
常用可选参数:-c:primary instance 和mirror instance 的对应关系
-m:只列出mirror 实例的状态和配置信息
-f:显示standby master 的详细信息
-s:查看详细状态,如在同步,可显示数据同步完成百分比
--version,查看数据库version
(也可使用pg_controldata查看数据库版本和postgresql版本)该命令默认列出数据库运行状态汇总信息,常用于日常巡检。
5.查看用户会话和提交的查询等信息
select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户
名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con
pg_backend_pid();
pg_cancel_backend(integer)
6.查看数据库、表占用空间
select pg_size_pretty(pg_relation_size('schema.tablename'));(与pg_tables子查询查看所有表的占用空间)
select pg_size_pretty(pg_database_size('databasename));
必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。
7.收集统计信息,回收空间
定期使用Vacuum analyze tablename 回收垃圾和收集统计信息,尤其在大数据量删除,导入以后,非常重要、需要定期对数据字典做vacuum和reindex ,如
pg_class,pg_attribute等系统表。
可以gp_toolkit.gp_bloat_diag看膨胀很大的表;
8.查看数据分布情况
两种方式:
●Select gp_segment_id,count(*) from tablename group by 1 ;
●在命令运行:gpskew -t public.ate -a postgres
如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。
9.登录每一个实例数据库的方法
PGOPTIONS='-c gp_session_role=utility' psql dbname –p xxxx
可以通过这个命令登录实例,一般用于检测单个实例是否运行正常,还有就是用于在集群发生不一致时(只有在非常特殊的情况下才有可能发生,如表不一致等),进行表维护
10.实例恢复:gprecoverseg
通过gpstate 或gp_configuration 发现有实例down 掉以后,使用该命令进行回复。
gprecoverseg -F强制恢复
11.查看锁信息:
注:在Greenplum里(截至到4.0版本),INSERT 和COPY都是行级锁,
UPDATE/DELETE都是表级锁;
SELECT locktype, database, c.relname, l.relation,
l.transactionid, l.transaction, l.pid, l.mode, l.granted,
a.current_query
FROM pg_locks l, pg_class c, pg_stat_activity a
WHERE l.relation=c.oid AND l.pid=a.procpid ORDER BY c.relname;
主要字段说明:
relname: 表名
locktype、mode 标识了锁的类型
注:也可以通过pgadminIII的工具->服务器状态查看当前运行的SQL及锁等待情况。
发生Deadlock时,系统自动让其中一个SQL失败,并提示deadlock信息。