-
Greenplum
日常维护手册
1.
数据库启动
:
gpstart
常用可选参数:
-a :
直接启动,不提示终端用户输入
yes
确认
p>
-
m:
只启动
ma
ster
实例,主要在故障处理时使用
2.
数据库停止
:
gpstop
:
常用可选参数:
-a
:
直接
停止,不提示终端用户输入确认
-m
:<
/p>
只停止
master
实例,与
gpstart
–
m
对应使用
-M fast
:
停止数据库,中断所
有数据库连接,回滚正在运
行的事务
-u
:
不停止数据库,只加载
pg_
和
中
运行时参数,当改动参数配置时候使用。
-f
:强制停止数据库
-r
:
重启数据库
3.
查看实例配置和状态
select * from
gp_configuration order by 1
select *
from gp_configuration_history
order by 1
主要字段说明:
Content
p>
:该字段相等的两个实例,是一对P(
primary
instance
)和M(
mirror
Instance)
Isp
rimary
:实例是否作为
primary
instance
运行
Val
id
:实例是否有效,如处于
false
状态,则说明该实例已经
down
掉。
Port
:实例运行的端口
Datadir:
实例对应的数据目录
p>
注
4.0
后,实例配置的数据表:
gp_segment_configuration
、
pg_filespace_entry
、
gp_f
ault_strategy;
其它常用的系统表:
pg_class,pg_attribute,pg_database,pg_table
s
……
可以用
t
ab
来匹配表名;
4.
gpstate
:显示
Greenplum
数据库运行状态,详细配
置等信息
常用可选参数
:-c
:
primary instance
和
mirror instance
的对应关系
-m
:只列出
mirror
实例的状态和配置信息
-f
:显示
standby
master
的详细信息
p>
-s
:查看详细状态,如在同步,可显示数据同步完成百分比
--version,
查看数据库<
/p>
version
(也可使用
pg_controld
ata
查看数据库版本和
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(
'ame'));(
与
pg_tables
子查
询查看所有表的占用空间
)
select
pg_size_pretty(
pg_database_size('zctt'));
必须在
数据库所对应的存储系统里,至少保留
30%
的自由空间,日常
巡检,要检查
存储空间的剩余容量。
7.
收集统计信息,回收空间
定期使用
Vacuum analyze tablename
回收垃圾和收集统计信息,
尤其在大数据量
删除,导入以后,非常重要、需要定期对数据字典做
vacuum
< br>和
reindex
,如
pg_
class,pg_attribute
等系统表。
可以
gp__bloat_diag
看膨胀很大的表;
8.
查看数据分布情况
两种方式:
?
Select
gp_segment_id,count(*) from
tablename
group
by 1
?
在命令运行:
gpskew -t -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
p>
和
COPY
都是行级锁,
< br>UPDATE/DELETE
都是表级锁;
SELECT locktype, database,
e, on,
ctionid,
ction,
,
,
d,
t_query
FROM pg_locks l,
pg_class c, pg_stat_activity a
WHERE
on= AND =d
ORDER BY e;
主要字段说明:
relname:
表名
locktype
、
mode
标识了锁的类型
< br>注:
也可以通过
pgadminIII
< br>的工具
->
服务器状态查看当前运行的
< br>SQL
及锁等待情
况。
发生
Deadlock
时,系统自动让其中一
个
SQL
失败,并提示
deadloc
k
信息。
12.
explain
:在提交大的查询之前,使用
explain
分析执
行计划、发现
潜在优化机会,避免将系统资源熬尽。
explain analyze
sql,
将执行一次
SQL
,并行将过
程中的具体
cost
和
运行情况记录下
来
也可以用
pgadminIII<
/p>
进行
explain
的图形化显示,进而
来优化执行路径,如表关联策
略等。
注:可以在
Master
的
中
修改
log_min_duration_statement=5000s
,
p>
SQL
运行耗时超过这个值得都在
pg_l
og
纪
录
SQL
的实际耗时,用来监控耗时的
SQL
。
13.
数据库并行备份
gp_dump
:
常用参数:
-s:
只导出对象定义(表结构,函数等)
-n:
只导出某个
schema
gp_dump
默认在
master
的
data
目录上产生这些文件:
gp_catalog_1_
:关于数据库系统配置的备份文件
g
p_cdatabase_1_
:数据库创建语
句的备份文件
gp_dump_1_
:数据库对象
ddl
语
句
gp_dump_status_1_
:备份操作的日志
在每个
segment instance
< br>上的
data
目录上产生的文件:
gp_dump_0_
:用户数据备份文件
gp_dump_status_0
_
:备份日志
gpcorndump
:
可以用于备份数据库配置文件和全局数据(如角色、资源队列等)
Example:gpcrondump -x mydatabase
–
u
/xxx/
-c -g
–
G
–
a
–
q >>$$
-g
备份
、
p>
pg_
、
pg_
-G
备份全局对象
-
-
-
-
-
-
-
-
-
上一篇:美国口语俚语大全(=)
下一篇:蓝屏dump分析教程