Greenplum 日常简明维护手册
1. 数据库启动gpstart
常用参数: -a : 直接启动,不提示终端用户输入确认greenplum数据库
              -m:只启动master 实例,主要在故障处理时使用
访问单个数据实例:
PGOPTIONS='-c gp_session_role=utility'  psql template1 -p  5432
启动某个segment instance pg_ctl  stop/start  -D  /datadir/
取端口号:
select  * from gp_segment_configuration
启动以后会在/tmp/ 下生成一个.lock 隐藏文件,记录主进程号。
2. 数据库停止gpstop
常用可选参数:-a直接停止,不提示终端用户输入确认
                  -m只停止master 实例,与gpstart –m 对应使用
                  -f停止数据库,中断所有数据库连接,回滚正在运
                            行的事务
-u不停止数据库,只加载pg_f f中运行时参数,当改动参数配置时候使用。
连接数,重启
3. 查看实例配置和状态
    select * from gp_segment_configuration  order by content ;
  select * from  pg_filespace_entry ;
主要字段说明:
Content:该字段相等的两个实例,是一对P(primary instance)和M(mirror
          Instance)
    Isprimary:实例是否作为primary instance 运行
      Valid:实例是否有效,如处于false 状态,则说明该实例已经down 掉。
    Port:实例运行的端口
    Datadir:实例对应的数据目录
4. gpstate :显示Greenplum数据库运行状态,详细配置等信息
常用可选参数-cprimary instance mirror instance 的对应关系
                  -m:只列出mirror 实例的状态和配置信息
                -f:显示standby master 的详细信息
该命令默认列出数据库运行状态汇总信息,常用于日常巡检。
5. 查看用户会话和提交的查询等信息
select * from pg_stat_activity  该表能查看到当前数据库连接的IP 地址,用户名,提交的查询等。另外也可以在master 主机上查看进程,对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con
杀进程:Linux kill -11  PID
        Sql   pg_cancel_backend(pid)
ps –ef |grep – i postgre |grep –i con
6. 查看数据库、表占用空间
select pg_size_pretty(pg_relation_size('schema.tablename'));
select pg_size_pretty(pg_database_size('databasename));
分区表:
Select * from pg_partitions  where  …
查某个schema 占用的空间:
select  pg_size_pretty(pg_relation_size(tablename))  from pg_tables  t  inner join pg_namespace  d on t.schemaname=d.nspname  group by d.nspname
    必须在数据库所对应的存储系统里,至少保留30%的自由空间,日常巡检,要检查存储空间的剩余容量。
7. 收集统计信息,回收空间
定期使用Vacuum analyze tablename 回收垃圾和收集统计信息,尤其在大数据量删除,导入以后,非常重要
delete update 的“旧”数据放到 Rollback Segment,与表分开存放。并发事务为了保证数据一致性,需要从Rollback Segment 上恢复数据。
Greenplum:“旧数据”与表存放在一起,对旧的数据做了标志。并发事务通过
transaction IDXID)判断数据是否可用
系统表也是需要进行vaccum
#!/bin/bash
DBNAME="databasename"
VCOMMAND="VACUUM ANALYZE"
#VCOMMAND="VACUUM FULL ANALYZE"
psql -tc "select '$VCOMMAND' || ' pg_catalog.' || relname || ';' from pg_class
a,pg_namespace b lnamespace=b.oid and b.nspname= 'pg_catalog' and
a.relkind='r'" $DBNAME  |  psql -a $DBNAME
长期没有vaccum 的大表,使用重建表/drop 表的方式,消除垃圾空间。
Alter table xxx rename to yyyy.
8. 查看数据分布情况
两种方式:
Select gp_segment_id,count(*) from  tablename  group by 1 ;
如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。
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
lation=c.oid AND l.pid=a.procpid
ORDER lname;
主要字段说明:
relname: 表名
locktypemode 标识了锁的类型
MVCC: 读写相互不影响 select  / insert update delete
避免死锁: delete update 表级排他EXCLUSIVE锁。
11. 数据库备份 gp_dump, pg_dump
常用参数:-s: 只导出对象定义(表结构,函数等)
          -n: 只导出某个schema
gp_dump 默认在master data 目录上产生这些文件:
gp_catalog_1_<dbid>_<timestamp> :关于数据库系统配置的备份文件
gp_cdatabase_1_<dbid>_<timestamp>:数据库创建语句的备份文件
gp_dump_1_<dbid>_<timestamp>:数据库对象ddl语句
gp_dump_status_1_<dbid>_<timestamp>:备份操作的日志
在每个segment instance 上的data目录上产生的文件:
gp_dump_0_<dbid>_<timestamp>:用户数据备份文件
gp_dump_status_0_<dbid>_<timestamp>:备份日志
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 使得masterstandby 重新同步。
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  <param_name>
-v | --value value
-m | --mastervalue master_value
-s | --show <param_name>
gpconfig -c max_connections -v 100 -m 10
17. gpcheckperf :
网络:
gpcheckperf -f hostfile_gpchecknet_ic1 -r N –netperf  -d /tmp
磁盘IO
gpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2  -r d
linux DD 命令:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。