关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
系统配置参数
SQL 参考
常见问题(FAQ)
新架构 FAQ
集群部署 FAQ
SQL 查询 FAQ
MatrixGate FAQ
运维 FAQ
监控告警 FAQ
PXF FAQ
PLPython FAQ
性能 FAQ
对于海量存储的分布式数据库,表数据规模随时间上涨是必定的,由此造成已有集群容量与算力(CPU)不够用也同样不可避免。此时,一个正确高效的集群扩容变得不可或缺。尽管在系统被初始定义时就留出增长的空间是最为明智的,但是通常不太可能过于提前地在资源上投资。 因此,我们建议你定期地规划并执行数据库扩容操作。
在 YMatrix 里,你可以自由选择使用图形化界面扩容或命令行在线扩容,我们建议使用简单易操作的图形化界面。目前 YMatrix 已经支持在线平滑扩容(扩容期间读写业务不受任何影响)、灵活设置表的数据分布等功能等功能。
扩容过程中新旧节点的目录(catalog)是一致的吗
扩容过程中对于其他查询的影响
扩容失败后,DDL 一直报 gpexpand in progress, catalog changes are disallowed 怎么办
说明上一次扩容中断后,仍有会话持有扩容锁。先查出持锁会话:
SELECT pid, state, wait_event_type, now() - xact_start AS duration, query
FROM pg_stat_activity
WHERE query ILIKE '%gp_expand_lock_catalog%' AND pid <> pg_backend_pid();
确认是要清理的会话后取消它,会话事务回滚后锁即释放:
SELECT pg_cancel_backend(pid)
FROM pg_stat_activity
WHERE query ILIKE '%gp_expand_lock_catalog%' AND pid <> pg_backend_pid();
锁释放后重新执行 DDL 即可。从 6.8.5 开始,扩容工具收到终止信号(SIGTERM)时会主动取消该会话,不会再把它留在数据库里。