配置备份主机和连接

您可以使用 vbr 将数据库备份到一个或多个主机(称为备份主机),这些主机可位于数据库群集之外。

您可以使用一个或多个备份主机或单个云存储桶来备份数据库。使用 vbr 配置文件可指定群集中的每个节点应使用哪个备份主机。

在备份到本地群集之外的主机之前,先配置 vbr 要使用的目标备份位置。所用的备份主机必须满足以下条件:

  • 具有足够的备份磁盘空间

  • 可通过 SSH 从数据库群集访问。

  • 数据库管理员帐户可执行免密码 SSH 访问。

  • 已安装 Vertica rpm 或 Python 3.7 及 rsync 3.0.5 或更高版本。

  • 如果使用状态防火墙,请将 tcp_keepalive_timetcp_keepalive_intvl sysctl 设置配置为使用小于防火墙超时值的值。

在数据库主机上配置 TCP 转发

vbr 依赖 TCP 转发将连接从数据库主机转发到备份主机。对于 copycluster 和复制任务,必须在两组主机上均启用 TCP 转发。与备份主机的 SSH 连接不需要 SSH 转发。

如果默认情况下尚未设置,请在 /etc/ssh/sshd_config 中设置 AllowTcpForwarding = Yes,然后向每个主机上的 sshd 发送 SIGHUP 信号。有关更多信息,请参阅 Linux sshd 文档。

如果未启用 TCP 转发,则需要该转发的任务将会失败,并显示以下消息:“连接到远程主机时出错: 请检查 SSH 设置,且所有节点上均已安装相同的 Vertica 版本。(Errors connecting to remote hosts: Check SSH settings, and that the same Vertica version is installed on all nodes.)”

在单节点群集上,vbr 使用随机的大数字端口创建本地 ssh 隧道。如果将 PermitOpen 设置为限制该端口,则上述操作将会失败。注释掉 sshd_config 中的 PermitOpen 行。

为备份主机创建配置文件

为完整备份或对象级别备份创建单独的配置文件,每个配置文件采用不同的名称。此外,使用相同的节点、备份主机和目录位置对。为每个数据库指定不同的备份目录位置。

准备备份主机目录

您必须先准备目标备份目录,然后 vbr 才能备份数据库。运行任务类型为 initvbr,为备份过程创建必需清单。您只需执行一次 init 进程。之后,Vertica 将自动维护清单。

估计备份主机磁盘要求

无论计划在何处保存数据备份,均需考虑站点对历史备份的磁盘要求。此外,如果使用多个存档,则多个存档可能需要更多的磁盘空间。Vertica 建议每个备份主机的空间至少是数据库节点占用空间大小的两倍。无论站点备份计划和保留要求的具体情况如何,均应遵循此建议。

要估计数据库大小,请使用 storage_containers 系统表的 used_bytes 列,如下例所示:

=> SELECT SUM(used_bytes) FROM storage_containers WHERE node_name='v_mydb_node0001';
total_size
------------
  302135743
(1 row)

使备份主机可访问

您必须验证源数据库节点和目标备份主机之间的任何防火墙均允许连接,以便在端口 50000 上执行 SSH 和 rsync。

备份主机运行的 rsync 和 Python 版本必须与 Vertica 安装包中提供的版本相同。

设置免密码 SSH 访问

要允许 vbr 访问备份主机, 数据库超级用户必须满足两个要求:

  • 在每台备份主机上都有一个帐户,且对备份目录具有写入权限。

  • 可执行从每个数据库群集主机到相应备份主机的免密码 SSH 访问。

如何满足这些要求取决于您的平台和基础设施。

备份主机之间的 SSH 访问以及从备份主机到数据库节点的访问并不是必需的。

如果您的站点未使用集中登录系统(例如 LDAP),则通常可使用 useradd 命令或通过 GUI 管理工具添加用户。有关详细信息,请参阅您的 Linux 分发版文档。

若平台支持,可使用 ssh-copy-id 命令将数据库管理员的 SSH 标识文件从其中一个数据库节点复制到备份位置,从而启用免密码 SSH 登录。例如,若要将 SSH 标识文件从某个节点复制到名为 backup01 的备份主机:

$ ssh-copy-id -i dbadmin@backup01|
Password:

尝试使用 "ssh dbadmin@backup01" 登录到计算机。然后,检查 ~/.ssh/authorized_keysfile 的内容,确认未添加您不想包括的额外键。

$ ssh backup01
Last login: Mon May 23 11:44:23 2011 from host01

重复上述步骤,将数据库管理员的 SSH 标识复制到用于备份数据库的所有备份主机中。

复制数据库管理员的 SSH 标识后,您应能够从群集中的任意节点登录到备份主机,而不收到输入密码的提示。

增加备份主机的 SSH 最大连接设置

如果配置要求将多个节点备份到一个备份主机 (n:1),请增加 SSH 后台程序 (sshd) 的并发 SSH 连接数。默认情况下,每个主机上的并发 SSH 连接数为 10,该值是在 sshd_config 文件中通过 MaxStartups 关键字设置的。每个备份主机的 MaxStartups 值应大于要备份到此备份主机的主机总数。有关配置 MaxStartups 的详细信息,请参考该参数的手册页

另请参阅