DBNAME=\VCOMMAND=\#VCOMMAND=\
psql -tc \a,pg_namespace b where a.relnamespace=b.oid and b.nspname= 'pg_catalog' and a.relkind='r'\ | psql -a $DBNAME
长期没有vaccum 的大表,使用重建表/drop 表的方式,消除垃圾空间。 Alter table xxx rename to yyyy.
8.
查看数据分布情况 两种方式:
? Select gp_segment_id,count(*) from tablename group by 1 ;
如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。 查看磁盘分布
select dfhostname, dfspace,dfdevice from gp_toolkit.gp_disk_free order by dfhostname
9.
实例恢复:gprecoverseg
通过gpstate 或gp_segment_configuration 发现有实例down 掉以后,使用该命令进行回复,恢复时候不需要停机,不影响应用
10. 查看锁信息:
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 标识了锁的类型
MVCC: 读写相互不影响 select / insert update delete 避免死锁: delete 和 update 是 表级排他EXCLUSIVE锁。
11. 数据库备份 gp_dump, pg_dump
常用参数:-s: 只导出对象定义(表结构,函数等)
-n: 只导出某个schema
gp_dump 默认在master 的data 目录上产生这些文件:
gp_catalog_1_
12. 数据库恢复 gp_restore pg_restore
必选参数:--gp-k=key :key 为gp_dump 导出来的文件的后缀时间戳
-d dbname :将备份文件恢复到dbname
13. Master主机硬件故障时,如何切换至Stand by Master,切换成功后是否需要进行数
据检查或恢复等
HA
答:在stand by master 主机上,运行 gpactivatestandby -d /gpdata 进行切换。由于Master 只存储系统元数据信息,切换成功后,一般不需要进行数据检查和恢复。日常巡检中要检查Stand by master 是否同步,可以通过表gp_master_mirroring 确认,如果发现不同步,可以通过命令:gpinitstandby -s standby_master_hostname –n 使得master和standby 重新同步。
14. 当Master主机硬件故障排除时,如何由Stand by切换至原Master主机。
答:1,在standby master运行:
gpinitstandby –s original_master_hostname
2,在standby master 上运行:gpstop –m, 注意这里只停止master 实例 3,在原来的maste上运行:gpactivatestandby -d /gpdata。
4,在原来的master上运行:gpinitstandby -s original_standby_master_hostname
15. 日志: master 和 segment 上分别有日志:
$DATADIR/pg_log/*.csv
$DATADIR:
select * from pg_filespace_entry ;
使用外部表将日志导入数据库,进行分析。
使用xfs 文件系统。 后台存储目录结构:
base 下每个目录,对应 select oid ,* from pg_database ;
select relfilenode from pg_class : ;
16. gpconfig : 4.0 新增加管理工具,参数配置工具;
-c | --change
-m | --mastervalue master_value -s | --show
gpconfig -c max_connections -v 100 -m 10