Greeplum 系列(八) 数据维护

一、事务管理

begin(start transaction)       # 开始事务
savepoint # 保存事务回滚点
rollback # 回滚事务
end(commit) # 结束事务

二、回收空间和分析

(1) 过期记录来源

  1. 事务ID管理:在每个数据库每2百万个事务的时候,对每张表执行VACUUM是很有必要的。
  2. 系统目录维护:大量的CREATE和DROP命令会导致系统表的迅速膨胀,以至于影响系统性能。
  3. MVCC事务并发模型:已经删除或者更新的记录仍然占据着磁盘空间。
  4. 如果数据库有大量的更新和删除操作,将会产生大量的过期记录。

所以需要定期的运行 VACUUM 命令可以删除过期记录,回收空间。

vacuum tb01;
vacuum full; # 回收所有过期记录,但是耗时长,生产环境中不建议使用

(2) 配置子空间映射

过期的记录会被存放在叫做自由空间映射的地方,超出自由映射空间的过期记录所占用的空间无法回收(除非删除表);

自由映射空间的设置参数(一般不用配制):max_fsm_pages、max_fsm_relations

(3) 查询优化器

GP 使用基于成本的查询优化器,使用 analyze 命令收集查询优化器需要的统计信息,可以和 vaccum 一起使用。

vaccum analyze tb_cp_02;

三、日常重建索引

  1. 对于 B-tree 索引,新重建的索引比存在较多更新的索引更快
  2. 重建索引可以回收过期的空间
  3. 在 GP 中,删除索引然后创建通常比 REINDEX 更快
  4. 当更新数据时,Bitmap 索引不会被更新

四、管理 GPDB 日志文件

(1) 数据库服务日志文件

GP 在 Master 和所有 Segment 实例上开启了日志文件按天滚动,服务器日志文件存放在每个实例数据目录的 pg_log 目录下。格式:gpdb-YYYY-MM-DD_TIME.csv

通过 gplogfilter 工具来查找匹配指定标准的日志数据

gplogfilter –n 3

gplogfilter + gpssh 工具组合在所有 segment 节点进行查找

gpssh –f seg_host_file
=> gplogfilter –n 3 /data/primary/*/pg_log/gpdb*.csv

(2) 程序日志文件

缺省位于 ~/gpAdminLogs 目录下。命令方式:<script_name>_.log。日志记录的格式:

<timestamp>:<utility>:<host>:<user>:[INFO|WARN|FATAL]:<message>

五、系统数据字典

所有的系统数据字典存放在 pg_catalog 模式下,标准的 PostgreSQL 系统数据字典为pg_*

GP特有的字典目录:

gp_configuration
gp_distribution_policy
gp_distributed_log
gp_id
gp_version_at_initdb
gp_master_mirroring
gp_pgdatabase

在 psql 中列出所有的系统字典:\dtS

在 psql 中列出所有的系统视图:\dvS


每天用心记录一点点。内容也许不重要,但习惯很重要!

Greeplum 系列(八) 数据维护的更多相关文章

  1. 学习ASP.NET Core Blazor编程系列八——数据校验

    学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系 ...

  2. Docker系列八: 数据卷

    什么是数据卷 生成环境中使用docker的过程中,往往需要对数据进行持久化,或者需要多个容器之间进行数据共享,这个就涉及到了容器数据管理 容器中管理数据主要有两种方式: 数据卷:容器内数据之间映射到本 ...

  3. Greeplum 系列(四) 数据的装载与卸裁

    Greeplum 系列(四) 数据的装载与卸裁 装载数据有以下种方法: insert copy 外部表 gpload 下面以 member_delta 表为例分别介绍这四种方法. create tab ...

  4. Greeplum 系列(三) 基本用法

    Greeplum 系列(三) 基本用法 <PostgreSQL 教程>:https://www.yiibai.com/postgresql 一.Greeplum 登陆与创建 1.1 登陆 ...

  5. 在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八)

        在 Apache 上使用网络安全服务(NSS)实现 HTTPS--RHCE 系列(八) 发布:linux培训 来源:Linux认证 时间:2015-12-21 15:26 分享到: 达内lin ...

  6. SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储

    原文:SQL Server 2008空间数据应用系列八:基于Bing Maps(Silverlight)的空间数据存储 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft S ...

  7. C语言高速入门系列(八)

    C语言高速入门系列(八) C语言位运算与文件 本章引言: 在不知不觉中我们的C高速入门系列已经慢慢地接近尾声了,而在这一节中,我们会对 C语言中的位运算和文件进行解析,相信这两章对于一些人来说是陌生的 ...

  8. Greeplum 系列(一) Greenplum 架构

    Greeplum 系列(一) Greenplum 架构 Greenplum 可进行海量并行处理 (Massively Parallel Processing) 一.Greenplum 体系架构 Gre ...

  9. Greeplum 系列(六) 备份与恢复

    Greeplum 系列(六) 备份与恢复 http://www.dbdream.com.cn/category/greenplum/ 先介绍几个命令查看 Greenplum 集群状态: # 1. 查看 ...

随机推荐

  1. HDU5296 Annoying problem(LCA)

    //#pragma comment(linker, "/STACK:1677721600") #include <map> #include <set> # ...

  2. vue使用百度编辑器ueditor踩坑记录

    一.使用 下载放入项目 main.js引入 import '../static/UE/ueditor.config.js'; import '../static/UE/ueditor.all.js'; ...

  3. docker 数据卷 ---- 基础篇

    用户在使用 Docker 的过程中,往往需要能查看容器内应用产生的数据,或者需要把容器内的数据进行备份,甚至多个容器之间进行数据的共享,这必然涉及容器的数据管理操作.容器中管理数据主要有两种方式:数据 ...

  4. APN与VPDN的主要区别

    VPDN APN 安全性 二次认证,加密 一次认证,没有加密 企业成本 高 低 对GGSN要求 可接受动态配置LNS参数信息,对GGSN性能影响小. 静态配置GRE隧道参数,性能影响较大,部分厂家对G ...

  5. SpringIoc 和 工厂模式(反射实现)

    一.先演示 “简单工厂”: package org; interface Fruit { public void eat(); } class Apple implements Fruit { pub ...

  6. 腾讯EC .net API对接第三方系统

    最近公司销售部门用到了腾讯EC,实现公司内部OA系统与腾讯ec的数据同步,要求如下: 1.OA内部系统账号与腾讯ec登陆账号同步 2.首先做义工客户端工具用来把现有客户导入到EC,销售人员的客户信息与 ...

  7. 腾讯互娱开源分布式开发框架Pebble

    构建游戏世界的Pebble 愿景:出色的游戏服务器端底层框架   现代游戏项目中,为了让更多的玩家能在一起玩,游戏服务器所需要承载的在线玩家数量越来越多.同时为了让游戏更好玩,越来越多复杂的业务逻辑都 ...

  8. Django将.csv文件(excel文件)显示到网页上

    今天,我成功将项目要导入的测试数据导入并呈现了,虽然还不是很完美,但我之后仍会继续改进. 1.首先在主页面上加一个超链接按钮: 其它的不需要管,其它是我的另一个项目,没什么大用的 2.之后配置URL: ...

  9. SpringBoot入门(2)

    一.上一篇 上一篇最后说到,可以把启动类放到非上级目录“@Componentscan这个注解后面指定扫描的包名(value=“com.zbb”)”,这里的value是一个数组,我们可以写多个目录,进行 ...

  10. PG覆盖率检查

    覆盖率检查 需要gcov和lcov工具,gcov在gcc中自带,lcov需要自行下载安装 重新编译 ./configure --prefix=`pwd`/install --with-perl --w ...