云数据库 GAUSSDB-VACUUM:注意事项
时间:2024-11-13 14:46:42
注意事项
- 如果没有参数,VACUUM处理当前数据库里用户拥有相应权限的每个表。如果参数指定了一个表,VACUUM只处理指定的表。
- 要对一个表进行VACUUM操作,通常用户必须是表的所有者或者被授予了指定表VACUUM权限的用户,三权分立开关关闭时,默认系统管理员有该权限。数据库的所有者允许对数据库中除了共享目录以外的所有表进行VACUUM操作(该限制意味着只有系统管理员才能真正对一个数据库进行VACUUM操作)。VACUUM命令会跳过那些用户没有权限的表进行垃圾回收操作。
- VACUUM不能在事务块内执行。
- 建议生产数据库经常清理(至少每晚一次),以保证不断地删除失效的行。尤其是在增删了大量记录之后,对受影响的表执行VACUUM ANALYZE命令是一个很好的习惯。这样将更新系统目录为最近的更改,并且允许查询优化器在规划用户查询时有更好地选择。
- 不建议日常使用FULL选项,但是可以在特殊情况下使用。例如在用户删除了一个表的大部分行之后,希望从物理上缩小该表以减少磁盘空间占用。VACUUM FULL通常要比单纯的VACUUM收缩更多的表尺寸。FULL选项并不清理索引,所以推荐周期性的运行REINDEX命令。如果执行此命令后所占用物理空间无变化(未减少),请确认是否有其他活跃事务(删除数据事务开始之前开始的事务,并在VACUUM FULL执行前未结束)存在,如果有等其他活跃事务退出进行重试。
- VACUUM FULL通过重建表的方式将表内空闲空间归还给表空间,重建过程需要额外申请表中有效数据相当的存储空间。对于非段页式表,VACUUM FULL执行结束后,原表所占物理文件会被删除,原表所占的物理文件的空间会归还给操作系统;对于段页式表,VACUUM FULL执行结束后,原表所占的物理空间,会被归还给段页式数据文件,不会归还给操作系统。
- VACUUM会导致I/O流量的大幅增加,这可能会影响其他活动会话的性能。因此,有时候会建议使用基于开销的VACUUM延迟特性。
- 如果指定了VERBOSE选项,VACUUM将打印处理过程中的信息,以表明当前正在处理的表。各种有关当前表的统计信息也会打印出来。
- 当含有带括号的选项列表时,选项可以以任何顺序写入。如果没有括号,则选项必须按语法显示的顺序给出。
- VACUUM和VACUUM FULL时,会根据参数vacuum_defer_cleanup_age延迟清理行存表记录,即不会立即清理刚刚删除的元组。
- VACUUM ANALYZE先执行一个VACUUM操作,然后给每个选定的表执行一个ANALYZE。对于日常维护脚本而言,这是一个很方便的组合。
- 简单的VACUUM(不带FULL选项)只是简单地回收空间并且令其可以再次使用。这种形式的命令可以和对表的普通读写并发操作,因为没有请求排他锁。VACUUM FULL执行更广泛的处理,包括跨块移动行,以便把表压缩到最少的磁盘块数目里。这种形式要慢许多并且在处理的时候需要在表上施加一个排他锁。
- 同时执行多个VACUUM FULL可能出现死锁。
- 如果没有打开xc_maintenance_mode参数,那么VACUUM FULL操作将跳过所有系统表。
- 执行DELETE后立即执行VACUUM FULL命令不会回收空间。执行DELETE后再执行1000个非SELECT事务,或者等待1s后再执行1个事务,之后再执行VACUUM FULL命令空间才会回收。
- VACUUM FULL期间会对表加排他锁,不建议在业务高峰期运行VACUUM FULL,可能导致等待时间过长或者业务中断。
- Ustore手动VACUUM与Astore手动VACUUM行为一致、会对堆表、索引等进行加锁清理;而Ustore的AUTOVACUUM仅做分区表GPI清理、堆表FSM更新以及索引页面回收。
- VACUUM FULL分区表时,会遍历分区进行清理,并在分区清理后重建GPI,因此当分区较多时,建议先删除GPI,在VACUUM FULL执行完成后重新创建索引,以此降低VACUUM FULL的执行时间。
- 在线VACUUM FULL不支持对于数据库级、索引级、分区表、二级分区表、段页式表、hash bucket表、临时表、unlogged表对象执行在线VACUUM FULL。如对象涉及以上不支持的类型,ONLINE关键字将不会生效,VACUUM FULL默认以离线方式执行,并提示当前VACUUM FULL语句不支持在线执行。
- 执行在线VACUUM FULL操作时,需预留足够的磁盘空间,即剩余空间是所操作的表(及其上索引等附属品)总和的1倍。
- 如果用户取消在线VACUUM FULL执行过程,首先进入残留清理流程,如果用户再次取消,则会结束清理流程导致残留。
- 在线VACUUM FULL与用户业务之间存在资源争抢,不适合大业务背景下做在线VACUUM FULL。对于资源有限的场景,建议采用细粒度资源管控进行操作,且不建议使用并行加速功能。
- M-Compatibility模式下不支持在线VACUUM FULL操作。
- 在线VACUUM FULL不支持FREEZE关键字,若同时指定FREEZE关键字与ONLINE关键字,VACUUM FULL默认以离线方式执行,并提示当前VACUUM FULL语句不支持在线执行。
- 在线VACUUM FULL不支持在事务内执行,不支持在存储过程中执行。
- 若在线VACUUM FULL操作失败,表上可能会有明显存储空间膨胀。其中膨胀程度与在线VACUUM FULL执行时长以及并发写操作量成正比。长事务可能会阻塞在线VACUUM FULL,建议避免在长事务存在时进行在线VACUUM FULL。
- 在线VACUUM FULL执行后期将阻塞DQL操作,对并发的DML操作报错。
- 在线VACUUM FULL执行期间,应尽量避免与其他DDL并发执行,否则可能会出现死锁、报错等;若出现此类情况,可以重新连接客户端进行重试。
- 在线VACUUM FULL过程中会生成名为online$$ddl$$[hash值]的模式。
- 模式的属主默认为初始用户,不建议在线VACUUM FULL执行中操作此模式,可能会导致中止在线VACUUM FULL并产生未知错误。不建议用户对此模式下的表格进行查询。
- 用户不可创建online$$为前缀的模式,会有报错提示。若已存在同名模式冲突,在线VACUUM FULL将不会生效,在线VACUUM FULL默认以离线方式执行,并提示当前VACUUM FULL语句是因为模式名冲突不可在线。
- 在线VACUUM FULL操作用户为非初始用户时,若表上带有表达式索引,且表达式索引中会调用用户自定义函数,则操作报错。
support.huaweicloud.com/centralized-devg-v8-gaussdb/gaussdb-42-0700.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章