数据的备份备份

数据的备份备份是指将源端备份中所保存的备份数据转移到目的备份处。

您可以通过以下命令来进行数据的备份备份。

  1. obclient> ALTER SYSTEM BACKUP BACKUPSET ALL;
  2. obclient> ALTER SYSTEM BACKUP BACKUPSET N;

其中:

  • ALL 表示所有备份的备份集合。

  • N 表示待执行备份备份的 backup_set_id

假设当前有 12345 共 5 个 backup_set_id,且 124 为全量备份,35 为增量备份,执行备份备份的示例如下:

  • 备份当前所有的备份集合

    1. obclient> ALTER SYSTEM BACKUP BACKUPSET ALL;
  • 备份 backup_set_id3 的备份

    1. obclient> ALTER SYSTEM BACKUP BACKUPSET 3;

    在备份指定的 backup_set_id 时,对于有依赖关系的两个 backup_set_id,如果先对被依赖的 backup_set_id 执行了备份备份操作,再对另外一个 backup_set_id 执行备份备份操作时,会提示执行失败。

    例如,在本节的示例中,先执行 ALTER SYSTEM BACKUP BACKUPSET 3; 后,再执行 ALTER SYSTEM BACKUP BACKUPSET 1; 会失败。

非分片日志的备份备份

非分片日志的备份备份是指将源端备份中所保存的日志转存到目的备份处。

  1. 配置备份的备份目的端。

    在启动备份备份操作前,需要先通过 backup_backup_dest 配置备份的备份目的端,可设置为 OSS 或 NFS,设置方法与 backup_dest 配置项类似,backup_dest 的设置请参见 通过命令行备份

    示例如下:

    其中,xxx 表示备份的备份目的端。

    1. obclient> ALTER SYSTEM SET backup_backup_dest='xxx'
  2. 设置备份备份的工作线程的时间间隔。

    backup_backup_dest_option 配置项中 log_archive_checkpoint_interval 用于控制备份备份日志的时间间隔。更多 backup_backup_dest_option 配置项的使用说明请参见《参考指南(MySQL 模式) 》或《参考指南(Oracle 模式)》文档中 backup_backup_dest_option 章节。

    示例如下:

    1. obclient> ALTER SYSTEM SET backup_backup_dest_option = 'log_archive_checkpoint_interval='30s';
  3. 启动备份备份日志的工作线程。

    1. obclient> ALTER SYSTEM START BACKUP ARCHIVELOG;

    说明

    备份备份日志的工作线程启动后,后续如果需要停止,可通过执行 ALTER SYSTEM STOP BACKUP ARCHIVELOG; 语句来停止。

分片日志的备份备份

物理备份恢复支持备份目录的拆分,备份目录拆分后,您可以通过备份备份的操作来解决备份存储介质容量不够的问题。

备份备份前准备

  1. 如果需要拆分备份目录,则需要在备份前对每个备份目的端选项进行设置,即设置 backup_dest_optionbackup_backup_dest_option

    • 设置备份目的端的 backup_dest_option

      backup_dest_option 配置项用于控制备份相关的参数。更多 backup_dest_option 配置项的使用说明请参见《参考指南(MySQL 模式) 》或《参考指南(Oracle 模式)》文档中 backup_dest_option 章节。

      示例如下:

      1. obclient> ALTER SYSTEM SET backup_dest_option='log_archive_checkpoint_interval=2m&recovery_window=7d&auto_delete_obsolete_backup=true&log_archive_piece_switch_interval=1d&backup_copies=2';

      该示例中,日志归档频率为 5s,且日志备份会每天切分一个日志 Piece,备份数据会保留 7 天,7 天后,自动清理 7 天之前的数据。backup_copies2 表示在执行备份备份后才会回收原备份。

    • 设置备份的备份目的端的 backup_backup_dest_option

      backup_backup_dest_option 配置项用于控制备份备份相关的参数。更多 backup_backup_dest_option 配置项的使用说明请参见《参考指南(MySQL 模式) 》或《参考指南(Oracle 模式)》文档中 backup_backup_dest_option 章节。

      示例如下:

      1. obclient> ALTER SYSTEM SET backup_backup_dest_option='log_archive_checkpoint_interval=2m&recovery_window=14d&auto_delete_obsolete_backup=true';

      该示例中,备份备份日志的归档频率为 2 分钟,且备份的备份数据 14 天后过期。

  2. 开始物理备份,物理备份相关操作请参见 通过命令行备份 章节。

备份单一目录的备份

如果需要备份单一目录的备份,您可以指定备份一个 backup_set 或者 backup_piece。同时,如果您希望将备份的备份归档到与配置项 backup_backup_dest 不同的目的端上,可以在备份备份的命令中显示指定备份目的端。

执行备份单一目录的备份的命令如下:

  1. obclient> ALTER SYSTEM BACKUP BACKUPSET [=N] [backup_backup_dest = uri];
  2. obclient> ALTER SYSTEM BACKUP BACKUPPIECE [=N] [backup_backup_dest = uri];

其中:

  • N 表示待执行备份备份的 backup_set_idpiece_id

  • uri 表示指定的备份的备份目的端。

示例如下:

  • 备份 backup_set_id1 的备份到 file:///data/backup_backup_nfs 目录。

    1. obclient> ALTER SYSTEM BACKUP BACKUPSET 1 backup_backup_dest = 'file:///data/backup_backup_nfs'
  • 备份 piece_id1 的备份到 file:///data/backup_backup_nfs 目录。

    1. obclient> ALTER SYSTEM BACKUP BACKUPPIECE 1 backup_backup_dest = 'file:///data/backup_backup_nfs'

备份多目录的备**份**

执行备份多目录的备份的命令如下:

  • 备份 backup_set 的所有目录或指定目录

    1. obclient> ALTER SYSTEM BACKUP BACKUPSET ALL [backup_backup_dest = 'xxxxx'];
    2. obclient> ALTER SYSTEM BACKUP BACKUPSET ALL NOT BACKED UP N TIMES backup_backup_dest = 'xxxxx';
  • 备份 backup_piece 的所有目录或指定目录

    1. obclient> ALTER SYSTEM BACKUP BACKUPPIECE ALL [backup_backup_dest = 'xxxxx'];
    2. obclient> ALTER SYSTEM BACKUP BACKUPPIECE ALL NOT BACKED UP N TIMES backup_backup_dest = 'xxxxx';

其中:

  • ALL 表示会归档所有的 file_statusAVAILBLEbackup_set_idpiece_id

  • 指定 NOT BACKED UP N TIMES 参数表示已经备份过 N 次的数据,将不会再被重复归档。其中,N 表示次数。

  • 如果命令中指定了 NOT BACKED UP N TIMES 参数,则必须指定 backup_backup_dest 参数;如果命令中未指定 NOT BACKED UP N TIMES 参数,则可以不指定 backup_backup_dest 参数,默认会归档到配置项 backup_backup_dest 指定的目录下。