关于 YMatrix
部署数据库
使用数据库
管理集群
最佳实践
高级功能
高级查询
资源组
联邦查询
Grafana 监控
备份恢复
灾难恢复
管理手册
性能调优
故障诊断
工具指南
系统配置参数
SQL 参考
对于海量存储的分布式数据库,表数据规模随时间上涨是必定的,由此造成已有集群容量与算力(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)时会主动取消该会话,不会再把它留在数据库里。