返回首页

gbase数据、南大通用产品文档:GBase8s恢复期间重命名块

更新日期:2024年09月11日

可以在冷恢复期间使用 ontape 重命名块。如果需要将存储空间恢复到与完成备份的磁盘
不同的磁盘上,该选项很有帮助。可以重命名任意类型的块,包括关键块和镜像块。
ontape 重命名块恢复仅对冷恢复可用。
冷恢复时必须恢复关键的数据库空间(如 rootdbs)。 如果不指定要恢复的数据库空间列
表,那么服务器会恢复关键的数据库空间以及其他所有数据库空间。但如果指定了要恢复
的数据库空间列表,那么其中必须包括关键的数据库空间。
有关使用 ontape 重命名块的语法,请参阅ontape 实用程序执行恢复的语法。
提示: 如果使用到块名称的符号链接,可以不需要重命名块;而只需编辑符号名称定义即
可。有关更多信息,请参阅《GBase 8s 管理员指南》。
您可以在外部冷恢复的过程中对块进行重命名。有关更多信息,请参阅重命名块。

重命名块的验证顺序
在冷恢复期间,ontape 执行以下验证来重命名块:

验证在归档保留页中是否存在旧块的路径名和偏移量。

验证各个新块之间或新块与现有块之间的路径名与偏移量是否相互重叠。

如果对主根块或镜像根块进行重命名,那么将更新 onconfig 文件参数
ROOTPATH 和 ROOTOFFSET,或 MIRRORPATH 和 MIRROROFFSET。旧版
本的 onconfig 文件将另存为 $ONCONFIG.localtime。

将旧块中的数据恢复到新块(如果新块存在)中。

将每个块的重命名信息写入到联机日志中。
如果任意一个验证步骤失败,剩余的进程停止并且 ontape 将一条错误消息写入到 ontape
活动日志中。
重要:

重命名块后请执行 0 级归档;否则下次恢复将失败。

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 159 -


如果在执行 0 级归档后添加了块,那么恢复期间无法重命名该块。同时也不能安
全地在映射列表中将该块指定为新路径。

为参与 HDR 的数据库服务器重命名块的操作中,两个数据库服务器都要长时间
地脱机。有关更多信息,请参阅《GBase 8s 管理员指南》。

新块需求
要重命名块,请遵循以下新块的准则:

新块不是必须存在的
可以以后安装新块并对包含它的存储空间执行热恢复。如果指定不存在的块,
ontape 将重命名信息记录在块的保留页中,但不恢复数据。已重命名(但未恢
复)的块处于脱机状态,在 onstat -d 块状态命令输出中由 D 指示。

新块必须有适当的权限。
除非新块有适当的权限,否则重命名操作将失败。有关更多信息,请参阅《GBase
8s 管理员指南》。

使用命令行选项重命名块
要通过提供命令行的信息来重命名块,请使用此命令:
ontape -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000
-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
在重命名和恢复操作完成后执行 0 级归档。

使用文件重命名块
要通过提供名为 listfile 的文件来重命名块,请使用以下命令:ontape -r -rename -f listfile
listfile 文件的内容是:
/chunk1 0 /chunk1N 20000
/chunk2 10000 /chunk2N 0
在重命名和恢复操作完成后执行 0 级归档。

指定其他选项时重命名块
要在 dbspace1 和 dbspace2 上执行恢复时使用命令行选项来重命名块,并且其中 rootdbs 是
rootdbs 的名称,请使用以下命令:
ontape -r -rename -p /chunk1 -o 0 -n /chunk1N -o 20000

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 160 -

-rename -p /chunk2 -o 10000 -n /chunk2N -o 0
-D rootdbs dbspace1 dbspace2
此外,要在 dbspace1 和 dbspace2 上执行恢复时使用文件重命名块,请使用以下命令:
ontape -r -rename -f listfile -D rootdbs dbspace1 dbspace2
在重命名和恢复操作完成后执行 0 级归档。

将块重命名到不存在的设备上
要将块重命名到还不存在的设备上,首先指定新的路径名,但直到您安装了该物理设备
后,才能恢复它的存储空间。该选项在您需要重命名块时很有用,便于您在安装新设备前
执行冷恢复。当新块设备就绪后,您可以在它上面执行存储空间的热恢复。
可以在同一个重命名操作中将重命名块与现有设备结合在一起,以及将重命名块与不存在
的设备结合在一起。本示例显示如何将单个块重命名到不存在的设备名上。
下表列出本示例中使用的块的示例值。
存储空间
旧块的路径
旧偏移

新块的路径 新偏移量
sbspace1
/chunk3
0
/chunk3N
0

将块重命名到不存在的设备上
要将块重命名到不存在的设备上:
1.
重命名块:使用以下命令:ontape -r -rename -p /chunk3 -o 0 -n /chunk3N -o 0
2.
当以下提示出现时,请输入 y 以继续:
块 /chunk3N 不存在。如果继续,那么对包含该块
的数据库空间的恢复操作稍后可能会失败。
在不创建该块的情况下,是否继续?(y/n)
块 /chunk3 被重命名为 /chunk3N,但数据还未恢复到 /chunk3N 上。
3.
执行 0 级归档。
4.
为 /chunk3N 添加物理设备。
5.
使用 ontape -r -D sbspace1 命令来执行 sbspace1 的热恢复。
6.
执行 0 级归档。

使用 SYSSBSPACENAME 配置参数来指定 sbspace 的名称,
数据库服务器在其中存储分片级
别数据分布统计信息,syfragsdist 系统目录表在其 encsdist 列中存储为 BLOB 对象。
还使用 SYSSBSPACENAME 来指定 sbspace 的名称,数据库服务器在其中存储 UPDATE
STATISTICS 语句为某些用户定义的数据类型收集的统计信息。
onconfig.std 值
未设置。
如未出现
0

最多 128 字节。SYSSBSPACENAME 必须是唯一的,以一个字母或下划线开头,且仅包含数
字、字母、下划线或 $ 字符。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。
参考
l 更新统计信息,在 GBase 8s 性能指南 中关于个别查询性能的章节中

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 161 -

l sbspace 特征,在 GBase 8s 性能指南 中关于配置对 I/O 影响的章节中
l 写用户定义的统计信息,在 GBase 8s 用户定义的例程和数据类型开发者指南 中
的性能章节中
l 提供一列的统计信息数据,在 GBase 8s DataBlade API 程序员指南 中
用法
要支持分片级别统计信息,您必须指定一个 sbspace 的名称作为 SYSSBSPACENAME 设置,
且您必须分配那个 sbspace(通过使用 onspaces 实用程序,如下所示。对于任何其
STATLEVEL 属性设置为 FRAGMENT 的表,如果未设置 SYSSBSPACENAME,或如果未正当地分
配 SYSSBSPACENAME 设置到的那个 sbspace,则数据库服务器返回错误)。
对于分片表中一列的分布统计信息,
您可根据这个公式估计该 sbspace 要求的存储容量为
多少字节:
nfrags * 1.25 * ((10000 / resolution) * ((2 * column_width) + 6))
此处 1.25 接近溢出 GBase_8s bin 的数目。公式还包括这些变量:
l column_width 是 UPDATE STATISTICS 语句指定列的以字节计的宽度。
l nfrags 是表的分片数。
l resolution 是计算分布的 UPDATE STATISTICS 语句的 resolution 子句中
percent 值。
resolution 还是 dbschema -hd table 命令为该列分布统计信息显示的内容。
SYSSBSPACENAME 还指定 sbspace 的名称,数据库服务器在其中存储 UPDATE STATISTICS
语句为某些用户定义的数据类型收集的统计信息。通常情况下,数据库服务器在
sysdistrib 系统目录表中存储统计信息。
请不要混淆 SYSSBSPACENAME 配置参数与 SBSPACENAME 配置参数。
由于用户定义的数据类型的数据分布可很大,您有在 sbspace 中存储它们,而不存储在
sysdistrib 系统目录表中的选项。如果您在 sbspace 中存储数据分布,则请使用
DataBlade API 或 GBase 8s ESQL/C 功能来检查统计信息。
即使您以 SYSSBSPACENAME 参数指定一个 sbspace,在可使用它之前,您也必须以
onspaces 实用程序的 -c -S 选项创建该 sbspace。当发生下列情况之一时,数据库服务
器验证这个 sbspace 的名称:
l 当数据库服务器执行带有 MEDIUM 或 HIGH 关键词的 UPDATE STATISTICS 语句时,
数据库服务器尝试将多重表示类型的数据分布写到 SYSSBSPACENAME。
l 当数据库服务器执行带有 DROP DISTRIBUTIONS 关键词的 UPDATE STATISTICS 语
句时,数据库服务器尝试将多重表示类型的数据分布删除到 SYSSBSPACENAME。
如果未设置 SBSSPACENAME,或如果未分配存储到那个 sbspace,则数据库服务器可能存储
分布统计信息,以便 UPDATE STATISTICS 操作以错误 -9814失败。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 162 -

虽然您可在 SYSSBSPACENAME 中指定的 sbspace 中存储智能大对象,
但推荐将分布统计信
息与智能大对象保持在分开的 sbspace 中,因为:
l 您要避免当查询正在访问智能大对象,且查询优化器正在使用分布来确定查询计划
时发生磁盘争用。
l 当每一 sbspace 用于不同的目的,磁盘空间花费较长时间才填满。

功能说明
事件触发器,提供了关于触发程序的信息,必须有super 权限才能查看该表。
表结构说明
表5- 240 表结构信息说明:





GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1484
TRIGGER_CATALOG
触发器登记目录,NULL
TRIGGER_VC
触发器所在虚拟集群名
TRIGGER_SCHEMA
触发器所在数据库名
TRIGGER_NAME
触发器名称
EVENT_MANIPULATION
触发器事件类型[INSERT|DELETE|UPDATE]
EVENT_OBJECT_CATALOG
触发器相关表登记目录,NULL
EVENT_OBJECT_SCHEMA
触发器相关表所在数据库
EVENT_OBJECT_TABLE
触发器相关表名
ACTION_ORDER
触发器在同一个表中所有类似的触发器顺序位
置,恒为0,因为同一个表不可能有超过一个具



EVENT_MANIPULATION

ACTION_TIMING 的触发器
ACTION_CONDITION
恒为NULL
ACTION_STATEMENT
触发器主体,即触发器被触发时的执行状态,
使用UTF-8 编码
ACTION_ORIENTATION
值恒为"ROW"
ACTION_TIMING
触发器在触发事件前还是后被触发,
[BEFORE|AFTER]
ACTION_REFERENCE_OLD_TA
BLE
恒为NULL
ACTION_REFERENCE_NEW_TA
BLE
恒为NULL
ACTION_REFERENCE_OLD_RO
W
旧的列鉴别器[OLD]
ACTION_REFERENCE_NEW_RO
W
新的列鉴别器[NEW]
CREATED
创建时间
SQL_MODE
sql 的执行模式
DEFINER
创建触发器的用户
CHARACTER_SET_CLIENT
创建时session 使用的字符集
COLLATION_CONNECTION
创建时session 使用的校验集
DATABASE_COLLATION
相关数据库的校验集