返回首页

gbase数据、南大通用产品文档:GBase8sonbar v 语法:验证备份

更新日期:2024年09月11日

使用 onbar -v 命令可验证 ON-Bar 实用程序所创建的备份是否完整且可以恢复。
要运行 ON-Bar 命令,
您必须是 root 用户或 gbasedbt 用户,
或者是 UNIX™ 上 bargroup 组
的成员。
必须有足够的临时空间可用。有关更多信息,请参阅用于备份验证的临时空间。

用途

示例:执行备份的时间点验证

示例:验证文件中列出的存储空间的备份

示例:ON-Bar 活动日志验证消息

示例:archecker 消息日志验证消息

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

表 1. onbar -v 命令的选项
选项
描述
-v
验证备份。服务器可以采用任何方式。
如果验证成功,那么可以安全地恢复存储空间。
可以验证整个系统的备份或仅物理的备份。不能验证逻辑
日志。
space
要验证的存储空间的名称。
如果输入多个存储空间名称,那么使用空格来分隔这些名
称。
-f filename
验证由 filename 提供其路径名的文本文件中列出的存
储空间。
使用该选项以避免每次验证存储空间时都要输入一长串存
储空间。
您可以使用任何有效的 UNIX 路径名和文件名。有关该文
件的格式,请参阅文件中的存储空间列表。
此文件可以在每行列出多个存储空间。
-p
验证仅物理的备份。
-t "time"
指定验证数据库空间的日期和时间。必须以引号括起。
如何输入时间取决于当前的 GLS 语言环境约定。
如果设置

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 51 -
选项
描述
了 GL_DATETIME 环境变量,
那么必须根据该变量指定日
期和时间。
如果未设置 GLS 语言环境,
请使用 ANSI 样式
的日期格式:YYYY-MM-DD HH:MM:SS。
-w
验证整个系统的备份。
用途
onbar -v 命令运行 archecker 实用程序。 archecker 实用程序验证恢复备份所需的所有页面是
否以正确的格式存在于介质上。成功验证备份后就可以安全恢复了。
当验证备份时,ON-Bar 将摘要消息写入到 bar_act.log 中,它报告验证了哪些存储空间以及
验证是成功的还是失败的。archecker 实用程序将详细的消息写入到 ac_msg.log 中。GBase
软件支持使用 ac_msg.log 来诊断备份与恢复的问题。
onbar -v 命令仅验证智能大对象空间中智能大对象的范围。使用 oncheck -cS 命令进行完整
的检查。
onbar -v 命令不能验证 Blob 空间中数据行和简单大型对象之间的链接。使用 oncheck
-cD 命令作为代替来验证 Blob 空间中的链接。

示例:执行备份的时间点验证
以下命令验证某个时间点的备份:
onbar -v -t "2011-12-10 10:20:50"

示例:验证文件中列出的存储空间的备份
以下命令验证文件 bkup1 中列出的已备份的存储空间:
onbar -v -f /usr/backups/bkup1

示例:ON-Bar 活动日志验证消息
以下示例显示 ON-Bar 活动日志中有关验证的消息:
数据库空间 dbs2.2 的 0 级备份已通过验证,如下:
开始 dbs2.2 的 0 级备份验证(存储管理器复制标识:##)
成功完成 0 级备份检验。
rootdb 的 0 级备份验证失败,如下:
开始 rootdbs 的 0 级备份验证(存储管理器复制标识:##)。

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 52 -
错误:无法关闭物理检查:error_message。

示例:archecker 消息日志验证消息
更多详细信息可在 archecker 消息日志中获得,如下:
状态:扫描已通过
状态:控制页检查已通过
状态:开始检查数据库空间 dbs2.2.
状态:正在检查 dbs2.2:TBLSpace
.
.
状态:已验证的表/分段:1
归档验证已通过

用于备份验证的临时空间
验证备份时,必须有 15 到 25 MB 的临时空间可用。
在备份验证期间,
对于中等大小的系统
(40 到 50 GB)

archecker 实用程序需要大约 15 MB
的临时空间,对于大型系统则需要大约 25 MB。这个临时空间存储在文件系统上 由
AC_STORAGE 参数指定的目录中,而不在数据库空间中。临时文件包含关于分区页、块
中的可用页和保留页的备份和复制的位图信息,(以下可选)还可以包含 Blob 空间中的
可用页和调试信息。archecker 实用程序必须具有该临时目录的许可权。
如果备份验证成功,这些文件将被删除。如果备份验证失败,这些文件将继续保留。将它
们复制到另一个位置,以便GBase 软件支持可以进行查看。
如果数据库服务器只包含数据库空间,请使用以下公式估算 archecker 临时文件使用的临时
空间量(以 KB 为单位):
空间 = (130 KB * number_of_chunks) + (pagesize * number_of_tables) +
(.05 KB * number_of_logs)
对于 GBase 8s,如果您的数据库服务器包含 Blob 空间或智能大对象空间,那么使用以下
公式估计 archecker 临时文件的临时空间大小:
空间 = (130 KB * number_of_chunks) + (pagesize * number_of_tables) +
(.05 KB * number_of_logs) + (pagesize * (num_of_blobpages/252))
number_of_chunks
估计用于数据库服务器的块的最大数目。
pagesize
系统页的大小(以 KB 为单位)。

GBase 8s 备份与恢复指南
南大通用数据技术股份有限公司 - 53 -
number_of_tables
估计用于数据库服务器的表的最大数目。
number_of_logs
数据库服务器上的逻辑日志数。
num_of_blobpages
Blob 空间中 Blob 页的数目或智能大对象空间的数目。
(如果数据库服务器包含智能
大对象空间,那么使用智能大对象空间的数目替换num_of_blobpages。)
例如,在页面大小为 2 KB 的 50 千兆字节系统上,将需要 12.9 兆字节的临时磁盘空间。
该系统不包含任何 Blob 空间,如以下语句所示:
13,252 KB = (130 KB * 25 块) + (2 KB * 5000 个表) +
(.05 KB * 50 个日志) + (2 KB * 0)
要将 KB 转换为 MB,请将结果除以 1024:

ROW_NUMBER OVER 函数
语法
ROW_NUMBER( ) OVER([PARTITION BY col_name1,col_name2,…] ORDER
BY
col_name1 [asc/desc], col_name2 [asc/desc],…)
功能描述
同rank 的区别就是相同的排序值序号也会依次递增。
例如,两行排序值相同,则序数为1,2。
使用说明和使用约束同RANK() OVER() 。
示例
示例1:ROW_NUMBER() OVER(PARTITION BY i order by j desc)
gbase> DROP TABLE IF EXISTS t1;
Query OK, 0 rows affected
gbase> CREATE TABLE t1(i int, j int);
Query OK, 0 rows affected
gbase> INSERT INTO t1 VALUES(2,1),(2,3),(2,3),(2,5),(3,2),(3,2),(3,2),(3,4),
(3,1),(3,5);
Query OK, 10 rows affected
Records: 10
Duplicates: 0
Warnings: 0
gbase> SELECT *,RANK() OVER(PARTITION BY i order by j desc) A

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
894
S rank,DENSE_RANK() OVER(PARTITION BY i order by j desc) AS d
ense_rank ,ROW_NUMBER() OVER(PARTITION BY i order by j desc)
AS row_number FROM t1;
+------+------+------+------------+------------+
| i
| j
| rank | dense_rank | row_number |
+------+------+------+------------+------------+
|
2 |
5 |
1 |
1 |
1 |
|
2 |
3 |
2 |
2 |
2 |
|
2 |
3 |
2 |
2 |
3 |
|
2 |
1 |
4 |
3 |
4 |
|
3 |
5 |
1 |
1 |
1 |
|
3 |
4 |
2 |
2 |
2 |
|
3 |
2 |
3 |
3 |
3 |
|
3 |
2 |
3 |
3 |
4 |
|
3 |
2 |
3 |
3 |
5 |
|
3 |
1 |
6 |
4 |
6 |
+------+------+------+------------+------------+
10 rows in set

manager 表的 projects 列是嵌套集合(请参阅图 1)。对嵌套集合类型的查询返回特定集合
包含的所有元素。
下列查询显示返回 projects 列的特定行中所有元素的查询。
WHERE 子句
将查询限制为单个行,在其中,mgr_name 列中的值是 Sayles。
图: 查询
SELECT projects
FROM manager
WHERE mgr_name = 'Sayles'
查询结果显示 manager 表的单个行的 project 列集合。查询返回管理 Sayles 描述的那些项目
的名称。对于 LIST 中的每个元素,集合包含项目名(pro_name)和指定给每个项目的成
员(pro_members)的 SET 。
图: 查询结果
projects LIST {ROW(voyager_project, SET{Simonian, Waters, Adams, Davis})}

projects LIST {ROW(horizon_project, SET{Freeman, Jacobs, Walker,
Cannan})}

projects LIST {ROW(sapphire_project, SET{Villers, Reeves, Doyle,
Strongin})}