KingbaseES备份与恢复工具手册.pdf
KingbaseES 备份与恢复工具手册 金仓数据库管理系统 KingbaseES 文档版本:V9(V009R001C001B0024) 发布日期:2023 年 10 月 12 日 北京人大金仓信息技术股份有限公司 目 目 录 录 第 1 章 前言 2 1.1 适用读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 术语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4 手册约定 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 2 章 概述 6 2.1 备份与恢复的目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 备份与还原的解决方案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2.1 物理备份还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2.2 逻辑备份还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 第 3 章 sys_rman 工具介绍 8 备份架构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1.1 单机 + 外部备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.1.2 单机 + 内部备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.1.3 一主一备 + 外部备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.1.4 一主一备 + 内部备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 如何搭建 REPO 节点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.3 工具的构成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.4 工具使用约定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.1 第 4 章 sys_rman 的初始化配置 15 4.1 准备初始配置文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.2 执行初始化操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.1 在单机 + 外部备份场景下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.2 在单机 + 内部备份场景下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.2.3 在集群中每个节点单独备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.2.4 在一主一备 + 外部备份场景下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.2.5 在一主一备 + 内部备份场景下 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 备份任务的启停 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3.1 23 4.3 sys_backup.sh start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I 4.4 目 录 4.3.2 sys_backup.sh stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.3.3 sys_backup.sh pause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.3.4 sys_backup.sh unpause . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 sys_backup.conf 信息变化处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 第 5 章 备份 26 5.1 全量备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.2 差异备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.3 增量备份-文件粒度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.4 块增量备份-块粒度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.5 备份集管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.5.1 查看已有的备份集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5.5.2 自动清除过期的备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5.3 手动清除过期的备份 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5.4 备份集检查 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 第 6 章 还原与恢复 6.1 6.2 31 还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 6.1.1 测试性质的还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.1.2 基于最新备份的还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.1.3 指定备份集还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.1.4 指定事务 ID 还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.5 指定时间点还原 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.6 表空间支持 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.1.7 还原后节点处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 恢复 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.2.1 PITR 的恢复策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 6.2.2 集群还原恢复策略 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 第 7 章 工具变更说明 37 第 8 章 附录 A:备份管理与优化操作 38 8.1 性能优化-并行处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 8.2 性能优化-压缩优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 8.3 备份还原时限速 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 第 9 章 附录 B:sys_rman.conf 配置说明 40 9.1 以下参数修改后需要重新初始化生效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 9.2 以下参数修改后需要一次全量备份生效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 9.3 以下参数修改后直接生效 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 10 章 附录 C:常见异常处理 42 版权声明 47 II 目 服务周期承诺 录 48 III 目 录 本文档为备份与恢复工具手册。 1 第 1 章 前言 1 第 章 前言 本文档描述了 KingbaseES 备份与恢复的配置与使用方法以及常见异常的分析与处理方法。 前言部分包含以下主题: • 适用读者 • 相关文档 • 术语 • 手册约定 1.1 适用读者 KinbaseES 备份与恢复手册适用于所有使用 KingbaseES 的数据库管理员 (DBA),应用程序开发者,安全管理 员,系统运维或管理人员。 1.2 相关文档 有关 KingbaseES 备份与恢复工具手册关联技术的更多信息,请参阅以下资源: • 《高可用概述》 • 《KingbaseES 高可用常见故障恢复指南》 • 《KingbaseES 客户端应用参考手册》 1.3 术语 2 第 1 章 前言 术语 定义 物理备份 physical backup,指对数据库数据文件和日志文件的复制,从一个物理位置拷贝到另一个物理 位置,基于操作系统下的物理文件为单位进行。 逻辑备份 logical backup,指在联机状态下导出或导入数据库中用户创建的数据库对象信息,包含表、视 图、数据、存储过程等,以 SQL 语句为基础进行。 预写式日志 Write Ahead Log,WAL 日志,KingbaseES 对数据库理论中 REDO 概念的实现。 检查点 CheckPoint 检查点是 KingbaseES 事务序列中的点,数据库系统将保证该点之前的所有 WAL 日志对应的内容都更新到数据文件中。 表空间 表空间允许数据库管理员在文件系统中定义用来存放数据库对象的文件位置;表空间中的数据 对象将实际存储于指定的位置,与默认的数据对象存储位置不同。 时间点恢复 Point-In-Time-Recover,时间点恢复,KingbaseES 支持使用物理备份加连续归档的 WAL 日 志,将数据库恢复到指定时间点。 备份集 backup set,指一次备份的所有备份内容的集合。 全量备份 full backup. 针对所有需要的文件进行的一次备份。当还原时,不需要额外的依赖,通过此备 份集即可还原数据文件到备份时的状态。 差异备份 differential backup, 属于选择性备份,仅选择上一次全量备份后,发生了变化的文件。优点是 节省了一定的空间,相比于全量备份。缺点是还原时,需要本次差异备份集及其依赖的全量备 份集。 增量备份 file incremental backup,属于选择性备份,仅选择上一次全量或差异或增量备份后,发生了变 化的文件。优点是更加地节省空间。缺点是还原时,需要本次增量备份集以及前次备份集、再 前次备份集、直到串行依赖到一次全量备份集。 块增量备份 page incremental backup,属于选择性备份,在上一次全量或差异或增量备份后时间线未发生 改变的情况下,仅选择上一次全量或差异或增量备份后,发生了变化的表文件的数据块和其他 发生了变化的非表文件。优点是更加地节省空间。缺点是还原时,需要本次块增量备份集以及 前次备份集、再前次备份集、直到串行依赖到一次全量备份集;并且依赖 ktrack 插件。 Stanza 是一个字符串标签,用来具名化若干备份还原信息;是一个定义备份还原所需信息的包裹,是 一个包含若干个配置参数的集合。一般来说,stanza 的名称用来标识一个集群。 Tool 备份还原工具 sys_rman,在部署架构中表示工具逻辑上的角色。 Ktrack KingbaseES 数据库服务器的插件,用来持续追踪记录发生改变的表文件的数据块。 REPO 节点 仓库节点,实际存储备份文件的服务器节点,要求安装 KingbaseES 软件,详见如何搭建 REPO 节点章节。 见续表 3 第 1 章 前言 表 1.3.1 – 续表 术语 定义 DB 节点 数据库节点,实际运行数据库实例的服务器节点,要求运行 KingbaseES 软件;根据场景需 要,DB 节点可以兼任 REPO 节点。 REPO_PATH 仓库节点的实际存储备份的文件夹。 KB_DATA 数据库节点的 data 目录。 1.4 手册约定 本文档中可能出现“注意、提示、警告、另请参阅”等标志,它们所代表的含义如下: 注意: 用于突出重要/关键信息、最佳实践等。 提示: 用于突出小窍门、捷径等。 警告: 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其 它不可预知的结果。 另请参阅: 用于突出参考、参阅等。 以下程序代码书写约定适用于本文档: 符号 说明 [] 表示包含一个或多个可选项。不需要输入中括号本身。 {} 表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花括号本身。 | 分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 ... 表示其之前的元素可以被重复。 斜体 表示占位符或者需要提供特定值的变量。 见续表 4 第 1 章 前言 表 1.4.1 – 续表 符号 说明 大写 表示系统提供的元素,以便与用户定义的元素相互区分。除出现在方括号中的元素外,应当按 照顺序逐字输入。当然,部分元素在系统中是大小写不敏感的,因此用户可以根据系统说明以 小写形式输入。 小写 表示由用户提供的元素。 5 第 2 章 概述 2 第 章 概述 本部分包含以下内容: • 备份与恢复的目的 • 备份与还原的解决方案 • 物理备份还原 • 逻辑备份还原 2.1 备份与恢复的目的 计算机系统不可避免地会发生内部故障、系统故障、硬件故障等问题,这些问题会造成数据库中的事务非正常停 止,或部分数据丢失,因此数据库管理系统必须具有把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状 态或完整状态)的功能,这就是数据库的备份与恢复。备份和恢复技术是数据库管理系统的一个重要组成部分,对系 统的可靠性起着决定性作用。 对于事务内部故障和系统故障,数据库将使用日志文件自动恢复,不需要人工干预;但对于硬件故障、误操作和 恶意破坏,数据库无法自动恢复。因此,数据库管理员需要定期备份数据,当故障发生时就可以使用备份的数据来恢 复数据库了。 2.2 备份与还原的解决方案 对于硬件故障、误操作和恶意破坏等无法自动恢复的场景,KingbaseES 提供的备份还原方式可以分为两种:一 种是基于日志的物理备份还原,另一种是基于 SQL 语句的逻辑备份还原。这两种方式技术原理不一样,各有特点, 适用于不同的场合。 6 第 2 章 概述 2.2.1 物理备份还原 物理备份还原指的是通过备份集和归档日志将数据库转化为历史状态的过程,KingbaseES 通过备份磁盘中数据 目录下的物理文件(数据文件、控制文件和日志文件),依靠还原数据文件和日志恢复技术来保护数据。目前只支持 数据库实例整体备份,不支持单个数据库或数据表备份。 sys_rman 工具属于物理备份还原。 2.2.2 逻辑备份还原 逻辑备份还原指的是利用备份的数据库对象把数据库从一个快照转化到另一个快照的过程(数据库在某个时刻的 一个状态称为一个快照)。KingbaseES 提供数据库对象的联机逻辑备份还原功能,备份对象包括:数据库、模式、 表、视图、约束、权限、触发器、函数、序列。 KingbaseES 提供相关命令完成逻辑备份与还原功能。 逻辑备份主要支持导出整个实例、指定库、指定模式、指定表等几种导出的方式,借助 sys_dumpall 可以导出整 个实例或角色表空间等定义和数据,借助 sys_dump 可以导出指定数据库的所有对象定义和内容,也可以导出指定模 式或指定表的对象定义和内容。 详细使用说明请参见: • 《KingbaseES 客户端应用参考手册》 7 第3章 3 第 章 SYS_RMAN 工具介绍 sys_rman 工具介绍 本文主要介绍物理备份工具(sys_rman)的使用方法。包括备份初始化配置、备份、还原、恢复、备份集管理 等。 • 工具 sys_rman 属于物理备份还原 • 工具备份的对象,既可以是数据库单机实例,也可以是数据库集群 • 工具初始配置时、备份时,数据库服务必须处于运行状态、读写功能正常、集群各节点在线 • 工具的初始配置、备份,必须在 REPO 仓库节点上执行 • 工具的还原,必须在 DB 数据库节点上执行 本部分包含以下内容: • 备份架构 • 如何搭建 REPO 节点 • 工具的构成 • 工具使用约定 3.1 备份架构 本章节列举常用的四种场景的备份架构。 3.1.1 单机 + 外部备份 此场景为单机数据库节点和 REPO 备份服务器节点。备份服务器是一个单独的物理设备,相对独立,具有较高 的冗余度,备份不会随着数据库节点故障而失效。 8 第3章 3.1.2 SYS_RMAN 工具介绍 单机 + 内部备份 此场景为单机数据库节点内部备份,方便部署和操作,但备份 REPO 与数据库实例处于同一个物理主机,冗余 度较低。 9 第3章 3.1.3 SYS_RMAN 工具介绍 一主一备 + 外部备份 此场景为主备双机常规环境设计,其中 REPO 节点位于独立的服务器。可选配置从备库拷贝数据文件,极大地 减少备份为主库带来的性能损耗,且增加了第三方专用存储服务器,用于存放和管理备份文件。 10 第3章 3.1.4 SYS_RMAN 工具介绍 一主一备 + 内部备份 此场景为主备双机常规环境设计,其中 repo 节点位于当前数据库服务器的主节点。可选配置从备库拷贝数据文 件,极大地减少备份为主库带来的性能损耗。 3.2 如何搭建 REPO 节点 REPO 节点的搭建可以采用安装 KingbaseES 软件或拷贝文件目录的方式。 安装方式:请在对应的 REPO 服务器上,安装 KingbaseES 产品,安装目录必须与当前环境中的 DB 数据库节 点安装目录一致; 拷贝方式:请拷贝 DB 数据库节点目录下的所有文件和文件夹,包含 bin、lib、share、etc 等子文件夹,拷贝到 REPO 服务器上,位置和 DB 数据库节点安装目录保持一致。 以 DB 节点安装到/home/kingbase/cluster/project/cluster/kingbase/为例: [kingbase@DB-NODE-1 /home/kingbase/cluster/project/cluster/kingbase/] [kingbase@DB-NODE-1 /home/kingbase/cluster/project/cluster/kingbase/] ls archive bin etc include lib log share [kingbase@DB-NODE-1 /home/kingbase/cluster/project/cluster/kingbase/] ls bin/kingbase bin/kingbase [kingbase@DB-NODE-1 /home/kingbase/cluster/project/cluster/kingbase/] ls bin/sys_rman 11 第3章 SYS_RMAN 工具介绍 bin/sys_rman [kingbase@DB-NODE-1 /home/kingbase/cluster/project/cluster/kingbase/] 安装或拷贝后的 REPO 节点,在 /home/kingbase/cluster/project/cluster/kingbase/ 目录具有相关内容: [kingbase@REPO-NODE /home/kingbase/cluster/project/cluster/kingbase/] [kingbase@REPO-NODE /home/kingbase/cluster/project/cluster/kingbase/] ls archive bin etc include lib log share [kingbase@REPO-NODE /home/kingbase/cluster/project/cluster/kingbase/] ls bin/sys_rman bin/sys_rman [kingbase@REPO-NODE /home/kingbase/cluster/project/cluster/kingbase/] 3.3 工具的构成 工具不需要额外安装,由 KingbaseES 安装包统一部署。所包含的可执行程序和配置文件及其功能说明如下: 文件名 用途及路径 说明 sys_rman 二进制可执行文件, 执行备份还原的核心 此命令可以在数据库节点和备份服务器 文件;位于安装目录的./bin 目录下 上执行,读取 sys_rman.conf 配置信息 脚本文件, 用于协助管理员完成初始配置; 只能在 REPO 节点上执行,执行初始化 位于安装目录的./bin 目录下 自动生成 sys_rman.conf 文件 初始化脚本对应的配置文件; 模板位于安 执行 sys_backup.sh 时需要读取该文件的 装目录./kingbase/share 下。 配置信息 运行时配置文件,将由初始化配置自动 自动生成运行时配置文件,不建议人为 生成 修改 sys_backup.sh sys_backup.conf sys_rman.conf sys_backup.sh 命令格式说明: Usage: sys_backup.sh {init|start|stop|pause|unpause} 参数说明: • init:初始化备份还原功能,该命令依赖于数据库实例已经正常工作,请勿在数据库业务繁忙时执行,业务繁忙 时,可能会由于归档没落盘,或其他条件检查导致初始化失败 • start:启动 CRONTAB 任务来完成备份功能 • stop:停止 CRONTAB 任务来完成备份功能 • pause:暂时停止备份功能 • unpause:恢复被暂停的备份功能 12 第3章 SYS_RMAN 工具介绍 sys_backup.conf 配置说明:sys_backup.conf 配置说明详见准备初始配置文件 sys_rman 命令使用说明:sys_rman 命令使用说明详见备份 注意: 文档后续章节,以工具安装于目录 /home/kingbase/cluster/project/cluster/kingbase/bin/ 为例,以 sys_rman.conf 配置文件位于 /home/kingbase/kbbr_repo/sys_rman.conf 为例。 3.4 工具使用约定 • 工具至多支持 8 个 DB 节点的集群 • 启动数据库实例时,应该使用绝对路径来指定 data 目录。 • 跨机备份场景,需保证 sys_rman 二进制文件在数据库节点和备份节点的目录结构保持一致 (包括软连接、绝对 路径) • 如果操作系统是麒麟 Kylin 系统,需要以 root 用户执行:echo 非 ROOT 用户名 » /etc/cron.allow # 默认是 kingbase • 如果操作系统是 UOS 或者 Deepin,需要在系统配置文件 /etc/profile 末尾增加一行 export OPENSSL_CONF=/etc/ssl/ • 集群中 witness 节点不用备份,无需配置 witness ip 至备份配置文件中 • 集群中的每个 DB 数据库节点、REPO 备份服务器,都将创建 REPO_PATH,如果已有此目录或权限问题, 将报错退出 • 集群中所有节点必须做时钟同步,系统时间需保持一致(要求至少误差范围在 2s 以内) • 工具不支持 UNLOGGED TABLE 的数据内容的备份和还原 • 在单机或集群的外部备份场景下,不同节点之间需要远程访问,V008R006C005B0023 之后的版本,支持 securecmdd 或 sshd;之前的版本支持 sshd。 • 使用 securecmdd 功能时,管理员需要在每个 DB 节点和 REPO 节点启动 securecmdd 相关服务。启动方式参 考《金仓数据守护集群和读写分离集群使用手册》1211----远程通信工具 • 使用 sshd 功能时,集群数据节点和 REPO 节点,root 用户和数据库用户应该是 ssh 配置交叉免密登录,工具 只支持默认的 TCP 22 端口 • 块增量备份功能,使用的前提条件是启用 ktrack 插件,生效后做一次全量备份或增量备份或差异备份,参考 《KingbaseES 插件参考手册》ktrack 。 • 工具的操作日志,默认情况下,位于/ log/目录中,以 -.log 为命名格式,如:kingbasebackup.log、kingbase-restore.log 等。 13 第3章 SYS_RMAN 工具介绍 • 工具 backup、check、stanza-create 等操作时需连接一数据库,默认为 test 库,该库于 initdb 时创建因而无需 额外操作;如 test 库不存在,执行 sys_rman 相关操作时需使用 --kb1-database 指定一个存在的数据库,例 如:--kb1-database=test1 。 14 第 4 章 SYS_RMAN 的初始化配置 4 第 章 sys_rman 的初始化配置 本部分包含以下内容: • 准备初始配置文件 • 执行初始化操作 • 备份任务的启停 • 配置文件信息变化处理 4.1 准备初始配置文件 sys_backup.conf,初始化配置文件,供操作人员修改的配置文件; sys_rman.conf,运行时配置文件,由初始化动作自动生成,不推荐人为后续的修改。 工具按照如下顺序寻找初始化配置文件 # ./kingbase/bin/sys_backup.conf # ./kingbase/share/sys_backup.conf KingbaseES 的安装目录 ./kingbase/share 目录下有初始配置文件的模板,包含以下参数: 表 4.1.1: 操作系统配置 参数名 参数说明 _target_db_style 选择性选项,可选 single 或 cluster 或 single-pro。single 对应单机模式的目标数据库实例, cluster 对应集群模式的目标数据库实例,single-pro 对应集群模式的每个 DB 节点独立备份 _one_db_ip 一个数据库节点的 IP 或主机名,支持主机名、IPv4、IPv6 地址 _repo_ip REPO 备份节点的 IP 或主机名,支持主机名、IPv4、IPv6 地址 见续表 15 第 4 章 SYS_RMAN 的初始化配置 表 4.1.1 – 续表 参数名 参数说明 _stanza_name 备份服务器的标签,仅在物理备份范畴内使用 _os_user_name 操作系统的用户名 _repo_path 实际保存备份集的目录 _repo_retention_full_count 保存全量备份的数目,超过此数目的全量备份将被自动移除 _crond_full_days 自动执行全量备份的间隔天数,0 表示不执行 _crond_diff_days 自动执行差异备份的间隔天数,0 表示不执行 _crond_incr_days 自动执行增量备份的间隔天数,0 表示不执行 _crond_full_hour 自动执行全量备份的时间点,2 表示凌晨 2 点 _crond_diff_hour 自动执行差异备份的时间点,3 表示凌晨 3 点 _crond_incr_hour 自动执行增量备份的时间点,4 表示凌晨 4 点 _band_width 网络限速,单位固定为 MB/s, 默认为 0,代表不限速,配置文件仅接受纯数字 _os_ip_cmd 操作系统常见命令 ip 的全路径文件名 _os_rm_cmd 操作系统常见命令 rm 的全路径文件名 _os_sed_cmd 操作系统常见命令 sed 的全路径文件名 _os_grep_cmd 操作系统常见命令 grep 的全路径文件名 _single_data_dir 单机数据库节点的数据目录 _single_bin_dir 单机数据库节点的二进制目录 _single_db_user 单机数据库节点的数据库登录用户名 _single_db_port 单机数据库节点的端口 _use_scmd 使用通讯协议,默认使用 securecmdd,可选使用 ssh _start_fast 是否快速启动备份,立即生成 checkpoint,默认 y _compress_type 是否在备份时使用压缩存储,默认为 none 不压缩 _non_archived_space 在 init 过程中,检查未归档的 WAL 的容量,如果超过设置值,报错并退出 init 过程。单 位固定为 MB,可选 128 ~ 1024 _archive_statistics 是否启用归档统计功能,默认 n 16 第 4 章 SYS_RMAN 的初始化配置 示例如下: #file: sys_backup.conf # 单机 single 集群 cluster 集群各节点独立备份 single-pro # target db style enum: single/cluster/single-pro _target_db_style="cluster" # 一个数据库节点的 IP # 本配置项支持主机名、IPv4、IPv6 地址 # one kingbase node IP # just provide one IP, script will use 'repmgr cluster show' get other node IP _one_db_ip="192.168.28.37" # REPO 备份节点的 IP # 本配置项支持主机名、IPv4、IPv6 地址 # local repo IP, can be same as one_db_ip, means repo located in one db node _repo_ip="192.168.28.37" # 备份服务器的标签,仅在备份范畴内使用 # label of this cluster _stanza_name="kingbase" # 操作系统的用户名 # OS user name of database _os_user_name="jiqun" # 实际保存备份集的目录 # !!!! dir to store the backup files # should be accessable for the OS user _repo_path="/home/jiqun/kbbr_repo" # 保存全量备份的数目,超过此数目的全量备份将被自动移除 # count of keep, over the count FULL-backup will be remove _repo_retention_full_count=9 # 自动执行全量备份的间隔天数 # count of days, interval to do FULL-backup _crond_full_days=7 # 自动执行差异备份的间隔天数,0 表示不执行 # count of days, interval to do DIFF-backup _crond_diff_days=0 # 自动执行增量备份的间隔天数 # count of days, interval to do INCR-backup _crond_incr_days=1 # 自动执行全量备份的时间点,2 表示凌晨 2 点 # HOUR to do the FULL-backup _crond_full_hour=2 # 自动执行差异备份的时间点,3 表示凌晨 3 点 # HOUR to do the DIFF-backup _crond_diff_hour=3 # 自动执行增量备份的时间点,4 表示凌晨 4 点 # HOUR to do the INCR-backup _crond_incr_hour=4 17 第 4 章 SYS_RMAN 的初始化配置 # 操作系统常见命令的全路径文件名 # OS cmd define _os_ip_cmd="/sbin/ip" _os_rm_cmd="/bin/rm" _os_sed_cmd="/usr/bin/sed" _os_grep_cmd="/bin/grep" # 以下四个参数,仅用于单机模式 # !!! these follow 4 parameter ONLY for single style # 单机数据库节点的数据目录 # data dir of single _single_data_dir="/home/kingbase/ES/single/data" # bin dir of single # 单机数据库节点的二进制目录 _single_bin_dir="/home/kingbase/ES/single/Server/bin" # 单机数据库节点的数据库登录用户名 # database user of single _single_db_user="system" # 单机数据库节点的端口 # database port of single _single_db_port="54321" # 网络限速,单位固定为 MB/s, 默认为 0,代表不限速,配置文件仅接受纯数字 # band witdh limit, fixed in MB/s, default 0 means no limit _band_width=0 # 使用通讯协议,默认使用 securecmdd,可选使用 ssh # on means securecmdd, off means normal ssh _use_scmd=on # 是否快速启动备份,立即生成 checkpoint,默认 y # whether to sys_start_backup() fastly, y or n _start_fast=y # 是否在备份时使用压缩存储,默认为 none 不压缩 # whether to gz the target file, none or gz _compress_type=none # 在 init 过程中,检查未归档的 WAL 的容量, # 如果超过设置值,报错并退出 init 过程 # 单位固定为 MB,可选 128 ~ 1024 # if the non archived WAL files , more than this setting # show ERROR and break the backup-init, unit be fixed in MB, 128 ~ 1024 _non_archived_space=1024 # 不启用归档统计功能 _archive_statistics=n 18 第 4 章 SYS_RMAN 的初始化配置 4.2 执行初始化操作 注意: 管理员应当在 sys_backup.sh init 前,明确 REPO 角色所在的节点,确保在 REPO 节点上执行 init 初始化操 作。 初始化配置流程: 1. 配置文件参数有效性检查 2. 检查数据库实例的未归档 WAL 的数量 3. 配置 REPO 节点的运行时配置文件 sys_rman.conf 4. 配置各 DB 节点的运行时配置文件 sys_rman.conf 5. 修改各 DB 节点的 archive_command 配置,reload 数据库实例 6. 创建备份 stanza,执行第一次全量备份 如遇异常情况,请参考章节附录 C:常见异常处理 4.2.1 在单机 + 外部备份场景下 确保 kingbase.conf 中以下两项配置: archive_mode=on archive_command 没有被注释,内容将被脚本自动修改 #file: sys_backup.conf # target db style enum: single/cluster/single-pro _target_db_style="single" _one_db_ip="192.168.28.37" # 数据节点 IP _repo_ip="192.168.28.46" # 备份服务器 IP sys_backup.sh init # generate single sys_rman.conf...DONE # update single archive_command with sys_rman.archive-push...DONE # create stanza and check...(maybe 60+ seconds) # create stanza and check...DONE # initial first full backup...(maybe several minutes) # initial first full backup...DONE # Initial sys_rman OK. 19 第 4 章 SYS_RMAN 的初始化配置 # database user of single _single_db_user="system" 注意: 此配置项指明的数据库用户需要配置为 ksql 免密登录,请参考《安全指南手册》用户密码配置工具使用方法 注意: 要求管理员在 sys_backup.sh init 前,数据库节点与外部备份节点之间以相应的 OS 用户,互相进行 SSH 登 录,以验证 SSH 登录场景,通过 StrictHostKeyChecking 的检测。 4.2.2 在单机 + 内部备份场景下 确保 kingbase.conf 中以下两项配置: archive_mode=on archive_command 没有被注释,内容将被脚本自动修改 #file: sys_backup.conf # target db style enum: single/cluster/single-pro _target_db_style="single" _one_db_ip="192.168.28.37" # IP 地址相同 _repo_ip="192.168.28.37" # IP 地址相同 sys_backup.sh init # generate single sys_rman.conf...DONE # update single archive_command with sys_rman.archive-push...DONE # create stanza and check...(maybe 60+ seconds) # create stanza and check...DONE # initial first full backup...(maybe several minutes) # initial first full backup...DONE # Initial sys_rman OK. 在单机环境下, # database user of single _single_db_user="system" 注意: 此配置项指明的数据库用户需要配置为 ksql 免密登录,请参考《安全指南手册》用户密码配置工具使用方法 20 第 4 章 SYS_RMAN 的初始化配置 4.2.3 在集群中每个节点单独备份 注意: 整个集群只执行一次 init 动作。 每个 DB 节点都是独立的 REPO 节点。 单独备份需要数据库实例的 archvie_mode 为 always; 初始化脚本将检测此配置,如果需要,脚本将提示用户后进行设置并重启数据库实例。 确保 es_rep.conf 中以下两项配置: archive_mode=always archive_command 没有被注释,内容将被脚本自动修改 #file: sys_backup.conf # target db style enum: single/cluster/single-pro _target_db_style="single-pro" _one_db_ip="10.10.11.11" # 本节点 IP _repo_ip="10.10.11.11" # 本节点 IP sys_backup.sh init # Check 10.10.11.11 archive-mode == always # Check 10.10.11.12 archive-mode == always # WARNING: archive-mode on 10.10.11.12 is not always sys_backup.conf target_db_style=single-pro: require the archive-mode=always. Yes/Y: sys_backup.sh auto set all node archive-mode=always and restart databse cluster. No/N: abort sys_backup.sh, set archive-mode manually, execute sys_backup.sh again. Are you sure to set all node to archive-mode=always and restart databse?[Y/n]: # generate local sys_rman.conf...DONE # update all node: sys_rman.conf and archive_command with sys_rman.archive-push... # update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE # create stanza and check...(maybe 60+ seconds) # create stanza and check...DONE # initial first full backup...(maybe several minutes) # initial first full backup...DONE # create stanza and check on 10.10.11.12 ...(maybe 60+ seconds) # create stanza and check on 10.10.11.12 ...DONE # initial first full backup on 10.10.11.12 ...(maybe several minutes) # initial first full backup on 10.10.11.12 ...DONE # create stanza and check on 10.10.11.13 ...(maybe 60+ seconds) # create stanza and check on 10.10.11.13 ...DONE # initial first full backup on 10.10.11.13 ...(maybe several minutes) # initial first full backup on 10.10.11.13 ...DONE # Initial sys_rman OK. 21 第 4 章 SYS_RMAN 的初始化配置 4.2.4 在一主一备 + 外部备份场景下 确保 es_rep.conf 中以下两项配置: archive_mode=on archive_command 没有被注释,内容将被脚本自动修改 #file: sys_backup.conf # target db style enum: single/cluster/single-pro _target_db_style="cluster" sys_backup.sh init Please input password ... root@192.168.28.37's password: 【手动输入密码】 Please input password ... kingbase@192.168.28.37's password: 【手动输入密码】 local <-> kingbase@192.168.28.37 ssh pwd-less OK. # generate local sys_rman.conf...DONE # update all node: sys_rman.conf and archive_command with sys_rman.archive-push... Please input password ... kingbase@192.168.28.121's password: 【手动输入密码】 local <-> kingbase@192.168.28.121 ssh pwd-less OK. # update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE # create stanza and check...(maybe 60+ seconds) # create stanza and check...DONE # initial first full backup...(maybe several minutes) # initial first full backup...DONE # Initial sys_rman OK. 注意: 要求管理员在 sys_backup.sh init 前,数据库节点与外部备份节点之间以相应的 OS 用户,互相进行 SSH 登 录,以验证 SSH 登录场景,通过 StrictHostKeyChecking 的检测。 4.2.5 在一主一备 + 内部备份场景下 确保 es_repo.conf 中以下两项配置: archive_mode=on archive_command 没有被注释,内容将被脚本自动修改 22 第 4 章 SYS_RMAN 的初始化配置 #file: sys_backup.conf # target db style enum: single/cluster/single-pro _target_db_style="cluster" sys_backup.sh init # generate local sys_rman.conf...DONE # update all node: sys_rman.conf and archive_command with sys_rman.archive-push... # update all node: sys_rman.conf and archive_command with sys_rman.archive-push...DONE # create stanza and check...(maybe 60+ seconds) # create stanza and check...DONE # initial first full backup...(maybe several minutes) # initial first full backup...DONE # Initial sys_rman OK. 4.3 备份任务的启停 4.3.1 sys_backup.sh start 脚本使用 crontab 命令增加定时任务,使用 sys_rman 进行定时备份;可以通过 crontab -l 查看定时任务。 全量备份、差异备份、增量备份,均为可选。 备份类型、备份周期和备份时间由配置文件 sys_backup.conf 指定。 在 sys_backup.conf 配置为 cluster 的情况下,整个集群只需要在 REPO 节点上执行; 在 sys_backup.conf 配置为 single-pro 的情况下,每个 DB 节点都是 REPO 节点,需要逐个执行 start。 # 自动执行全量备份的间隔天数 # count of days, interval to do FULL-backup _crond_full_days=7 # 自动执行差异备份的间隔天数,0 表示不执行 # count of days, interval to do DIFF-backup _crond_diff_days=0 # 自动执行增量备份的间隔天数 # count of days, interval to do INCR-backup _crond_incr_days=1 # 自动执行全量备份的时间点,2 表示凌晨 2 点 # HOUR to do the FULL-backup _crond_full_hour=2 # 自动执行差异备份的时间点,3 表示凌晨 3 点 # HOUR to do the DIFF-backup 23 第 4 章 SYS_RMAN 的初始化配置 _crond_diff_hour=3 # 自动执行增量备份的时间点,4 表示凌晨 4 点 # HOUR to do the INCR-backup _crond_incr_hour=4 sys_backup.sh start Enable some sys_rman in crontab-daemon Set full-backup in 7 days Set incr-backup in 1 days 0 2 */7 * * kingbase /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup >>/tmp/sys_rman_backup_full.log 2>&1 0 4 */1 * * kingbase /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup >>/tmp/sys_rman_backup_incr.log 2>&1 4.3.2 sys_backup.sh stop 从系统 CRONTAB 中移除所有 sys_rman 相关的备份条目。 在 sys_backup.conf 配置为 cluster 的情况下,整个集群只需要在 REPO 节点上执行; 在 sys_backup.conf 配置为 single-pro 的情况下,每个 DB 节点都是 REPO 节点,需要逐个执行 stop。 sys_backup.sh stop Disable all sys_rman in crontab-daemon 开启和停止定时任务的操作示范: [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh start # pre-condition: check the non-archived WAL files Enable some sys_rman in crontab-daemon Set full-backup in 7 days Set incr-backup in 1 days 0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf -stanza=kingbase --archive-copy --type=full backup >> /home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&1 0 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf -stanza=kingbase --archive-copy --type=incr backup >> /home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1 [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l 0 2 */7 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf -stanza=kingbase --archive-copy --type=full backup >> 24 第 4 章 SYS_RMAN 的初始化配置 /home/kingbase/cluster/kingbase/log/sys_rman_backup_full.log 2>&1 0 4 */1 * * /home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf -stanza=kingbase --archive-copy --type=incr backup >> /home/kingbase/cluster/kingbase/log/sys_rman_backup_incr.log 2>&1 [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] ./sys_backup.sh stop # pre-condition: check the non-archived WAL files Disable all sys_rman in crontab-daemon [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] crontab -l [kingbase@REPO-NODE /home/kingbase/cluster/kingbase/bin] 4.3.3 sys_backup.sh pause 暂时停止定时备份动作。 sys_backup.sh pause Puase the sys_rman...DONE 4.3.4 sys_backup.sh unpause 恢复被暂停的定时备份动作。 sys_backup.sh unpause Un-Puase the sys_rman...DONE 4.4 sys_backup.conf 信息变化处理 如果 sys_backup.conf 中关于数据库的信息(包含 IP、数据库名、端口等)有所修改,需要重新初始化备份。 执行 sys_backup.sh init 重新初始化备份功能。 如果 sys_backup.conf 中关于备份周期和时间点的信息有所修改,重新配置即可。 执行 sys_backup.sh start 重新配置自动备份周期。 注意: 有关备份集查看与备份优化配置相关操作请参考附录 A:备份管理与优化操作 。 有关 sys_rman 配置信息请参阅附录 B:sys_rman.conf 配置说明 。 25 第 5 章 备份 5 第 章 备份 以下针对 sys_rman 命令作相应说明,以便在手动执行备份的场景中使用。 手动备份并不影响自动备份任务的运行,但要注意同一时间只能有一个备份在运行,所以手动执行时尽量错开自 动备份时间或者暂停自动备份。 备份命令格式: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=< 配置文件>--stanza=< 名称> --type=[full|diff|incr|page] --< 备份选项> backup 本部分包含以下内容: • 全量备份 • 差异备份 • 增量备份-文件粒度 • 块增量备份-块粒度 • 备份集管理 26 第 5 章 备份 5.1 全量备份 全量备份,对所有数据文件进行一次备份,产生的备份集可以单独地构成还原的基础。 手动执行一次全量备份: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=full backup 5.2 差异备份 差异备份,依赖于上一次全量备份,针对此全量备份有变化的数据文件进行一次备份,产生的备份集配合依赖的 全量备份集构成还原的基础。 手动执行一次差异备份: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=diff backup 27 第 5 章 备份 5.3 增量备份-文件粒度 增量备份,依赖于上一次全量备份及中间变化的备份,针对上一个备份有变化的数据文件进行一次备份,产生的 备份集配合依赖的全量备份集及串行依赖备份集构成还原的基础。 文件粒度,当某个数据文件的一个数据块发生变化后,增量备份将拷贝整个数据文件。 手动执行一次增量备份: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=incr backup 5.4 块增量备份-块粒度 块增量备份,依赖于上一次全量备份及中间变化的备份,针对上一个备份有变化的数据块进行一次备份,产生的 备份集配合依赖的全量备份集及串行依赖备份集构成还原的基础。 块粒度,当某个数据文件的一个数据块发生变化后,块增量备份只拷贝变化的数据块。 块增量备份,需要 Kingbase 数据库开启了 ktrack 插件,请参考《KingbaseES 插件参考手册》ktrack 。 手动执行一次块增量备份: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=page backup 开启 ktrack 插件的数据库应与 sys_rman 块备份时连接的数据库一致,默认情况下都为 initdb 时创建的 test 库,无须特别指定;如在其他库开启 ktrack 插件(不推荐),则执行 sys_rman 块备份时,需使用 --kb1-database 指定: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --kb1-database=test1 --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --archive-copy --type=page backup 5.5 备份集管理 5.5.1 查看已有的备份集 在文件层面, 包含三个内容: 28 第 5 章 备份 1. sys_rman.conf,运行时配置文件 2. archive,归档 WAL 日志的目标目录 3. backup,保存各备份的目标目录 如图所示: [kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls archive backup sys_rman.conf [kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls archive/kingbase/ 12-1 archive.info archive.info.copy [kingbase@REPO-NODE /home/kingbase/kbbr_repo] ls backup/kingbase/ 20230703-172027F backup.history backup.info backup.info.copy latest [kingbase@REPO-NODE /home/kingbase/kbbr_repo] 警告: 切勿使用操作系统工具在 内手动删除、修改或添加文件。 包含 备份集的状态和元数据,以及哪些 WAL 文件基于哪次备份等信息。 提示: 列出或查看 中的文件可有助于诊断备份和恢复问题。可以使用 rsync 等带有复制正确性校 验的工具对 进行完整的复制。 工具提供命令,查看已有备份集列表和概要信息 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase info full backup: 20220512-110154F timestamp start/stop: 2022-05-12 11:01:54 / 2022-05-12 11:02:04 wal start/stop: 000000010000000000000066 / 000000010000000000000066 database size: 424.8MB, database backup size: 424.8MB repo1: backup set size: 424.8MB, backup size: 424.8MB incr backup: 20220512-110154F_20220512-110320I timestamp start/stop: 2022-05-12 11:03:20 / 2022-05-12 11:03:24 wal start/stop: 000000010000000000000068 / 000000010000000000000068 database size: 408.8MB, database backup size: 346.2MB repo1: backup set size: 408.8MB, backup size: 346.2MB backup reference list: 20220512-110154F • 第一行表示备份集的类型和备份集的名称 • timestamp start 表示备份开始的时间点 • timestamp stop 表示备份结束的时间点 29 第 5 章 备份 • wal start 表示备份开始时的 WAL 日志文件 • wal stop 表示备份结束时的 WAL 日志文件 • database size 表示数据库的运行时磁盘容量 • database backup size 表示数据库的备份容量 • backup set size 表示当前备份集的容量 • backup size 表示当前备份集的实际磁盘容量,包含压缩因素和依赖备份集冗余 • backup reference list 表示当前备份集依赖备份集列表 5.5.2 自动清除过期的备份 在运行时配置文件 sys_rman.conf 中设置定期清除功能的保留数目: repo1-retention-full=5 每一次备份结束后,工具将自动执行一次清除过期备份的动作。 清理备份集时会根据时间排序,保留最新的备份集,清除最老的备份集。 超过此数目的全量备份集将被清除; 其依赖的备份集自动被清除; 清除备份集包含数据库文件和对应的归档 WAL 日志文件。 5.5.3 手动清除过期的备份 手动调用 expire 命令: 1. 确认 sys_rman.conf 中的设置:保留全量备份集的数目 repo1-retention-full=5 2. 执行 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/ sys_rman.conf --stanza=kingbase expire 5.5.4 备份集检查 可手动执行 sys_rman 的 verify 命令对备份集和归档文件进行检查并报告识别的问题: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase verify verify 命令检查归档文件依赖于归档文件信息(比如归档文件长度、归档文件校验值等),这些信息在启用归档 统计功能后是从归档统计文件中获取到的,而不是默认的通过遍历归档目录获取。 30 第 6 章 还原与恢复 6 第 章 还原与恢复 物理还原即使用 sys_rman 将当时做备份的物理文件恢复回来,但由于物理备份时,数据库还是会有不断的数据 写入,因此拷贝过程中,物理文件可能已经发生了变化。数据库在物理还原(以下简称还原)结束后,还要进行数据 库自己的恢复(以下简称恢复)过程,才能最终达成数据库一致性状态,对外提供服务。 因此,真正恢复数据库到用户所用状态,分为了还原和恢复两个部分。 注意: 还原和恢复完成之后,应该尽快进行一次全量备份。 本部分包含以下内容: • 还原 • 恢复 6.1 还原 还原操作说明: • 还原动作,只能在数据库节点上进行。 • 还原完成后,数据库启动后,请及时手动清除 kingbase.auto.conf 文件中还原过程写入的相关还原参数。 • 若是集群环境,还原后的数据库节点将成为集群的新主节点,利用该节点重做备库,参考《金仓数据守护集群 和读写分离集群使用手册》;集群完整启动后,可选择新的主节点。 • 还原时,需要确保 kingbase 进程已经停止。 • 还原时,KB_DATA 目录下如果还有文件存在,需要--delta 选项进行选择性还原。 • 还原时,KB_DATA 目录下如果没有文件存在,以下的还原方式均可使用。 还原命令格式: 31 第 6 章 还原与恢复 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=< 配置文件>--stanza=< 名称>--< 还原选项> restore 6.1.1 测试性质的还原 还原恢复之后,新产生的 WAL 文件会继续归档到 REPO 存储目录中,将改变原有的备份集。 进行测试性质的还原:指定新的 DATA 目录和临时禁止归档 WAL 文件 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --kb1-path=/new_path/data --archivemode=off restore 6.1.2 基于最新备份的还原 默认还原,将最新的备份集还原到数据库实例的 data 目录下。 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase restore 6.1.3 指定备份集还原 不指定时间,工具将隐式地指定时间为备份集结束时间的后一秒。 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --set='20200519-031336F' restore 指定时间,工具将验证指定时间是否晚于备份集结束时间;如否,报错退出。 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --set='20200519-031336F' --type=time --target='2020-05-19 16:28:17' restore 备份节点名的查看,请参考附录 B:sys_rman.conf 配置说明 ;--delta 选项可选,用于 KB_DATA 目录存在文 件时; 32 第 6 章 还原与恢复 6.1.4 指定事务 ID 还原 使用指定的 xid 还原到特定状态,必须同时指定该 xid 之前的备份集,才能够恢复到该 xid。 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=xid --target='445566' --set='20210611-011416F_20210611-023050I' restore --delta 选项可选,用于 KB_DATA 目录存在文件时 --target-exclusive 选项可选,用于表示是否排除等于指定 xid 的内容。 注意: 如果出现如下提示,说明当前的选项有误。 ERROR: [032]: Current options maybe restore to newest data from archive WAL files Please specify --type=xid --target='xx' --set='2021xxxx-xxxxxxX_2021xxxx-xxxxxxX' or follow the user guide Stop current restore. 6.1.5 指定时间点还原 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=time --target='2020-05-07 16:28:17' restore 使用指定的时间点还原到特定状态 --delta 选项可选,用于 KB_DATA 目录存在文件时 --target-exclusive 选项可选,用于表示是否排除等于指定时间的内容。 --target-action=pause 默认选项,恢复完成后,数据库启动后进入只读状态 --target-action=promote 恢复完成后,switch timeline,数据库启动后进入读写状态 --target-action=shutdown 恢复完成后,关闭数据库 6.1.6 表空间支持 备份时,表空间是默认地、隐式地包含在备份文件集中。 还原时,工具默认按原位置重建表空间的软链接, 33 第 6 章 还原与恢复 --tablespace-map/--tablespace-map-all 选项可选,如果设置,那指定的表空间的软链接将指向新的自定义表空间 文件夹。 注意: 程序在选择创建自定义表空间之前的备份集,还原到创建自定义表空间后的时间点,程序不会自动创建自定义 的表空间目录。 建议在还原操作执行之前,手动创建自定义表空间目录。 此外,支持: 1) 表空间映射,在恢复时,对单个表空间进行重定向 例如:--tablespace-map=ts_01=/db/ts_01 注意: 此配置非常危险,除非管理员明确原因及后果方可执行。 2) 所有表空间映射,在恢复时,对所有表空间进行重定向,这样非常便于开发以及遇到存储故障时的处理。 例如:--tablespace-map-all=/data/tablespace 注意: 此配置非常危险,除非管理员明确原因及后果方可执行。 6.1.7 还原后节点处理 在 kingbase 的主配置 hot_standby=on 的情况下,此选项有效。 --target-action=pause 默认选项,恢复完成后,数据库启动后进入只读状态 --target-action=promote 恢复完成后,switch timeline,数据库启动后进入读写状态 --target-action=shutdown 恢复完成后,关闭数据库 根据物理备份还原的理念,还原后,数据库用户的密码同时还原到指定备份集或时间点的状态。 如果需要,请使用超级管理员去重置相关的数据库用户的密码。 6.2 恢复 数据恢复过程,指的是经过还原动作后,新的数据库实例拥有了基本的数据文件,第一次启动数据库时,数据库 根据恢复配置文件去拉取归档的 WAL 日志,进行 REDO 的过程。 恢复配置文件位于/kingbase.auto.conf,涉及恢复的部分主要包含以下配置项: 34 第 6 章 还原与恢复 • restore_command 配置为 sys_rman 工具 archive-get 命令,负责拉取归档的 WAL 日志,拉取的范围由后续参 数确定。 如果没有 recover_target_* 相关选项,将自动拉取所有的归档 WAL 文件并执行 REDO 动作,将数据还 原到最新的状态。 • recovery_target_time 还原使用 PITR 功能--type=time 时,填充相关值。 • recovery_target_xid 还原使用 PITR 功能--type=xid 时,填充相关值。 • recovery_target_timeline 还原使用功能--target-timeline 时,填充相关值。 • recovery_target_action 还原使用功能--target-action 时,填充相关值。 6.2.1 PITR 的恢复策略 注意: 指定备份集、指定事务 ID、指定时间点均属于 PITR 方式,上述方式还原后,需要谨慎地进行恢复。 PITR 还原后,默认恢复方式为 pause,启动数据库后只能执行只读操作以检查是否符合恢复预期,若符合恢复 预期请执行 select sys_wal_replay_resume() ,之后数据库进入读写状态;若不符合恢复预期,请关闭并删除该 数据库,重新做还原。 当仅用来测试数据是否恢复到某个想要的恢复点时,无须执行 select sys_wal_replay_resume() ,执 行实际数据查询即可;但需要注意,数据库开始接受只读查询并不表示已经恢复到指定状态,需执行 select sys_is_wal_replay_paused() 来判断,如果是 true 表明数据库已经恢复完成。 当恢复完成的数据库实例需要继续投入生产时,执行 select sys_wal_replay_resume() ,数据库进入读写状 态。 例外的情况,当 PITR 指定的时间超过了所有备份集的时间覆盖范围,则数据库 REDO 过程中始终无法找到想 要停止的点,直到拉取了所有的归档 WAL 日志;此时,数据库自动跳过 REDO 模式,进入读写状态,在此场景下 无须执行 select sys_wal_replay_resume() 。 注意: 在 PITR 操作中,如果设置的恢复时间点刚好处于不支持回滚的 DDL 语句(例如 DROP DATABASE)的时 间戳之前,则会出现一些异常情况,详情请参阅《KingbaseES 物理备份恢复最佳实践》 6.2.2 集群还原恢复策略 如果集群中一个节点出现严重问题时,应该采用 repmgr 工具的 clone 功能恢复集群; 新节点上线后,使用 repmgr 工具接入集群中。 如果集群所有节点都出现严重问题时,采用工具 sys_rman 进行还原: 1) 选择一个数据库节点,使用还原功能; 35 第 6 章 还原与恢复 2) 在新的主节点上,启动数据库 3) 如 果 还 原 时 使 用 了 刚刚还原的主节点的 PITR 功 能 (含 指 定 备 份 集 或 指 定 时 间 等), 在 /kingbase.auto.conf 文件中的 recovery_* clone 之 前, 删 除 配 置 参 数, 包 含 re- store_command,recovery_target,recovery_target_action 等 4) 使用 repmgr 工具在备库节点 clone 并 register 到主节点; 5) 整个集群恢复正常工作状态。 kingbase.auto.conf 配置文件示例,PITR 还原后,如图的末尾三行应该删除 [kingbase@DB-NODE /home/kingbase/cluster/kingbase/bin] cat /data/kingbase.auto.conf # Do not edit this file manually! # It will be overwritten by the ALTER SYSTEM command. synchronous_standby_names = 'ANY 1(node2)' # Recovery settings generated by sys_rman restore on 2023-07-03 20:20:33 restore_command = '/home/kingbase/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman. conf --stanza=kingbase archive-get %f "%p"' recovery_target_time = '2023-07-03 17:30:04' [kingbase@DB-NODE /home/kingbase/cluster/kingbase/bin] 36 第7章 7 第 章 工具变更说明 工具变更说明 V008R006C006B0011 加强数据存储校验、预防及处理能力 V008R006C005B0054 压缩模式默认不压缩 备份开始时默认使用快速 checkpoint 点 V008R006C005B0041 新增备份开始前检查未归档的 WAL 日志的容量 V008R006C005B0032 新增备份还原时限速功能 V008R006C005B0023 支持 securecmdd 功能,不在强制依赖于 sshd V008R006C005B0013 支持不同的 block-size 为基础的数据库实例 37 第 8 章 附录 A:备份管理与优化操作 8 第 章 8.1 附录 A:备份管理与优化操作 性能优化-并行处理 工具支持多进程并发拷贝物理文件;请根据当前环境的主库的性能情况,合理设置多进程数量。 可指定备份时、还原时并行处理可使用的并发进程数量。 --process-max=4 # 指定可并发 4 个进程来备份或还原 1~999 # 可选范围是 1~999 38 第 8 章 附录 A:备份管理与优化操作 8.2 性能优化-压缩优化 压缩将节约空间、消耗时间;不压缩将节约时间、消耗空间;请根据场景需要,设置是否压缩存储备份集和归档 WAL 日志文件。 指定备份文件实际存储时压缩算法和压缩级别 --compress-type=none # none 不压缩,默认设置,可选 none / gz --compress-level=3 # 指定压缩级别,可选范围 [ 0 - 9 ] 8.3 备份还原时限速 备份和还原时,工具可以进行限速,单位固定为 MB/s,可以在 sys_rman.conf 中动态调整。 限速功能,在还原场景时,因为逐个文件进行 checksum 校验和比对,限速精度受到影响,实际均速低于设定速 度。建议在还原时不开启限速功能,REPO_PATH/sys_rman.conf 配置 band-width=0 。 在单机和集群内部备份场景时,限速行为将生效 39 第9章 9 第 章 附录 B:SYS_RMAN.CONF 配置说明 附录 B:sys_rman.conf 配置说明 运行时配置文件 sys_rman.conf,不推荐手动修改,如果需要进行修改,请参考此段落: 9.1 以下参数修改后需要重新初始化生效 # DB 节点的 data 目录 kb*-path=/home/kingbase/kingbase/data # DB 节点的监听端口 kb*-port=54321 # DB 节点的数据库用户 kb*-user=esrep # DB 节点的 IP 地址 kb*-host=10.11.12.13 # DB 节点的 OS 用户名 kb*-host-user=kingbase # REPO 节点的实际备份目录 repo1-path=/home/kingbase/kbbr_repo 修改完成后,执行以下命令完成重新初始化 /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase stanza-create /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase check /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=full backup 40 第9章 9.2 附录 B:SYS_RMAN.CONF 配置说明 以下参数修改后需要一次全量备份生效 # 是否压缩备份的数据,默认 none 不压缩,可选 none / gz # 压缩将节约空间、消耗时间;不压缩将节约时间、消耗空间。 compress-type=none # 压缩级别, 默认 3, 1~9,9 代表最大压缩,同时也最耗时 compress-level=3 修改完成后,执行以下命令完成一次全量备份: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_rman --config=/home/kingbase/kbbr_repo/sys_rman.conf --stanza=kingbase --type=full backup 9.3 以下参数修改后直接生效 # REPO 节点保留至多的全量备份 repo*-retention-full=5 # REPO 节点的 sys_rman 工具日志保存路径 log-path=/home/kingbase/kingbase/log # 写入到日志文件的日志级别, info debug trace log-level-file=info # 执行命令时屏幕的日志级别, info debug trace log-level-console=info # 是否记录子进程的日志, y / n log-subprocess=y # 多进程的至多数目 process-max=4 # 是否快速生成 checkpoint,在开启实际备份之前 start-fast=y # 是否保留目录下的软链接 link-all=y # 未归档的 WAL 文件容量的警告阈值 non-archived-space=1024 # 归档单个 WAL 的超时时间 archive-timeout=600 # 限速,单位固定为 MB/s band-width=0 # 备份过程中遇到校验和等问题时会执行的自定义命令,如发送告警邮件等 alert-command=( cd /opt/Kingbase/ES/Server/bin; ./sys_mail -s "%t" -b "%c" & ) 41 第 10 章 附录 C:常见异常处理 第 10章 附录 C:常见异常处理 1、ERROR RMAN-00500: Non archived WAL files more than 1024 M , Please check the user-guide 原因:在初始化阶段,未归档的 WAL 文件超过了设定的容忍值 解决: • 确保这些 WAL 日志是否有被其他第三方使用,若有,请尽快联系第三方转移这些归档。 • 确保这些 WAL 日志是否被不恰当使用后造成积压(例如归档目录意外删除,存储掉线等)。若有, 将其积压文件用 scp/cp 等方式转移。 • 在确认这些日志无用后,进入数据库子目录(默认 data/sys_wal/archive_status/),rm -rf *.ready 。随后进入数据库执行 checkpoint,此时会清理这些积压日志,此操作会引起 IO 高峰,选择在可维 护时间段内进行。 • 重新执行初始化 sys_backup.sh init 2、ERROR: [058]: version ’12’ and path ’../data’ queried from cluster do not match version ’12’ and ’/home/ kingbase/cluster/project/cluster/kingbase/data’ read from ’/home/kingbase/cluster/project/cluster/kingbase/data/ global/sys_control’ 原因:备份工具需要绝对路径来寻找 data 目录 解决:启动数据库时,应该使用绝对路径来指定 data 目录 3、ERROR: sys_backup.conf does not exist 原因:在相应目录不存在 sys_backup.conf 文件 解决:确认./kingbase/bin/ 或 kingbase/share/ 存在此文件 4、ERROR: /home/kingbase/cluster/project/cluster/kingbase/bin/sys_backup.conf invalid. 原因:指明配置文件具有无效的配置内容 解决:请根据模板,确认配置文件的内容 5、ERROR: Configured repo-path [/home/kingbase/kbbr_repo] be NOT accessable by current user 原因:当前数据库用户不能有效访问配置文件指定的 repo-path 目录 解决:通过高权限用户比如 ROOT 去修改目标目录的权限,或重新指定目录 42 第 10 章 附录 C:常见异常处理 6、ERROR: Configured repo-retention-full invalid. 原因:配置文件中的 repo-retention-full 不是有效的数字 解决:该配置项 repo-retention-full 需要大于 0 的数字 7、ERROR: Configured crond-full-days invalid. 原因:配置文件中的 crond-full-days 不是有效的数字 解决:该配置项 crond-full-days 需要大于或等于 0 的数字 8、ERROR: Configured crond-diff-days invalid. 原因:配置文件中的 crond-diff-days 不是有效的数字 解决:该配置项 crond-diff-days 需要大于或等于 0 的数字 9、ERROR: Configured crond-incr-days invalid. 原因:配置文件中的 crond-incr-days 不是有效的数字 解决:该配置项 crond-incr-days 需要大于或等于 0 的数字 10、ERROR: Configured crond-full-hour invalid. 原因:配置文件中的 crond-full-hour 不是有效的数字 解决:该配置项 crond-full-hour 需要大于 0 11、ERROR: Configured crond-diff-hour invalid. 原因:配置文件中的 crond-diff-hour 不是有效的数字 解决:该配置项 crond-diff-hour 需要大于 0 12、ERROR: Configured crond-incr-hour invalid. 原因:配置文件中的 crond-incr-hour 不是有效的数字 解决:该配置项 crond-incr-hour 需要大于 0 13、ERROR: sys_backup.sh init must executed firstly 原因:尚未初始化工具的环境 解决:执行其他命令之前,执行 init 初始化命令 14、ERROR: sys_backup.sh must be executed by db-specify user 原因:本脚本不能由非数据库 OS 用户执行 解决:使用数据库关联的 OS 用户执行 15、ERROR: repo_ip must located in local, and sys_backup.sh be executed at REPO host. 原因:配置文件 sys_backup.conf 指定的 repo_ip 不存在于本地 解决:初始化动作必须在 REPO 本机执行 16、ERROR: local ssh-keygen fail,please check /tmp/ssh-keygen.log 43 第 10 章 附录 C:常见异常处理 原因:REPO 节点与数据库节点的 SSH 免密配置失败 解决:检查日志文件,确认系统原因 17、ERROR: config file ’/home/kingbase/cluster/project/cluster/kingbase/etc/repmgr.conf’ does not exist 原因:不能找到需要的第三方工具配置文件 repmgr.conf 解决:确认目录下存在 repmgr.conf 文件 18、ERROR: ’/home/kingbase/cluster/project/cluster/kingbase/etc/repmgr.conf’ at ’192.168.28.121’ invalid” 原因:在数据库节点 192.168.28.121 上的 repmgr.conf 文件内容有误 解决:确认此节点上的 repmgr 文件 19、ERROR: sys_backup.sh init must be executed by db-specify user ’kingbase’ 原因:初始化命令只能由数据库关联用户执行 解决:使用数据库关联用户执行 20、ERROR: can not connect to db at 192.168.28.37,please check /home/kingbase/cluster/project/cluster/kingbase/data/sys_log/ 原因:不能访问节点的数据库服务 解决:检查本信息给出的日志目录,确认原因 21、ERROR: at 192.168.28.37, user ’kingbase’ can not access the repo-path [/home/kingbase/kbbr_repo] 原因:在数据节点上,指定 OS 用户不能有效访问 repo-path 解决:在此节点,确保指定 OS 用户的访问权限。 22、ERROR: create stanza failed, check log file /tmp/sys_rman_stanza-create.log 原因:创建 stanza 失败 解决:检查本信息给出的日志文件 23、ERROR: check stanza failed, check log file /tmp/sys_rman_check.log 原因:创建后的隐式 check 命令失败 解决:检查本信息给出的日志文件 24、ERROR: full backup failed, check log file /tmp/sys_rman_backup.log 原因:创建后的隐式第一次全量备份失败 解决:检查本信息给出的日志文件 25、ERROR: [050]: unable to acquire lock on file ’/tmp/sys_rman/kbbr-backup.lock’: 原因:有另外的 sys_rman 进程在本地环境中运行或上一个进程没有正常退出 解决:删除 /tmp/sys_rman/*.lock 44 第 10 章 附录 C:常见异常处理 26、ERROR: [082]: WAL segment 000000010000000000000001 was not archived before the 60000ms timeout HINT: check the archive_command to ensure that all options are correct (especially --stanza). HINT: check the Kingbase server log for errors. 原因之一:可能在互相 ssh 认证中,需要首次执行一遍 YES/NO 以过 StrictHostKeyChecking 的检测。 The authenticity of host ’10.10.11.xxx (10.10.11.xxx)’ can’t be established. ECDSA key fingerprint is SHA256:dpXDPJcv1S0J8Iy1hpwk2jYi1z5ZxI5eCyKa72LnrYo. Are you sure you want to continue connecting (yes/no)? 解决:要求管理员在数据库节点与外部备份节点之间,以相应的 OS 用户,互相进行 SSH 登录,以验证 SSH 登录场景。 原因之二:可能此时数据库业务量较大,造成的 WAL 日志文件很多,导致 WAL 日志文件归档超时(默 认 60s) 解 决: 在 所 有 节 点 的 _repo_path/ sys_rman.conf 文件内的 下 新 增 一 行 “archive- [global] timeout=600”,增大超时时间 27、ERROR:Uncaught FileMissingError: unable to open missing file ’/home/kingbase/kbbr_repo/backup/kingbase/20201022-141202F/backup.manifest’ for read 原因:因为上一次备份被意外中断,导致上一次备份的某些文件没有正常规整。 解决:进入此错误信息所示目录,找到 backup.manifest.copy 文件,重新命名为 backup.manifest 即可再 次备份。 28、ERROR: Configured repo-path [/backup/kbbr_repo] already exists 原因:sys_backup.conf 内 repo-path 目录设置不变时,不允许多次执行 init 操作 解决:将现有的 repo-path 目录删除(请确认无重要备份数据可以删除)或重命名或移动到其他位置,或 者更改 sys_backup.conf 内 repo-path 目录设置 29、ERROR: [029]: new backup label ’20210713-182300F_20210713-144328I’ is not later than latest backup label ’20210713-182300F_20210713-225102I.manifest.gz’ HINT: has the timezone changed? HINT: is there clock skew? 原因:可能是集群节点时钟不同步 解决:集群中所有节点必须做时钟同步,系统时间需保持一致(要求至少误差范围在 2s 以内) 30、WARN: unable to check kb-1: [DbConnectError] unable to connect to ’dbname=’test’ port=54321 user=’system”: FATAL: ERROR: [056]: unable to find primary cluster - cannot proceed 原 因: 可 能 是 执 行 sys_rman 备 份 等 操 作 时 连 接 的 数 据 库 (默 认 为 test 库) 不 存 在, 或 者 是--kb1-database 参数指定了不存在的数据库 解决:重新创建 test 库 create database test,或执行备份等操作时通过--kb1-database 指定一个存在的 数据库,例如:--kb1-database=test1 31、WARN: unable to check kb-1: [DbConnectError] unable to connect to ’dbname=’test’ port=54321 user=’system”: FATAL: 45 第 10 章 附录 C:常见异常处理 ERROR: [027]: no database found 原 因: 可 能 是 执 行 sys_rman check 等 操 作 时 连 接 的 数 据 库 (默 认 为 test 库) 不 存 在, 或 者 是--kb1-database 参数指定了不存在的数据库 解决:重新创建 test 库 create database test,或执行 check 等操作时通过--kb1-database 指定一个存在 的数据库,例如:--kb1-database=test1 32、ERROR: [055]: sys_control must be present in all online backups HINT: is something wrong with the clock or filesystem timestamps? 原因:可能是 sys_control 文件自上次备份后一直未被更新导致的,正常情况下,该文件应被频繁地或周 期性地修改,对于集群的场景,可能是主节点异常导致备节点上 sys_control 停止更新 解决:确认 sys_control 文件的最后修改时间,并调查 sys_control 停止更新的原因,如问题发生在备节 点上,请检查集群状态是否正常,在集群状态正常后再次进行备份 33、FATAL: hot standby is not possible because max_connections = 100 is a lower setting than on the master server (its value was 200) 原因:生成备份集后某时刻又将 max_connections 等参数改大;sys_rman restore 将其还原成原小值,在 hot_standby=on 的场景下执行 sys_ctl start 启动重放 WAL 日志时禁止将 max_connections 等参数重放 成一个更大的值,导致数据库无法启动,sys_log 目录下日志显示以上报错 解决:启动数据库前,手动把 max_connections 等报错的参数改大后再启动数据库;此外,修改配置后即 时备份可预防此类报错 46 版权声明 版权声明 北京人大金仓信息技术股份有限公司(简称:人大金仓)版权所有,并保留对本手册及本声明的一切权利。 未得到人大金仓的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修 改、传播、翻译成其他语言、将其全部或部分用于商业用途。 免责声明 本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。人大金仓保留在没有任何通 知或者提示的情况下对手册内容进行修改的权利。 本手册仅作为使用指导,人大金仓在编写本手册时已尽力保证其内容准确可靠,但并不确保手册内容完全没有错 误或遗漏,本手册中的所有信息也不构成任何明示或暗示的担保。 技术支持 • 人大金仓官方网站:http://www.kingbase.com.cn/ • 人大金仓文档中心:http://help.kingbase.com.cn/ • 全国服务热线:400-601-1188 • 人大金仓技术支持与反馈信箱:support@kingbase.com.cn 47 服务周期承诺 服务周期承诺 由于市场需求在不断变化,技术创新和发展的进程不断加剧,产品的版本更迭不可避免。人大金仓对于产品版本 生命周期的有效管理,有助于您提前规划项目,更好地从产品服务终止上过渡。 表 1: KingbaseES 产品生命周期里程碑 关键里程碑点 定义 产品发布日期 产品正式发布版本,即 GA(general availability)版本的发布日期。 停止销售日期 正式停止销售的日期,版本停止接受订单日。该日之后,产品将不再销售。 停止功能升级日期 在该日期之后,不再提供新特性和新硬件支持。但依旧提供错误修复、安全修复、功 能维护等服务。 停止功能维护日期 在该日期之后,不再维护功能,修复问题。但依旧提供安全修复等服务 停止安全维护日期 在该日期之后,不再发布补丁版本修复中高风险漏洞,仅提供有限的支持。 产品服务终止日期 停止提供产品服务和支持的日期。包括软件维护版本,缺陷修复,以及针对该产品的 所有服务支持(包括服务热线和远程/现场支持)。 服务周期策略 金仓数据库管理系统 KingbaseES 产品确保以下的服务周期: 1)产品自发布之日起至产品停止功能升级(包含新特性、新硬件支持)之日不少于 5 年。 2)产品停止功能升级之日起至产品停止功能维护(主要包括问题修复)之日不少于 4 年。 3)产品功能维护停止之日起至产品停止安全维护(包括中高风险漏洞修复)之日不少于 2 年。 服务终止策略 金仓数据库管理系统 KingbaseES 产品确保在销售后,至少提供 6 年的服务支持。 注意: 人大金仓将会综合各方因素来确定产品服务终止日期。并将在实际产品服务终止日期之前至少 90 天,通过公 48 服务周期承诺 开方式宣布产品服务终止日期。 49