资源描述
.Greenplum日常简明维护手册1. 数据库启动 :gpstart常用参数: -a : 直接启动,不提示终端用户输入确认-m:只启动 master 实例,主要在故障处理时使用访问单个数据实例:PGOPTIONS=-c gp_session_role=utilitypsql template1 -p5432启动某个 segment instance : pg_ctlstop/start-D/datadir/取端口号:select* fromgp_segment_configurationWord 专业资料.启动以后会在 /tmp/下生成一个 .lock隐藏文件,记录主进程号。2. 数据库停止 :gpstop :常用可选参数: -a:直接停止,不提示终端用户输入确认-m:只停止 master 实例,与 gpstart m 对应使用-f:停止数据库,中断所有数据库连接,回滚正在运行的事务-u:不停止数据库,只加载 pg_ hba.conf 和 postgresql.conf 中运行时参数,当改动参数配置时候使用。连接数,重启3.查看实例配置和状态select * from gp_segment_configurationorder by content ;select * frompg_filespace_entry ;主要字段说明:Content :该字段相等的两个实例,是一对(primary instance )和( mirrorInstance)Isprimary :实例是否作为primary instance运行Valid :实例是否有效,如处于false 状态,则说明该实例已经down掉。Port :实例运行的端口Datadir: 实例对应的数据目录4. gpstate :显示 Greenplum 数据库运行状态,详细配置等信息常用可选参数 : -c:primary instance和 mirror instance的对应关系-m :只列出 mirror实例的状态和配置信息-f :显示 standby master的详细信息该命令默认列出数据库运行状态汇总信息,常用于日常巡检。5. 查看用户会话和提交的查询等信息Word 专业资料.select * from pg_stat_activity该表能查看到当前数据库连接的IP 地址,用户名,提交的查询等。 另外也可以在master 主机上查看进程, 对每个客户端连接,master 都会创建一个进程。ps -ef |grep -i postgres |grep -i con杀进程: Linux : kill -11PIDSql :pg_cancel_backend (pid )ps ef |grep i postgre |grepi con6. 查看数据库、表占用空间select pg_size_pretty(pg_relation_size(schema.tablename);select pg_size_pretty( pg_database_size(databasename);分区表:Select *from pg_partitionswhere查某个 schema 占用的空间:select pg_size_pretty(pg_relation_size(tablename)from pg_tables tinner join pg_namespaced on t.schemaname=d.nspnamegroup byd.nspname必须在数据库所对应的存储系统里,至少保留 30% 的自由空间, 日常巡检, 要检查存储空间的剩余容量。7. 收集统计信息,回收空间定期使用 Vacuum analyze tablename回收垃圾和收集统计信息, 尤其在大数据量删Word 专业资料.除,导入以后,非常重要将 delete 或 update 的“旧”数据放到 Rollback Segment ,与表分开存放。并发事务为了保证数据一致性,需要从 Rollback Segment 上恢复数据。Greenplum :“旧数据”与表存放在一起,对旧的数据做了标志。并发事务通过transaction ID ( XID )判断数据是否可用系统表也是需要进行vaccum :#!/bin/bashDBNAME=databasenameVCOMMAND=VACUUM ANALYZEWord 专业资料.#VCOMMAND=VACUUM FULL ANALYZEpsql -tc select $VCOMMAND | pg_catalog. | relname | ; from pg_classa,pg_namespace b where a.relnamespace=b.oid and b.nspname= pg_catalog anda.relkind=r $DBNAME|psql -a $DBNAME长期没有 vaccum 的大表,使用重建表/drop表的方式,消除垃圾空间。Alter table xxx rename to yyyy.8. 查看数据分布情况两种方式:Select gp_segment_id,count(*) fromtablenamegroup by1 ;如数据分布不均匀,将发挥不了并行计算的优势,严重影响性能。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_queryFROM pg_locks l, pg_class c, pg_stat_activity aWHERE l.relation=c.oid AND l.pid=a.procpidORDER BY c.relname;主要字段说明:relname:表名locktype 、 mode标识了锁的类型MVCC:读写相互不影响select/ insert update delete避免死锁:delete和 update是 表级排他 EXCLUSIVE锁。Word 专业资料.11. 数据库备份gp_dump, pg_dump常用参数: -s: 只导出对象定义(表结构,函数等)-n: 只导出某个 schemagp_dump默认在 master 的data 目录上产生这些文件:gp_catalog_1_:关于数据库系统配置的备份文件gp_cdatabase_1_:数据库创建语句的备份文件gp_dump_1_:数据库对象 ddl 语句gp_dump_status_1_:备份操作的日志在每个 segment instance上的 data 目录上产生的文件:gp_dump_0_:用户数据备份文件gp_dump_status_0_:备份日志12. 数据库恢复gp_restorepg_restore必选参数: -gp-k=key:key为gp_dump导出来的文件的后缀时间戳-d dbname:将备份文件恢复到dbnameWord 专业资料.13. Master 主机硬件故障时, 如何切换至 Stand by Master ,切换成功后是否需要进行数据检查或恢复等HA答:在 stand by master主机上,运行gpactivatestandby -d /gpdata进行切换。由于 Master 只存储系统元数据信息,切换成功后,一般不需要进行数据检查和恢复。日常巡检中要检查Stand by master是否同步,可以通过表gp_master_mirroring确认,如果发现不同步, 可以通过命令: gpinitstandby -s standby_master_hostnamen使得 master和 standby 重新同步。14. 当 Master 主机硬件故障排除时,如何由 Stand by 切换至原 Master主机。答: 1,在standby master 运行 :gpinitstandby s original_master_hostname2,在 standby master 上运行: gpstop m , 注意这里只停止master 实例3,在原来的 maste 上运行: gpactivatestandby -d /gpdata 。4,在原来的 master 上运行: gpinitstandby -s original_standby_master_hostn ame15. 日志 : master 和 segment 上分别有日志:$DATADIR/pg_log/*.csv$DATADIR:select * from pg_filespace_entry ;使用外部表将日志导入数据库,进行分析。使用 xfs 文件系统。后台存储目录结构:Word 专业资料.base下每个目录,对应select oid ,* from pg_database ;selectrelfilenodefrom pg_class:;16. gpconfig : 4.0 新增加管理工具,参数配置工具;-c | -change-v | -value value-m | -mastervalue master_value-s | -show gpconfig -c max_connections -v 100 -m 1017. gpcheckperf :网络:gpcheckperf -f hostfile_gpchecknet_ic1 -r Nnetperf-d /tmp磁盘 IOgpcheckperf -f hostfile_gpcheckperf -d /data1 -d /data2-r dWord 专业资料.linux DD命令:dd if=/dev/zero of=/vol2/a.test bs=256k count=161000 dd if=/vol2/b.test of=/dev/null bs=256k count=16000018. gpssh : 同时登陆到多个机器上,进行操作Gpssh-h sdw1 h sdw2-h sdw319. gp_toolkit : 管理工具包:gp_bloat_diaggp_stats_missing更多详细信息参见GpadminGuide appendix I ;pg_stat_last_operation: Shows the last time certain database operations were performed on a database object, for example, the last time a table was vacuumed20. rolecreate role etl withSUPERUSER;alter role etl with LOGIN;修改 pg_hda.conf配置文件, local 和 host 两种模式Word 专业资料
展开阅读全文