mxaddmirrors

本文档介绍了镜像节点(Mirror)添加工具 mxaddmirrors。

1 描述

  • 功能
    • mxaddmirrors 工具支持将 Mirror 添加到最初没有配置 Mirror 的 YMatrix 系统,并开始数据节点主节点(Primary)与 Mirror 之间的在线复制进程。
    • 一旦所有的 Mirror 与其对应的 Primary 同步好,你的 YMatrix 数据库系统就建立了完全的数据冗余。

注意!
在添加的过程中,会消耗网络、IO 和 CPU 等资源,若业务负载很高可能会影响业务运行。
建议在添加过程中,保持数据库处于静止状态,减少负载和其他查询的运行。

2 命令行参数信息

以下是详细的命令行参数信息介绍:

子命令 参数名 描述 可选
config 创建一个自定义配置文件
--db-cluster-id 数据库集群 ID。用以标识唯一的数据库集群 可选
--filename 将生成的配置保存到该文件,如不存在此文件,则会自动生成。也可以使用重定向 可选
init 将收集到的信息转换为一份基本计划
--db-cluster-id 数据库集群 ID。放置在 /etc/matrixdb6/cluster.conf 文件中。如果当前只部署了一个集群使用最后一个 ClusterID 即可,否则选择对应集群的 --db-cluster-id 必选
--mirror-port-base 从当前端口开始搜索一个空闲端口作为 Mirror 监听的端口,默认从 7000 开始寻找 可选
plan 生成部署计划
--init-file init 命令输出的信息重定向文件的绝对路径 必选
--custom-config config 命令生成的文件的绝对路径 可选
setup 执行部署
--plan-file plan 命令输出的信息重定向文件的绝对路径 必选

注意!
如果不需要修改默认行为的话,只选取必选参数即可。

3 使用流程示例

mxaddmirrors 需要在主节点(Master)拥有 sudo 权限的用户上(除 mxadmin 外,需使用绝对路径 /opt/ymatrix/matrixdb6/bin/mxaddmirrors)执行。如误在无 sudo 权限的用户上执行了 mxaddmirrors init 命令,则会在该用户下生成 mxaddmirrors.init 文件,其他用户只可读不可写。需要删除该生成文件,再在拥有 sudo 权限的用户上重新执行命令,以重新生成文件。
我们在此给出默认行为、自定义配置两种流程示例。具体如下:

注意!
3.1,3.2 任选其一即可,默认行为将采取 YMatrix 默认的环状(Ring)镜像分布策略,自定义配置则可以自行调整至需要的其他镜像策略。无论选取默认行为还是自定义,你都需执行一个完整的 Mirror 添加流程。

3.1 默认行为

  1. 收集机器信息和已部署数据库的部分信息。

    $ mxaddmirrors init > /tmp/mxaddmirrors.init
  2. 根据收集的信息生成部署计划,即具体部署步骤。

    $ mxaddmirrors plan --init-file /tmp/mxaddmirrors.init > /tmp/mxaddmirrors.plan
  3. 执行部署。

    $ mxaddmirrors setup --plan-file /tmp/mxaddmirrors.plan --mode cli

3.2 自定义配置

  1. 将生成的配置保存到 config 文件,如不存在此文件,则会自动生成。
$ mxaddmirrors config --filename /tmp/config
  1. 编辑 config 文件。
$ edit config
  1. 收集机器信息和已部署数据库的部分信息。
$ mxaddmirrors init > /tmp/mxaddmirrors.init
  1. 根据收集的信息生成部署计划,即具体部署步骤。
$ mxaddmirrors plan --init-file /tmp/mxaddmirrors.init --custom-config /tmp/config > /tmp/mxaddmirrors.plan
  1. 执行部署。
$ mxaddmirrors setup --plan-file /tmp/mxaddmirrors.plan --mode cli

生成的配置文件为 CSV 格式。

0||7000|
1||7000|
  • 此文件一共有四列,分别是 content_idhostnameportrootdir of datadir(在该目录下生成各种数据库的目录和文件)。
  • 如果是空值,表示不修改此配置,使用默认行为。
  • content_id 不允许为空并且不能重复。被修改的选项都会生效,所见即所得。

注意!
从 YMatrix 5 开始部署了全新的数据库架构,启用 mxaddmirrors 工具来添加 Mirror,与 gpaddmirrors 不兼容。YMatrix 5 之前版本可使用 gpaddmirrors 工具。

另见:mxinitstandbymxdeletesystem