概述
优炫数据库管理系统UXDB是优炫软件研发的企业级安全可信数据库,拥有自主知识产权,是自主可控的数据库软件,具备高可用、高安全、高性能、高可靠、强兼容等特性,目前优炫数据库已经在政务、军工、电信、金融、医疗等多个行业的系统上线运行。
和任何数据库软件一样,优炫数据库UXDB需要定期执行特定的任务来达到最优的性能。这里讨论的任务是必需的,但它们本质上是重复性的并且可以很容易使用cron脚本或Windows的任务计划程序等标准工具来自动进行。建立合适的脚本并检查它们是否成功运行是数据库管理员的职责。
一个显而易见的维护任务是定期创建数据的后备拷贝。如果没有一个最近的备份,就不可能在灾难(磁盘失败、或在错误地删除一个关键表等)后进行恢复。另一种主要类型的维护任务是周期性地“清理”数据库,还有日志文件管理也是需要周期性考虑的任务。
相对于其他数据库管理系统,UXDB的维护量较低。
日常清理的基础知识
UXDB数据库要求周期性的清理维护。对于很多安装,让自动清理守护进程来执行清理已经足够,DBA需要调整其中描述的自动清理参数来获得最佳结果。还有部分DBA会希望使用手动管理的VACUUM命令来对后台进程的活动进行补充或者替换,通常使用cron或任务计划程序脚本来执行。
自动清理后台进程
UXDB有一个可选的但是被高度推荐的特性autovacuum,其目的是自动执行VACUUM和ANALYZE 命令。当被启用时,自动清理会检查被大量插入、更新或删除元组的表。这些检查会利用统计信息收集功能,在默认配置下,自动清理是被启用的并且相关配置参数已被正确配置。“自动清理后台进程”实际上由多个进程组成。有个称为自动清理启动器的常驻后台进程,负责为所有数据库启动自动清理工作者进程。此外,设置log_autovacuum_min_duration 来监控自动清理工作者的活动。
手动管理VACUUM命令
UXDB的VACUUM命令出于以下原因必须定期处理每一个表:
1
恢复或重用被已更新或已删除行所占用的磁盘空间。
2
更新被UXDB查询规划器使用的数据统计信息。
3
更新可见性映射,它可以加速只用索引的扫描。
4
保护老旧数据不会由于事务ID回卷或多事务ID回卷而丢失。
每一个原因都将指示以不同的频率和范围执行VACUUM操作。有两种VACUUM的变体:标准VACUUM和VACUUM FULL。
VACUUM FULL可以收回更多磁盘空间但是运行起来更慢。另外,标准形式的VACUUM可以和生产数据库操作并行运行(SELECT、INSERT、UPDATE和DELETE等命令将继续正常工作,但在清理期间你无法使用ALTER TABLE等命令来更新表的定义)。VACUUM FULL要求在其工作的表上得到一个排他锁,因此无法和对此表的其他使用并行。
通常DBA应尽量使用标准VACUUM并且避免VACUUM FULL。VACUUM会产生大量I/O流量,这将导致其他活动会话性能变差。可以调整一些配置参数来后台清理活动造成的性能冲击。