当前位置: 代码迷 >> 综合 >> Pivotal Greenplum? 6.9-管理员指南-管理系统-使用gpbackup和gprestore的并行备份-备份/还原存储插件API(Beta版)
  详细解决方案

Pivotal Greenplum? 6.9-管理员指南-管理系统-使用gpbackup和gprestore的并行备份-备份/还原存储插件API(Beta版)

热度:20   发布时间:2024-02-02 04:59:40.0

备份/恢复存储插件API(Beta版)

本主题描述如何使用Greenplum数据库备份/恢复存储插件API开发自定义存储插件。

注意:只有备份/恢复存储插件API是Beta版功能。存储插件是受支持的功能。

备份/恢复存储插件API提供了一个框架,您可以使用该框架开发自定义的备份存储系统,并将其与Greenplum数据库的gpbackup, gpbackup_manager和gprestore工具集成。

备份/恢复存储插件API定义了插件必须支持的一组接口。该API还指定了插件配置文件的格式和内容。

当您使用备份/恢复存储插件API时,您将创建一个插件,Greenplum数据库管理员会将其部署到Greenplum数据库集群。部署后,该插件可用于某些备份和恢复操作。

本主题包括以下子主题:

  • 插件配置文件
  • 插件API
  • 插件命令
  • 实施备份/恢复存储插件
  • 验证备份/还原存储插件
  • 打包和部署备份/恢复存储插件
父主题: 使用gpbackup和gprestore的并行备份
 

插件配置文件

指定 gpbackup 和 gprestore 命令的选项 --plugin-config,会指示这些命令使用配置文件中指定的插件进行操作。

插件配置文件提供了有关Greenplum数据库和插件的信息。备份/恢复存储插件API定义了插件配置文件的格式,以及在配置文件中使用的某些关键字。

插件配置文件是一个YAML文件,格式如下:

executablepath: path_to_plugin_executable
options:keyword1: value1keyword2: value2...keywordN: valueN

gpbackup 和 gprestore 使用 executablepath值,来确定插件可执行程序的文件系统位置。

插件配置文件还可以包括特定于插件实例的关键字和值。备份/恢复存储插件可以使用文件中指定的options 块,以从用户那里获取执行其任务所需的信息。例如,该信息可以包括位置、连接或认证信息。 插件应该以keyword:value的语法,指定和使用此信息的内容

以下是一个Greenplum Database S3备份/恢复存储插件的插件配置文件示例:

executablepath: $GPHOME/bin/gpbackup_s3_plugin
options:region: us-west-2aws_access_key_id: notarealIDaws_secret_access_key: notarealkeybucket: gp_backup_bucketfolder: greenplum_backups

插件API

使用备份/还原存储插件API时实现的插件,是一个可执行程序,它支持gpbackup和gprestore在各自生命周期操作中定义的时间点,调用特定的命令:

  • Greenplum数据库备份/恢复存储插件API提供了gpbackup生命周期的钩子,钩在初始化、备份期间以及清理/退出时。
  • API提供了到 gprestore 生命周期的钩子,钩在初始化、恢复期间以及清理/退出时。
  • API提供了参数,用于指定插件的设置或清理命令的执行范围(master主机,segment主机或segment实例)。范围为以下值之一:
    • master  -在master 主机上执行一次插件。
    • segment_host -在每个segment主机上执行一次插件。
    • segment- 对运行segment实例的主机上的每个活动的segment实例执行一次插件。
    当备份开始时,Greenplum数据库主机和segment实例基于Greenplum数据库配置值segment_host和segment是作为segment主机提供的,可以托管多个segment实例。与每个segment实例相比,在segment主机级别可能需要进行一些设置或清理。

插件API还定义了 delete_backup 命令,该命令由 gpbackup_manager调用。( gpbackup_manager源代码是专有的,该工具仅从Pivotal Network的Pivotal Greenplum Backup and Restore 下载中获取。)

备份/恢复存储插件API为备份/恢复存储插件可执行程序定义了以下的调用语法:

plugin_executable command config_file args

其中

  • plugin_executable - 备份/恢复存储插件可执行程序的绝对路径。 此路径由插件的配置文件YAML中配置的executablepath属性值确定。
  • command - 备份/恢复存储插件API命令的名称,用于标识gpbackup或gprestore生命周期操作的特定入口点。
  • config_file - 插件的配置文件YAML的绝对路径。
  • args - 命令参数; 实际参数因指定的command而异。

插件命令

Greenplum数据库备份/恢复存储插件API定义了以下命令:
表1.备份/还原存储插件API命令
指令名称 描述
plugin_api_version

返回插件支持的备份/还原存储插件API的版本。当前支持的版本是0.4.0。

setup_plugin_for_backup 初始化插件以进行备份操作。
backup_file 将备份文件移动到远程存储系统。
backup_data 将流数据从stdin移动到远程存储系统上的文件。
delete_backup 删除远程系统上给定备份时间戳记指定的目录。
cleanup_plugin_for_backup 备份操作后进行清理。
setup_plugin_for_restore 初始化插件以进行恢复操作。
restore_file 将备份文件从远程存储系统移动到本地主机上的指定位置。
restore_data 从远程存储系统移动备份文件,将数据流式传输到 stdout
cleanup_plugin_for_restore 恢复操作后进行清理。

备份/恢复存储插件必须支持上面标识的每个命令,即使它没有操作也是如此。

实施备份/还原存储插件

您可以使用任何编程或脚本语言来实现备份/还原存储插件可执行文件。

备份/还原存储插件执行的任务将非常特定于远程存储系统。在设计插件实现时,您将需要:

  • 检查与远程存储系统的连接和数据传输接口。
  • 确定远程系统的存储路径详细信息。
  • 标识用户需要的配置信息。
  • 为插件配置文件中所需的信息定义关键字和值语法。
  • 确定该插件是否以及如何修改(压缩等)往返远程存储系统的数据。
  • 定义一个 gpbackup 文件路径和远程存储系统。
  • 确定如何 gpbackup选项会影响插件,以及哪些是必需的和/或不适用的。例如,如果插件执行自己的压缩, gpbackup 必须使用 -无压缩 选项,以防止实用程序压缩数据。

您实现的备份/还原存储插件必须:

  • 支持“插件命令”中标识的所有插件命令。每个命令必须使用命令参考页上标识的值退出。

有关示例插件实现,请参考gpbackup-s3-plugin github存储库。

验证备份/还原存储插件

备份/还原存储插件API包括一个测试平台,您可以运行该测试平台以确保插件与 gpbackup 和 gprestore。

测试台是一个 重击您在Greenplum数据库安装中运行的脚本。该脚本在Greenplum数据库表中生成一个小的(<1MB)数据集,显式测试每个命令,并运行数据(文件和流)的备份和还原。测试台调用gpbackup 和 gprestore,依次依次调用/测试插件中实现的每个“备份/还原存储插件API”命令。

测试平台程序的调用语法为:
<span style="color:#00253e"><strong>plugin_test_bench.sh </strong> plugin_executable plugin_config</span>

程序

要针对某个插件运行“备份/还原存储插件API”测试平台,请执行以下操作:

  1. 登录到Greenplum数据库主控主机并设置您的环境。例如:
    <span style="color:#00253e">$ ssh gpadmin @ <gpmaster>
    gpadmin @ gpmaster $。/usr/local/greenplum-db/greenplum_path.sh</span>
  2. 从测试台获得测试台的副本 gpbackupgithub存储库。例如:
    <span style="color:#00253e">$ git clone git@github.com:greenplum-db / gpbackup.git</span>
    克隆操作将创建一个名为 gpbackup / 在当前工作目录中。
  3. 在控制台中找到测试平台程序 gpbackup / master / plugins 目录。例如:
    <span style="color:#00253e">$ ls gpbackup / master / plugins / plugin_test_bench.sh</span>
  4. 将插件可执行程序和插件配置YAML文件从您的开发系统复制到Greenplum数据库主主机。请注意将文件复制到的文件系统位置。
  5. 将插件可执行程序从Greenplum数据库主主机复制到每个段主机上的相同文件系统位置。
  6. 如果需要,请编辑插件配置YAML文件,以指定刚复制到Greenplum段的插件可执行程序的绝对路径。
  7. 针对插件运行测试平台程序。例如:
    <span style="color:#00253e">$ gpbackup / master / plugins / plugin_test_bench.sh / path / to / pluginexec /path/to/plugincfg.yaml</span>
  8. 检查测试台的输出。如果所有输出消息都指定,则您的插件通过了测试平台正在运行 和 通过。例如:
    <span style="color:#00253e">#----------------------------------------------
    #启动gpbackup插件测试
    #----------------------------------------------
    [RUNNING] plugin_api_version
    [通过] plugin_api_version
    [RUNNING] setup_plugin_for_backup
    [RUNNING] backup_file
    [RUNNING] setup_plugin_for_restore
    [RUNNING] restore_file
    [通过] setup_plugin_for_backup
    [通过] backup_file
    [通过] setup_plugin_for_restore
    [通过] restore_file
    [RUNNING] backup_data
    [RUNNING] restore_data
    [通过] backup_data
    [通过] restore_data
    [RUNNING] cleanup_plugin_for_backup
    [通过] cleanup_plugin_for_backup
    [RUNNING] cleanup_plugin_for_restore
    [通过] cleanup_plugin_for_restore
    [RUNNING] gpbackup与测试数据库
    [RUNNING]带有测试数据库的gprestore
    [通过] gpbackup和gprestore
    #----------------------------------------------
    #完成gpbackup插件测试
    #----------------------------------------------</span>

打包和部署备份/还原存储插件

您的备份/还原存储插件通过测试和测试台验证后,即可部署到Greenplum数据库安装中。打包备份/还原存储插件时,请考虑以下事项:

  • 备份/还原存储插件必须安装在Greenplum数据库集群中每个主机上的相同文件系统位置中。为插件标识提供安装说明。
  • 的 gpadmin 用户必须具有遍历备份/还原插件可执行程序的文件系统路径的权限。
  • 在插件中包含模板配置文件。
  • 记录有效的插件配置关键字,确保包括期望值的语法。
  • 所需文件 gpbackup 选项以及它们如何影响插件处理。
 

 

  相关解决方案