YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
- MPP 架构
- 镜像分布策略
- 持续聚集
- 滑动窗口
- Grafana 监控指标解读
- Prometheus 监控指标解读
- 术语表
-
工具指南
- mxaddmirrors
- mxbackup
- mxbench
- mxdeletesystem
- mxgate
- mxinitstandby
- mxmoveseg
- mxpacklogs
- mxrecover
- mxrestore
- mxshift
- mxstart
- mxstate
- mxstop
- gpconfig
- pgvector
-
数据类型
-
存储引擎
-
执行引擎
-
系统配置参数
SQL 参考
- ABORT
- ALTER_DATABASE
- ALTER_EXTENSION
- ALTER_EXTERNAL_TABLE
- ALTER_FOREIGN_DATA_WRAPPER
- ALTER_FOREIGN_TABLE
- ALTER_FUNCTION
- ALTER_INDEX
- ALTER_RESOURCE_GROUP
- ALTER_RESOURCE_QUEUE
- ALTER_ROLE
- ALTER_RULE
- ALTER_SCHEMA
- ALTER_SEQUENCE
- ALTER_SERVER
- ALTER_TABLE
- ALTER_TABLESPACE
- ALTER_TYPE
- ALTER_USER_MAPPING
- ALTER_VIEW
- ANALYZE
- BEGIN
- CHECKPOINT
- COMMIT
- COPY
- CREATE_DATABASE
- CREATE_EXTENSION
- CREATE_EXTERNAL_TABLE
- CREATE_FOREIGN_DATA_WRAPPER
- CREATE_FOREIGN_TABLE
- CREATE_FUNCTION
- CREATE_INDEX
- CREATE_RESOURCE_GROUP
- CREATE_RESOURCE_QUEUE
- CREATE_ROLE
- CREATE_RULE
- CREATE_SCHEMA
- CREATE_SEGMENT_SET
- CREATE_SEQUENCE
- CREATE_SERVER
- CREATE_TABLE
- CREATE_TABLE_AS
- CREATE_TABLESPACE
- CREATE_TYPE
- CREATE_USER_MAPPING
- CREATE_VIEW
- DELETE
- DROP_DATABASE
- DROP_EXTENSION
- DROP_EXTERNAL_TABLE
- DROP_FOREIGN_DATA_WRAPPER
- DROP_FOREIGN_TABLE
- DROP_FUNCTION
- DROP_INDEX
- DROP_RESOURCE_GROUP
- DROP_RESOURCE_QUEUE
- DROP_ROLE
- DROP_RULE
- DROP_SCHEMA
- DROP_SEGMENT_SET
- DROP_SEQUENCE
- DROP_SERVER
- DROP_TABLE
- DROP_TABLESPACE
- DROP_TYPE
- DROP_USER_MAPPING
- DROP_VIEW
- END
- EXPLAIN
- GRANT
- INSERT
- LOAD
- LOCK
- REINDEX
- RELEASE_SAVEPOINT
- RESET
- REVOKE
- ROLLBACK_TO_SAVEPOINT
- ROLLBACK
- SAVEPOINT
- SELECT INTO
- SET ROLE
- SET TRANSACTION
- SET
- SHOW
- START TRANSACTION
- TRUNCATE
- UPDATE
- VACUUM
常见问题(FAQ)
mxmoveseg
本文档介绍了镜像节点实例(Mirror)迁移工具 mxmoveseg。
注意!
mxmoveseg 只用于迁移gp_segment_configuration
表中role
(当前角色)为m
(mirror)的节点实例,与preferred_role
(原始角色)列无关。
1 描述
- 功能
- mxmoveseg 工具支持迁移任意一个当前为 Mirror 的数据库实例到其他服务器。
- 场景
- 当前服务器集群可以正常运行,但负载不均衡影响性能和稳定度,需要通过在不同机器间迁移 Mirror 来调整。
- 当前服务器已离线,需要将 Mirror 迁移到健康的新服务器上,以保障集群的运行。
- 限制
- mxmoveseg 工具不支持迁移 Standby。
注意!
在使用此工具前,你需要自行判断当前所有服务器是否健康,如存在异常服务器,还需了解异常的服务器具体为哪些,以确保健康的服务器全部可以被 mxmoveseg 收集到信息。
2 命令行参数信息
以下是详细的命令行参数信息介绍:
参数名 | 描述 |
---|---|
--config | 为将要迁移的 Mirror 创建一个配置文件 |
--plan | 为将要迁移的 Mirror 创建迁移计划 |
--setup | 执行计划步骤以实行迁移 |
-h / --help | 打印帮助信息 |
3 示例
3.1 迁移已有 Segment 至新服务器
注意!
新服务器需按照 YMatrix 相关部署文档安装好同版本 YMatrix 的 RPM/DEB 包,但不可实施在图形化界面初始化新集群的步骤。
注意!
新服务器可以存在大版本和旧服务器不同的 YMatrix 集群(例如旧机器上存在 YMatrix 4.8 的集群,新机器上存在 YMatrix 5.1 的集群)。
收集当前已有数据库集群的信息。clusterid 可使用 more /etc/matrixdb5/cluster.conf
查看。
[<用户名称>@<Master 主机名> ~]$ sudo /opt/ymatrix/matrixdb5/bin/mxctl expand init --cluster-id <clusterid> --unrestrict > /tmp/init
添加新服务器。
[<用户名称>@<Master 主机名> ~]$ cat /tmp/init | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand add --unrestrict --host <newhost> > /tmp/initadd
检查收集到信息的服务器之间网络是否连通。
[<用户名称>@<Master 主机名> ~]$ cat /tmp/initadd | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand netcheck > /tmp/netcheck
切换到 mxadmin 用户。
[<用户名称>@<Master 主机名> ~]$ sudo su - mxadmin
创建迁移配置文件,并根据生成的文件内部提示的信息配置需要迁移的实例。
$ mxmoveseg config --db-cluster-id <clusterid> --filename /tmp/migrate.cfg
# 配置文件创建完成后,请根据文件内容里的提示信息,人工编辑需要迁移的节点实例的 dbid(连接数据库后,执行 SELECT * FROM gp_segment_configuration; 查看 dbid)、主机名称等。SPEC:如果新服务器与旧服务器存在端口冲突,则需在文件中指配新的端口
$ vim /tmp/migrate.cfg
生成迁移计划。
$ mxmoveseg plan --init-file /tmp/netcheck --config-file /tmp/migrate.cfg > /tmp/plan
执行迁移。
$ mxmoveseg setup --plan-file /tmp/plan --mode cli
迁移成功后,可以使用图形化界面:“集群管理” - “集群概况” - “实例视图” 或使用 SELECT * FROM gp_segment_configuration
SQL 语句查看迁移 Mirror 的状态。
警告!
如果源迁移服务器为离线状态,那么离线的旧服务器即使在迁移完成后,也不可重新开启。如果开启,则旧的管理进程会被自动拉起,和新的管理进程存在服务发现的冲突,导致集群异常。
3.2 迁移已有 Segment 至旧服务器
收集当前已有数据库集群的信息。clusterid 可使用 more /etc/matrixdb5/cluster.conf
查看。
[<用户名称>@<Master 主机名> ~]$ sudo /opt/ymatrix/matrixdb5/bin/mxctl expand init --cluster-id <clusterid> --unrestrict > /tmp/init
检查收集到信息的服务器之间网络是否连通。
[<用户名称>@<Master 主机名> ~]$ cat /tmp/init | sudo /opt/ymatrix/matrixdb5/bin/mxctl expand netcheck > /tmp/netcheck
切换到 mxadmin 用户。
[<用户名称>@<Master 主机名> ~]$ sudo su - mxadmin
创建迁移配置文件,并根据生成的文件内部提示的信息配置需要迁移的实例。
$ mxmoveseg config --db-cluster-id <clusterid> --filename /tmp/migrate.cfg
# 配置文件创建完成后,请根据文件内容里的提示信息,人工编辑需要迁移的 Mirror 的 dbid(连接数据库后,执行 SELECT * FROM gp_segment_configuration; 查看 dbid)、主机名称等。SPEC:如果待迁移服务器与旧服务器存在端口冲突,则需在文件中指配新的端口
$ vim /tmp/migrate.cfg
生成迁移计划。
$ mxmoveseg plan --init-file /tmp/netcheck --config-file /tmp/migrate.cfg > /tmp/plan
执行迁移。
$ mxmoveseg setup --plan-file /tmp/plan --mode cli
迁移成功后,可以使用图形化界面:“集群管理” - “集群概况” - “实例视图” 或使用 SELECT * FROM gp_segment_configuration
SQL 语句查看迁移 Mirror 的状态。