使用lt_probackup工具对lightdb数据库进行备份

lt_probackup描述

lt_probackup是一个对lightdb进行备份和恢复的实用程序。旨在执行lightdb数据库实例的定期备份,能够在发生故障时恢复服务器。

lt_probackup的核心概念

  • WAL:lightdb数据库的数据目录($LTDATA)的lt_wal子目录下都保持有一个预写式日志(WAL,Write Ahead Log)。其目的保证数据库崩溃后的安全:系统崩溃,可以“重放(replay)”从最后一次检查点(checkpoint)以来的日志项来恢复数据库一致性。
  • 时间点恢复(point-in-time-recovery):自从基础备份完成之后,可以将数据库恢复到任何时间点的状态。
  • 全量备份:包含恢复数据库所需的所有数据文件。
  • 增量备份:仅存储自上次备份以来更改的数据。
    • DELTA 模式:在这种模式下,lt_probackup读取lightdb数据库的数据目录($LTDATA)中的所有数据文件,并仅复制自上次备份以来发生更改的那些页面。
    • PAGE 模式:在这种模式下,lt_probackup从上一次全量或增量备份开始扫描归档中的所有 WAL 文件。新创建的备份仅包含 WAL 记录中提到的页面。这要求自上次备份以来的所有 WAL 文件都存在于 WAL 归档中。
  • WAL传输模式
    • 归档(archive):依赖连续归档来确保一致的恢复。默认
    • 流(stream):无论是否设置了连续归档,一致恢复所需的 WAL 段(segment)在备份期间通过复制协议流式传输并包含到备份文件中
  • 备份目录: 这是一个目录,用于存储所有附加元信息的备份文件,以及时间点恢复所需的 WAL 归档。允许在单个备份目录的不同子目录中为不同数据库实例存储备份。

lt_probackup好处

  1. 增量备份:与进行完整备份相比,增量备份节省磁盘空间并加快备份速度。
  2. 增量恢复:复用 lightdb数据目录(环境变量$LTDATA)内有效未更改页面加速从备份恢复。 
  3. 验证:自动数据一致性检查和按需备份验证不需要实际数据恢复。
  4. ​​​保留:根据保留策略来管理WAL归档和备份。可以根据恢复时间保留的备份数量或者为特定备份的生存时间 (TTL)配置保留策略。过期的备份可以合并或删除。
  5. 并行:在多个并行线程上运行backup(备份)restore(恢复)merge(合并)delete(删除)validate(验证)、checkdb(???)等操作。
  6. 压缩:以压缩状态存储备份数据以节省磁盘空间。

  7. 重复数据删除:通过从增量备份中排除非数据文件(例如_vm or _fsm 这些数据一直没有变化)来节省磁盘空间。

  8. 远程操作:备份在远程机器上的lightdb数据库实例 或者 远程地恢复一个备份。

  9. 部分还原:仅还原指定的数据库。

 lt_probackup限制

  1. windows系统不支持。
  2.  备份服务器也需要安装lightdb实例但无需启动,其lt_probackup的版本需要与lightdb数据库实例所使用的lt_probackup版本一致。
  3. 远程模式备份的情况下,备份服务器与数据库实例服务器硬件架构必须相同, — 从一个 32 位系统传送到一个 64 位系统将不会工作。

lt_probackup 命令行概览

lt_probackup version  # 查看该工具版本

lt_probackup help [command] # 命令帮助信息

lt_probackup init -B backup_dir # 初始化备份目录

lt_probackup add-instance -B backup_dir -D data_dir --instance instance_name # 添加实例,在备份目录backup_dir的子目录wal和backups创建子目录instance_name

lt_probackup del-instance -B backup_dir --instance instance_name # 删除备份目录中已经存在的实例。

lt_probackup set-config -B backup_dir --instance instance_name [option...] 在备份目录backup_dir对备份实例(对应目录instance_name)的lt_probackup设置写入配置文件bakcup_dir/backups/instance_name/pg_probackup.conf。

lt_probackup set-backup -B backup_dir --instance instance_name -i backup_id [option...]#简单说就是给备份目录backup_dir/backups/instance_name中配置文件pg_probackup.conf添加内容。

lt_probackup show-config -B backup_dir --instance instance_name []--format=format #显示位于备份目录中的pg_probackup.conf配置文件的内容。可以指定选项以获取JSON格式的结果。默认情况下,显示为纯文本。backup_dir/backups/instance_name --format=json,要编辑pg_probackup.conf,请使用set-config命令。

lt_probackup show -B backup_dir [option...]

lt_probackup backup -B backup_dir --instance instance_name -b backup_mode [option...] #备份操作

lt_probackup restore -B backup_dir --instance instance_name [option...]

lt_probackup checkdb -B backup_dir --instance instance_name -D data_dir [option...]

lt_probackup validate -B backup_dir [option...]

lt_probackup merge -B backup_dir --instance instance_name -i backup_id [option...]

lt_probackup delete -B backup_dir --instance instance_name { -i backup_id | --delete-wal | --delete-expired | --merge-expired } [option...]

lt_probackup archive-push -B backup_dir --instance instance_name --wal-file-path wal_file_path --wal-file-name wal_file_name [option...]

lt_probackup archive-get -B backup_dir --instance instance_name --wal-file-path wal_file_path --wal-file-name wal_file_name [option...]

lt_probackup catchup -b catchup_mode --source-pgdata=path_to_pgdata_on_remote_server --destination-pgdata=path_to_local_dir [option...]

lt_probackup配置

  • 环境准备:

  1. 本地虚拟机 ip 192.168.76.128
  2. 操作系统centos 7
  3. 服务器用户 lightdb
  4. 硬件架构 x86_64 
  5. 在本地虚拟机安装lightdb数据库实例并启动(默认监听端口5432)
  6. lt_probackup位于lightdb数据库安装目录(环境变量$LTHOME)的bin子目录。
[lightdb@lightdb ~]$ echo $LTHOME
/home/lightdb/database/lightdb-x/13.3-22.2
[lightdb@lightdb ~]$ ls $LTHOME/bin/lt_probackup
/home/lightdb/database/lightdb-x/13.3-22.2/bin/lt_probackup
  • 初始化备份目录

    • 语法 lt_probackup init -B backup_dir
    • 备份目录构成 
      • wal/— WAL 文件的目录。

      • backups/— 备份文件的目录。

    • 在本地虚拟机操作初始化备份目录  /home/lightdb/backup
    # 初始化备份目录
    [lightdb@lightdb ~]$ lt_probackup init -B /home/lightdb/backup
    INFO: Backup catalog '/home/lightdb/backup' successfully inited
    # 查看备份目录“/home/lightdb/backup”内容
    [lightdb@lightdb ~]$ ls /home/lightdb/backup
    backups  wal
    
  • 添加新的备份实例到备份目录
    • 语法 
      # lt_probackup 子命令 add-instance 语法
      lt_probackup add-instance -B backup_dir -D data_dir --instance instance_name [remote_options]
      
      选项解释
         data_dir 待备份的数据库实例的数据目录(对应环境变量$LTDATA)
      
         instance_name 作为备份目录的子目录存储实例的 WAL 和备份文件。
      
         remote_options 远程参数作为可选参数,仅当数据库实例的数据目录位于远程系统上时才需要指定。        
      
      
         remote_options(远程参数)包含的重要选项进一步说明:
      
             --remote-proto=proto 指定用于远程操作的协议。目前仅支持 SSH 协议。
      
             --remote-host=destination 指定要连接的远程主机 IP 地址或主机名。
      
             --remote-port=port 指定要连接的远程主机端口。默认22
      
             --remote-user=username ssh连接远程主机用户。如果省略此选项则使用启动SSH连接的当前用户。
      
             --remote-path=path 指定远程主机上的lt_probackup的所在目录
      
         补充:lt_probackup子命令add-instance, set-config, backup, catchup, restore, archive-push, and archive-get 均支持远程参数,在配置远程模式的情况下这些远程参数才有意义。
      
    • 在本地虚拟机为备份目录“ /home/lightdb/backup”添加新的备份实例并查看:
      # 可以在单个备份目录“/home/lightdb/backup” 添加多个数据库实例的备份,为单个数据库实例添加一个备份实例到备份目录,以本地实例(192.168.76.128:5432)备份为例,样例命令如下:
      
      [lightdb@lightdb ~]$ lt_probackup add-instance -B /home/lightdb/backup -D /home/lightdb/database/lightdb-x/13.3-22.2/data/defaultCluster/ --instance instance_192.168.76.128_5432
      INFO: Instance 'instance_192.168.76.128_5432' successfully inited
      
      
      # 查看备份目录“/home/lightdb/backup”子目录backups和wal下的备份实例信息:
      
      [lightdb@lightdb backup]$ ls /home/lightdb/backup/wal/ -l
      总用量 0
      drwx------ 2 lightdb lightdb 6 7月  10 12:23 instance_192.168.76.128_5432
      
      [lightdb@lightdb backup]$ ls /home/lightdb/backup/backups/ -l
      总用量 0
      drwx------ 2 lightdb lightdb 31 7月  10 12:23 instance_192.168.76.128_5432
      
      注意:lt_probackup在备份目录的子目录(wal,backups)下创建instance_name子目录。该instance_name目录包含控制此备份实例的lt_probackup设置的配置文件pg_probackup.conf。如果使用remote_options,则指定参数将被添加到backup_dir/backups/instance_name/pg_probackup.conf这个配置文件之中。
      
      # 进入目录backup_dir/backups/instance_name,查看控制此备份实例的lt_probackup设置的配置文件pg_probackup.conf内容,具体操作如下:
      
      [lightdb@lightdb backup]$ cd /home/lightdb/backup/backups/instance_192.168.76.128_5432/
      [lightdb@lightdb instance_192.168.76.128_5432]$ cat pg_probackup.conf
      # Backup instance information
      pgdata = /home/lightdb/database/lightdb-x/13.3-22.2/data/defaultCluster # 要备份的数据库实例的数据目录的路径。
      system-identifier = 7117222465357338420 # 要备份的数据库实例的唯一标识
      xlog-seg-size = 536870912
      
      
      
      
      
      
      
      
      
  • 配置lt_probackup

    • 语法 
      # 初始化备份目录(lt_probackup init)并添加新的备份实例(lt_probackup add-instance)后,可以使用命令set-config修改目录backup_dir/backups/instance_name下的配置文件pg_probackup.conf的内容来微调lt_probackup配置。
      
      lt_probackup set-config -B backup_dir --instance instance_name
      [--help] [--pgdata=pgdata-path]
      [--retention-redundancy=redundancy][--retention-window=window][--wal-depth=wal_depth]
      [--compress-algorithm=compression_algorithm] [--compress-level=compression_level]
      [-d dbname] [-h host] [-p port] [-U username]
      [--archive-timeout=timeout] [--external-dirs=external_directory_path]
      [--restore-command=cmdline]
      [remote_options] [remote_wal_archive_options] [logging_options]
      
      常用选项说明:
          -B 备份目录
      
          --instance 备份实例
      
      retention_options 保留选项,可以将这些选项与备份(backup)和删除(delete)命令一起使用。
      
          --retention-redundancy=redundancy
          指定要保留在数据目录中的完整备份副本的数量。必须是非负整数。零值禁用此设置。
      
          默认:0
      
          --retention-window=window
          可恢复天数。必须是非负整数。零值禁用此设置。
      
          默认:0
      
          --wal-depth=wal_depth
          每个时间线上必须保留执行 PITR 能力的最新有效备份的数量。必须是非负整数。零值禁用此设置。
      
          默认:0
      
          --delete-wal
          删除不再需要从任何现有备份恢复集群的 WAL 文件。
      
          --delete-expired
          删除不符合pg_probackup.conf配置文件中定义的保留策略的备份。
      
          --merge-expired
          将满足保留策略要求的最旧增量备份与其已过期的父备份合并。
      
          --dry-run
          显示所有可用备份的当前状态,不删除或合并过期的备份(如果有)。
      
      
      压缩选项,可以将这些选项与备份(backup)和归档推送(archive-push)命令一起使用。
      
          --compress-algorithm=compression_algorithm
          定义用于压缩数据文件的算法。可能的值为zlib、pglz和none。如果设置为zlibor pglz,此选项将启用压缩。默认情况下,压缩被禁用。对于archive-push命令,pglz不支持压缩算法。
      
          默认:none
      
          --compress-level=compression_level
          定义压缩级别(0 到 9,0 表示不压缩,9 表示最佳压缩)。此选项可与该--compress-algorithm选项一起使用。
      
          默认:1
      
          --compress
          --compress-algorithm=zlib和--compress-level=1的别名。
      
      
      connection_options数据库实例的连接信息,可以将这些选项与backup、catchup和checkdb命令一起使用。
      
          支持所有libpq 环境变量。
      
          -d dbname
          --pgdatabase=dbname
          PGDATABASE
      指定要连接的数据库的名称。该连接仅用于管理备份过程,因此可以连接到任何现有数据库。PGDATABASE如果命令行、环境变量或lt_probackup.conf配置文件中未提供此选项,则lt_probackup尝试从环境变量中获取此值,如果未设置PGUSER变量,则从当前用户名中获取此值。
      
          -h host
          --pghost=host
          PGHOST
          指定运行服务器的系统的主机名。如果该值以斜杠开头,则将其用作 Unix 域套接字的目录。
      
          默认:localhost
      
          -p port
          --pgport=port
          PGPORT
          指定服务器正在侦听连接的 TCP 端口或本地 Unix 域套接字文件扩展名。
      
          默认:5432
      
          -U username
          --pguser=username
          PGUSER
          要连接的用户名。
      
          -w
          --no-password
      禁用密码提示。如果服务器需要密码验证并且密码不能通过其他方式(例如.pgpass文件或PGPASSWORD环境变    量)获得,则连接尝试将失败。此标志在没有用户输入密码的批处理作业和脚本中很有用。
      
          -W
          --password
          强制提示密码。(已弃用)
      
      
           --external-dirs=external_directory_path 非必填,
      通过递归地将其内容复制到备份目录中的单独子目录中,将指定目录包括到备份中。此选项对于备份位于数据目录之外的脚本、SQL 转储文件和配置文件很有用。如果您想备份多个外部目录,请在 Unix 上用冒号分隔它们的路径
      
          remote_options 非必填,远程模式参数(之前lt_probakcup add-instance 命令中有说明) 
      
      

    • 在本地虚拟机执行lt_probackup子命令set-config并查看结果(set-config)
      # 已完成初始化备份目录(init)并为某个数据库实例添加实例信息到该备份目录(add-instance)
      # 在备份目录(/home/lightdb/backup)对数据库实例(192.168.76.128:5432)的lt_probackup进行微调配置(set-config)
      [lightdb@lightdb ~]$ lt_probackup set-config -B /home/lightdb/backup \
      > --instance instance_192.168.76.128_5432 \
      > --retention-window=14 \
      > --retention-redundancy=2 \
      > --compress-algorithm=none \
      > --compress-level=2 \
      > --merge-expired \
      > -h 192.168.76.128 -p 5432 -U lt_probackup
      [lightdb@lightdb ~]$ echo $?
      0
      # 使用show-config命令查看显示位于目录backup_dir/backups/instance_name中的配置文件pg_probackup.conf的内容。
      [lightdb@lightdb ~]$ lt_probackup show-config -B /home/lightdb/backup --instance instance_192.168.76.128_5432
      # Backup instance information 备份实例信息
      pgdata = /home/lightdb/database/lightdb-x/13.3-22.2/data/defaultCluster
      system-identifier = 7117222465357338420
      xlog-seg-size = 536870912
      # Connection parameters 连接该待备份的数据库实例的连接信息
      pgdatabase = postgres
      pghost = 192.168.76.128
      pgport = 5432
      pguser = lt_probackup
      # Replica parameters 
      replica-timeout = 5min
      # Archive parameters 归档参数
      archive-timeout = 5min
      # Logging parameters 日志参数
      log-level-console = INFO
      log-level-file = OFF
      log-filename = pg_probackup.log
      log-rotation-size = 0TB
      log-rotation-age = 0d
      # Retention parameters 保留策略
      retention-redundancy = 2
      retention-window = 14
      wal-depth = 0
      # Compression parameters 压缩参数
      compress-algorithm = none
      compress-level = 2
      # Remote access parameters 远程访问参数
      remote-proto = ssh
      
      
      

      ​​​​​​​

lt_probackup的使用

  • 连续归档配置

    • PAGE 备份模式下进行备份和使用archive作为WAL 传输模式均需要启用连续归档配置。

    • 在数据库实例的数据目录($LTDATA)的配置文件lightdb.conf配置连续归档步骤:

      • 确保配置项wal_level参数高于minimal

      • 在 master 上配置归档,配置项archive_mode必须设置为onor always

      • 设置archive_command参数

      • 本地虚拟机中数据目录下的lightdb.conf配置文件中上面三个配置项wal_level,archive_mode,archive_command的具体样例如下

        wal_level = replica # 确保wal_level参数高于minimal.
        archive_mode = on # archive_mode必须设置为on or always
        archive_command = '/home/lightdb/database/lightdb-x/13.3-22.2/bin/lt_probackup_for_em.sh %p %f' 
        
        配置项说明:
        
        # wal_level确定将多少信息写入 WAL。默认值为replica,它写入足够的数据以支持 WAL 归档和复制。minimal删除所有日志记录,除了从崩溃或立即关闭中恢复所需的信息。最后,logical添加支持逻辑解码所需的信息。每个级别都包括在所有较低级别记录的信息。此参数只能在数据库实例启动时设置。
        
        # archive_mode启用后(on),通过设置archive_command将完成的 WAL 段(segment)发送到归档存储。除了off, 还有两种模式:on和always。在正常操作期间,两种模式(on和always)之间没有区别,但是当设置为always的时候,归档器也会在归档恢复或standby模式期间启用。在always模式下,所有从归档中恢复的文件或使用流式复制进行流式传输的所有文件都将被归档(再次)。 此参数只能在数据库实例启动时设置。
        
        # archive_command 本地 shell 命令归档一个完成的WAL文件段。字符串%p会被替换为要归档的文件的路径名(路径名是相对于数据目录($LTDATA),比如当前虚拟机环境为lt_wal目录)而%f仅替换为文件名。
        
        lightdb为了更方便地维护archive_command配置项的内容,在安装数据库lightdb的过程中会在安装目录($LTHOME)的bin目录下面准备了一个空shell脚本lt_probackup_for_em.sh。该shell脚本执行需要两个参数固定为%p %f(这两个变量%p和%f会被替换),若需要执行备份,需要往该shell脚本中准备archive-push命令,当前本地虚拟机上的lt_probackup_for_em.sh内容的样例数据如下:
            [lightdb@lightdb defaultCluster]$ cat $LTHOME/bin/lt_probackup_for_em.sh
        #!/bin/bash
        lt_probackup archive-push -B "/home/lightdb/backup" --instance instance_192.168.76.128_5432  --wal-file-path=$1 --wal-file-name=$2
        
        补充 archive-push命令的选项说明:
            --wal-file-path  在配置项archive_command和配置项restore_command中提供WAL文件路径。使用该%p变量作为此选项的值,或 显式指定数据目录($LTDATA)之外的文件的路径
            --wal-file-name  在配置项archive_command和配置项restore_command中提供WAL文件名称。使用该%f变量作为此选项的值以进行正确处理。如果--wal-file-path的值是数据目录之外的路径,则显式指定WAL文件名。
        
        补充 archive-push 命令说明:
            将 WAL 文件复制到备份目录的相应子目录中,并通过instance_name和system-identifier来验证备份实例。
            如果要复制的WAL文件已经存在于备份目录中,lt_probackup计算并比较它们的校验和。如果校验和匹配,archive-push则跳过相应的文件并返回成功的执行代码。否则,archive-push失败并出现错误。如果想在校验和不匹配的情况下替换 WAL 文件,补充命令archive-push选项--overwrite。
        
            每个文件都被复制到一个带有.part后缀的临时文件中。如果临时文件已经存在,lt_probackup将在丢弃它之前等待archive_timeout秒。复制完成后,将执行原子重命名。该算法确保archive-push失败不会停止连续归档,并且从多个源并发归档到单个 WAL 归档中没有归档损坏的风险。
        
            为了加快归档速度,可以为archive-push添加选项--batch-size然后以指定大小批量复制 WAL 段。如果--batch-size指定了,那么还可以使用-j选项在多个线程上复制一批 WAL 段。
        
            --no-sync除非使用该标志,否则复制到归档的 WAL 段(segment)将同步到磁盘。
           
        
        
        

  • 归档模式

    • ​​​​​​​​​​​​​​ARCHIVE 是默认的 WAL 传输模式(备份操作默认使用该模式)。

      • ARCHIVE 备份依赖于连续归档来获取所需的 WAL 段,以将数据库实例恢复到备份时的一致状态。
    • STREAM 是可选的 WAL 传输模式。

      • 与 ARCHIVE 模式下的备份不同,STREAM 备份包括在进行备份时将数据库实例恢复到一致状态所需的所有 WAL 段。
      • 备份期间,lt_probackup流式传输包含 Start LSN和Stop LSN之间的WAL 记录的 WAL 文件到目录backup_dir/backups/instance_name/backup_id/database/lt_wal 。
      • 即使使用的是连续存档,STREAM 备份在以下情况下仍然很有用:

        • STREAM 备份可以在对 WAL 归档没有文件访问权限的服务器上恢复。

        • STREAM 备份能够在归档中的 WAL 文件不再可用的时间点恢复集群状态。

        • STREAM 模式下的备份可以从生成少量 WAL 流量的备用服务器中获取,而无需长时间等待 WAL 段填满。

  • 创建备份​​​​​​​

    • 语法
      lt_probackup backup -B backup_dir --instance instance_name -b backup_mode
      选项说明:
          -B backup_dir # 备份目录 
          --instance instance_name # 在备份目录中的备份实例
          -b backup_mode # 备份模式进一步说明:
              FULL — 创建一个完整备份,其中包含要恢复的数据库实例的所有数据文件。
              DELTA — 读取数据目录($LTDATA)中的所有数据文件,并为自上次备份以来已更改的页面创建增量备份。
              PAGE — 根据自上次完整或增量备份以来生成的 WAL 文件创建增量备份。仅从数据文件中读取更改的块。
      
      

      注意:从增量备份恢复数据库实例时候,lt_probackup依赖于父全备份以及它们之间的所有增量备份,称为“备份链”。在进行增量备份之前,您必须至少创建一个完整备份。

    • 在本地虚拟机执行创建备份
      ​
      # 在本地虚拟机,完成本地实例的全量备份(full),使用backup命令如下:
      
      [lightdb@lightdb ~]$ lt_probackup backup -B /home/lightdb/backup --instance instance_192.168.76.128_5432 -b full
      INFO: Backup start, lt_probackup version: 2.4.15, instance: instance_192.168.76.128_5432, backup ID: RET2J1, backup mode: FULL, wal mode: ARCHIVE, remote: false, compress-algorithm: none, compress-level: 2
      WARNING: This LightDB instance was initialized without data block checksums. lt_probackup have no way to detect data block corruption without them. Reinitialize LTDATA with option '--data-checksums'.
      INFO: wait for pg_start_backup()
      INFO: Wait for WAL segment /home/lightdb/backup/wal/instance_192.168.76.128_5432/000000010000000300000001 to be archived
      INFO: LTDATA size: 360MB
      INFO: Start transferring data files
      INFO: Data files are transferred, time elapsed: 2s
      INFO: wait for pg_stop_backup()
      INFO: pg_stop backup() successfully executed
      INFO: Wait for LSN 3/40026F58 in archived WAL segment /home/lightdb/backup/wal/instance_192.168.76.128_5432/000000010000000300000002
      INFO: Syncing backup files to disk
      INFO: Backup files are synced, time elapsed: 0
      INFO: Validating backup RET2J1
      INFO: Backup RET2J1 data files are valid
      INFO: Backup RET2J1 resident size: 360MB
      INFO: Backup RET2J1 completed
      
      # ARCHIV模式下的备份依赖于连续归档来获取所需的 WAL 段,以将数据库数据库实例恢复到备份时的一致状态。
      进行备份时,lt_probackup确保Start LSN和Stop LSN之间的WAL 记录的 WAL 文件存在于目录backup_dir/wal/instance_name中。lt_probackup还确保 Start LSN和Stop LSN之间的WAL 记录可以被解析。这种预防措施消除了静默 WAL 损坏的风险。
      
      
      ​

    • 在备份执行过程中使用htop命令观察cpu,内存等使用情况:​​​​​​​

       

      # htop在centos 7可以使用yum安装 
      [lightdb@lightdb ~]$ sudo yum install -y htop
      
      # 在本地虚拟机,执行本地实例备份,执行命令bakcup,观察此时的前台日志和执行结果
      [lightdb@lightdb ~]$ lt_probackup backup -B /home/lightdb/backup --instance instance_192.168.76.128_5432 -b full
      INFO: Backup start, lt_probackup version: 2.4.15, instance: instance_192.168.76.128_5432, backup ID: RET37Y, backup mode: FULL, wal mode: ARCHIVE, remote: false, compress-algorithm: none, compress-level: 2
      WARNING: This LightDB instance was initialized without data block checksums. lt_probackup have no way to detect data block corruption without them. Reinitialize LTDATA with option '--data-checksums'.
      INFO: wait for pg_start_backup()
      INFO: Wait for WAL segment /home/lightdb/backup/wal/instance_192.168.76.128_5432/000000010000000500000000 to be archived
      INFO: LTDATA size: 360MB
      INFO: Start transferring data files
      INFO: Data files are transferred, time elapsed: 3s
      INFO: wait for pg_stop_backup()
      INFO: pg_stop backup() successfully executed
      INFO: Wait for LSN 5/2000A898 in archived WAL segment /home/lightdb/backup/wal/instance_192.168.76.128_5432/000000010000000500000001
      INFO: Syncing backup files to disk
      INFO: Backup files are synced, time elapsed: 0
      INFO: Validating backup RET37Y
      INFO: Backup RET37Y data files are valid
      INFO: Backup RET37Y resident size: 361MB
      INFO: Backup RET37Y completed
      
      # 已经使用htop命令监控到cpu使用时间明显增加,造成该影响的进程的命令如下:
          lt_probackup archive-push -B /home/lightdb/backup --instance instance_192.168.76.128_5432 --wal-file-path=lt_wal/000000010000000400000007 --wal-file-name=000000010000000400000007

    • 校验备份

      • lt_probackup在备份过程中计算备份中每个文件的校验和。检查备份数据文件校验和的过程称为备份验证。默认情况下,在进行备份后和恢复之前立即运行验证,以检测可能的备份损坏。

      • 想跳过备份验证,backup命令使用选项--no-validate

      • 在本地虚拟机检查所有的备份是否有效

        # 验证所有的备份是否都有效。
        [lightdb@lightdb ~]$ lt_probackup validate -B /home/lightdb/backup --instance instance_192.168.76.128_5432
        INFO: Validate backups of the instance 'instance_192.168.76.128_5432'
        INFO: Validating backup RET37Y
        INFO: Backup RET37Y data files are valid
        INFO: Backup RET37Y WAL segments are valid
        INFO: Validating backup RET2UT
        INFO: Backup RET2UT data files are valid
        INFO: Backup RET2UT WAL segments are valid
        INFO: Validating backup RET2R2
        INFO: Backup RET2R2 data files are valid
        INFO: Backup RET2R2 WAL segments are valid
        INFO: Validating backup RET2MZ
        INFO: Backup RET2MZ data files are valid
        INFO: Backup RET2MZ WAL segments are valid
        INFO: Validating backup RET2M1
        INFO: Backup RET2M1 data files are valid
        INFO: Backup RET2M1 WAL segments are valid
        INFO: Validating backup RET2J1
        INFO: Backup RET2J1 data files are valid
        INFO: Backup RET2J1 WAL segments are valid
        INFO: All backups are valid
        

    • 管理备份

      • 查看备份信息

        • 在本地虚拟机执行查询备份信息
          # 查看备份目录的备份信息
          [lightdb@lightdb ~]$ lt_probackup show -B /home/lightdb/backup
          
          BACKUP INSTANCE 'instance_192.168.76.128_5432'
          ========================================================================================================================================================
           Instance                      Version  ID      Recovery Time           Mode  WAL Mode  TLI  Time   Data    WAL  Zratio  Start LSN   Stop LSN    Status
          ========================================================================================================================================================
           instance_192.168.76.128_5432  13       RET37Y  2022-07-10 21:09:52+08  FULL  ARCHIVE   1/0   28s  361MB  512MB    1.00  5/120       5/2000A898  OK
           instance_192.168.76.128_5432  13       RET2UT  2022-07-10 21:01:59+08  FULL  ARCHIVE   1/0   27s  361MB  512MB    1.00  4/A0001690  4/C000A0C8  OK
           instance_192.168.76.128_5432  13       RET2R2  2022-07-10 20:59:43+08  FULL  ARCHIVE   1/0   26s  360MB  512MB    1.00  4/40000120  4/6000EE18  OK
           instance_192.168.76.128_5432  13       RET2MZ  2022-07-10 20:57:14+08  FULL  ARCHIVE   1/0   25s  360MB  512MB    1.00  3/E0000120  4/260C8     OK
           instance_192.168.76.128_5432  13       RET2M1  2022-07-10 20:56:42+08  FULL  ARCHIVE   1/0   25s  360MB  512MB    1.00  3/80000120  3/A000EEA8  OK
           instance_192.168.76.128_5432  13       RET2J1  2022-07-10 20:55:01+08  FULL  ARCHIVE   1/0   33s  360MB  512MB    1.00  3/20000068  3/40026F58  OK
          
          
          查询出的备份信息列表字段解释:
              Instance—备份实例名称。
          
              Version—lightdb数据库的版本。
          
              ID—每次的备份操作的标识。
          
              Recovery time—可以恢复数据库状态的最早时刻。
          
              Mode—备份模式,可能的值:FULL, PAGE, DELTA.
          
              WAL Mode— WAL传输模式。可能的值:STREAM和ARCHIVE。
          
              TLI— 当前备份及其父的时间线标识符。
          
              Time— 执行备份所花费的时间。
          
              Data— 此备份中数据文件的大小。此值不包括 WAL 文件的大小。对于 STREAM 备份,备份的总大小可以计算为Data+ WAL。
          
               WAL— 在恢复期间需要应用的 WAL 文件的未压缩大小,以使备份达到一致状态。
          
              Zratio— 压缩比计算为“未压缩字节” / “数据字节”。
          
              Start LSN— WAL 日志序列号对应于备份过程的开始。数据库实例恢复过程开始的重做点。
          
              Stop LSN— 与备份过程结束相对应的 WAL 日志序列号。数据库实例恢复过程的一致性点。
          
              Status— 备份状态。可能的值:
          
                  OK— 备份完整且有效。
          
                  DONE— 备份已完成,但未经验证。
          
                  RUNNING— 备份正在进行中。
          
                  MERGING— 正在合并备份。
          
                  MERGED— 备份数据文件已成功合并,但其元数据正在更新中。只有完整备份才能具有此状态。
          
                  DELETING— 正在删除备份文件。
          
                  CORRUPT— 一些备份文件已损坏。
          
                  ERROR— 备份因意外错误而中止。
          
                  ORPHAN— 备份无效,因为其父备份之一已损坏或丢失。
          
             # 只有当备份状态为OK或DONE时,才能从备份中恢复集群。

      • 查询WAL归档信息

        • 在本地虚拟机查看WAL归档信息
          [lightdb@lightdb ~]$ lt_probackup show -B /home/lightdb/backup --instance instance_192.168.76.128_5432 --archive
          
          ARCHIVE INSTANCE 'instance_192.168.76.128_5432'
          =================================================================================================================================
           TLI  Parent TLI  Switchpoint  Min Segno                 Max Segno                 N segments  Size    Zratio  N backups  Status
          =================================================================================================================================
           1    0           0/0          000000010000000200000007  000000010000000500000001  19          9728MB  1.00    6          OK
          
          
          #WAL归档信息列表中列字段含义说明:
              TLI— 时间线标识符。
          
              Parent TLI— 此时间线分支的时间线的标识符。
          
              Switchpoint— 时间线从其父时间线分支时的 LSN。
          
              Min Segno— 属于时间线的第一个 WAL 段。
          
              Max Segno— 属于时间线的最后一个 WAL 段。
          
              N segments— 属于时间线的 WAL 段数。
          
              Size— 文件在磁​​盘上的大小。
          
              Zratio— 压缩比计算为N segments* wal_segment_size* wal_block_size/ Size。
          
              N backups— 属于时间线的备份数量。
              Status— 此时间线的 WAL 存档状态。可能的值:
          
                  OK  #Min Segno和Max Segno之间的所有 WAL 段都存在。
          
                DEGRADED #Min Min Segno和Max Segno之间的一些 WAL 段丢失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值