本系统大体分为三个部分Master/Segment/Client:
- Master和Segment都是一个单独的PostgrepSQL数据库。每一个都有自己单独的一套元数据字典。
- Segment节点与Master节点的通讯,通过万兆网卡组成的内部网络连接(InterConnect)。
- Client一般只能与Master节点进行交互。m数据库说明
1. 统一分析处理
可以在同一个并行数据流引擎上执行所有查询和分析(SQL、MapReduce、R等)操作,从而允许分析人员、开发人员和统计人员使用同一个基础构架进行数据分析。
- 千万亿字节规模的数据加载操作
高性能的并行数据装载器可以在所有节点上同步执行操作,装载速度超过4.5TB/小时。
- 随地访问数据
不管数据的位置、格式或存储介质如何,都可以从数据库向外部数据源执行查询操作,并行向数据库返回数据。
- GP 服务器地址
账号: monitor
密码: monitor
1:内存监控
命令: free
监控项: 第二行第二列used数值 比 第一行第一列total数值(图中为 253728/3839412)
阀值: 90% (0.9)
提示信息: 当前内存占用过高,会导致GreenPlum性能大减,请及时处理。
2:磁盘监控
命令: iostat –x 1
监控项: %util
阀值: 70%(0.7)
提示信息: 当前磁盘使用占比过高,可能会造成磁盘瓶颈,请及时处理。
3:CPU性能监控
命令: Top
监控项: 第三行Cpu(s)
阀值: 80%(0.8)
提示信息: 当前CPU使用率过高,请及时检查并处理
4:Standby master的同步状态
命令:gpstate -f
监控项: Sync state
阀值: sync 为正常,其他为异常
提示信息: Standby master同步状态异常,请及时处理
5:Primary,Mirror Segment同步状态监控
命令: gpstate -m
监控项: Data Status
阀值: Synchronized 为正常,其他为异常
提示信息: Primary,Mirror Segment 同步状态异常,请及时处理
6:监控SQL运行时常
命令:select*from pg_stat_activity order by query_start
监控项: query_start - 当前时间, current_query
阀值: query_start - 当前时间 > 三小时 并且 current_query 有sql语句(不是IDLE)
提示信息: Sql运行时间过长,请查看Sql并处理
7:监控数据量膨胀比较大的表
命令: select * from gp_toolkit.gp_bloat_diag;
监控项: 查询结果是否有值
阀值: 如果无结果,正常;如果返回结果,异常。
提示信息: (将返回结果以表格形式写入提示信息中,并在第二行写如下语句)
请及时处理数据量膨胀较大的表,处理语句如下:
在线处理:vacuum table_name。
离线处理: vacuum full table_name。
8:事务ID号监控
命令:
select datname,age,datallowconn from (select datname,age,datallowconn,row_number() over(partition by datname order by age desc) from (select datname,age(datfrozenxid),datallowconn from pg_database union all select datname,age(datfrozenxid),datallowconn from gp_dist_random('pg_database'))t)p where row_number=1 order by age DESC;
监控项:age项相加
阀值:age项相加不超过6亿。
提示信息: 当前事务ID过多,请在数据库执行 VACUUM FREEZE DBNAME 操作
GP age过大 处理流程
1. 做vaccum freeze 发现并不能起作用
2. 停机修改GP参数gp_vmem_protect_limit, 对DB做vaccum freeze发现除过master节点外的所有segment age降幅明显,但是master依然很高
3. 针对DB中age过大的表一个一个做vaccum freeze, 发现age 降幅明显,问题解决