首页 > 数据库 >openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表

openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表

时间:2023-12-03 22:31:31浏览次数:26  
标签:customer FULL 数据库 例行 VACUUM openGauss ANALYZE 维护

openGauss学习笔记-140 openGauss 数据库运维-例行维护-例行维护表

为了保证数据库的有效运行,数据库必须在插入/删除操作后,基于客户场景,定期做VACUUM FULL和ANALYZE,更新统计信息,以便获得更优的性能。

140.1 相关概念

使用VACUUM、VACUUM FULL和ANALYZE命令定期对每个表进行维护,主要有以下原因:

  • VACUUM FULL可回收已更新或已删除的数据所占据的磁盘空间,同时将小数据文件合并。
  • VACUUM对每个表维护了一个可视化映射来跟踪包含对别的活动事务可见的数组的页。一个普通的索引扫描首先通过可视化映射来获取对应的数组,来检查是否对当前事务可见。若无法获取,再通过堆数组抓取的方式来检查。因此更新表的可视化映射,可加速唯一索引扫描。
  • VACUUM可避免执行的事务数超过数据库阈值时,事务ID重叠造成的原有数据丢失。
  • ANALYZE可收集与数据库中表内容相关的统计信息。统计结果存储在系统表PG_STATISTIC中。查询优化器会使用这些统计数据,生成最有效的执行计划。

140.2 操作步骤

  1. 使用VACUUM或VACUUM FULL命令,进行磁盘空间回收。

    • VACUUM

      对表执行VACUUM操作

      openGauss=# VACUUM customer;
      
      VACUUM
      

      可以与数据库操作命令并行运行。(执行期间,可正常使用的语句:SELECT、INSERT、UPDATE和DELETE。不可正常使用的语句:ALTER TABLE)。

      对表分区执行VACUUM操作

      openGauss=# VACUUM customer_par PARTITION ( P1 );
      
      VACUUM
      
    • VACUUM FULL

      openGauss=# VACUUM FULL customer;
      
      VACUUM
      

      需要向正在执行的表增加排他锁,且需要停止其他所有数据库操作。

  2. 使用ANALYZE语句更新统计信息。

    openGauss=# ANALYZE customer;
    
    ANALYZE
    

    使用ANALYZE VERBOSE语句更新统计信息,并输出表的相关信息。

    openGauss=# ANALYZE VERBOSE customer;
    
    ANALYZE
    

    也可以同时执行VACUUM ANALYZE命令进行查询优化。

    openGauss=# VACUUM ANALYZE customer;
    
    VACUUM
    

    img 说明: VACUUM和ANALYZE会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,建议通过“vacuum_cost_delay”参数设置《数据库参考》中“GUC参数说明 > 资源消耗 > 基于开销的清理延迟”。

  3. 删除表。

    openGauss=# DROP TABLE customer;
    openGauss=# DROP TABLE customer_par;
    openGauss=# DROP TABLE part;
    

    当结果显示为如下信息,则表示删除成功。

    DROP TABLE
    

140.3 维护建议

  • 定期对部分大表做VACUUM FULL,在性能下降后为全库做VACUUM FULL,目前暂定每月做一次VACUUM FULL。
  • 定期对系统表做VACUUM FULL,主要是PG_ATTRIBUTE。
  • 启用系统自动清理线程(AUTOVACUUM)自动执行VACUUM和ANALYZE,回收被标识为删除状态的记录空间,并更新表的统计数据。

标签:customer,FULL,数据库,例行,VACUUM,openGauss,ANALYZE,维护
From: https://blog.51cto.com/shuchaoyang/8669249

相关文章

  • openGauss学习笔记-139 openGauss 数据库运维-例行维护-检查应用连接数
    openGauss学习笔记-139openGauss数据库运维-例行维护-检查应用连接数如果应用程序与数据库的连接数超过最大值,则新的连接无法建立。建议每天检查连接数,及时释放空闲的连接或者增加最大连接数。139.1操作步骤以操作系统用户omm登录数据库主节点。使用如下命令连接数据库......
  • openGauss学习笔记-138 openGauss 数据库运维-例行维护-检查时间一致性
    openGauss学习笔记-138openGauss数据库运维-例行维护-检查时间一致性数据库事务一致性通过逻辑时钟保证,与操作系统时间无关,但是系统时间不一致会导致诸多潜在问题,主要是后台运维和监控功能异常,因此在月度检查时建议检查各个节点的时间一致性。138.1操作步骤以操作系统用户o......
  • openGauss学习笔记-135 openGauss 数据库运维-例行维护-检查openGauss健康状态
    openGauss学习笔记-135openGauss数据库运维-例行维护-检查openGauss健康状态135.1检查办法通过openGauss提供的gs_check工具可以开展openGauss健康状态检查。注意事项扩容新节点检查只能在root用户下执行,其他场景都必须在omm用户下执行。必须指定-i或-e参数,-i会检查指定的......
  • CCF认证——202109-2 贡献的变化——差分维护,前缀和算答案
    https://www.acwing.com/problem/content/4010/http://118.190.20.162/view.page?gpid=T130脑子一热抱着玩的心态试了一下三分,当然炸了,就当初认识三分了。正解是考虑p的变化的影响,p变成p+1的时候,答案的值取决于p属于相邻递增数对的值域区间的数量。也可以考虑递减的情况,两......
  • Acwing第 131 场周赛 之找最值过程中维护某个性质的方案
    https://www.acwing.com/problem/content/5367/题目如果只需要输出最大值,我都没有问题。每次需要输出方案的时候,我似乎都需要先统计最大值,再重新扫描一遍找所有能够取得最大值的方案,然后在这些方案中找到最大值。最好的做法应该是在找最大值的过程中就维护题目要求方案的排序关......
  • openGauss学习笔记-134 openGauss 数据库运维-例行维护-检查操作系统参数
    openGauss学习笔记-134openGauss数据库运维-例行维护-检查操作系统参数134.1检查办法通过openGauss提供的gs_checkos工具可以完成操作系统状态检查。前提条件当前的硬件和网络环境正常。各主机间root互信状态正常。只能使用root用户执行gs_checkos命令。操作步骤以r......
  • Spring Boot 2 正式停止维护。。再见了,Java 8!!
    大家好,我是栈长。没错,就在昨天,SpringBoot2.x停止维护了。。SpringBoot最后一个2.x的版本2.7.x已经停止维护,3.0.x也停止维护了,商业支持的版本也只有2.6.x了,2.5.x以下的版本彻底退出历史舞台。。从路线图可以看到每个版本的终止时间,包括最新的SpringBoot3.2.0,也......
  • 【OpenGauss】CentOS安装
    【OpenGauss】CentOS安装1、关闭防火墙修改vim/etc/selinux/configSELINUX=disabled#禁止自动启动systemctldisablefirewalld.service#停止防火请systemctlstopfirewalld.service#重启系统reboot#查看状态systemctlstatusfirewalld ......
  • 维护工具
    ASP.NETCoreonK8s入门学习系列文章目录 自从2018年底离开工作了3年的M公司加入X公司之后,开始了ASP.NETCore的实践,包括微服务架构与容器化等等。我们的实践是渐进的,当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生。......
  • openGauss学习笔记-133 openGauss 数据库运维-例行维护-日维护检查项
    openGauss学习笔记-133openGauss数据库运维-例行维护-日维护检查项133.1检查openGauss状态通过openGauss提供的工具查询数据库和实例状态,确认数据库和实例都处于正常的运行状态,可以对外提供数据服务。检查实例状态gs_check-Uomm-iCheckClusterState检查参数openG......