返回首页

gbase数据、南大通用产品文档:GBase8aCORR()

更新日期:2024年09月11日

返回一对表达式的相关系数。返回的结果为double 数据类型。
语法
CORR( expression1, expression2)
参数说明
必须指定两个参数表达式,expression1 和expression2 须为数值表达式。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 570
注意
CORR 函数计算将忽略 expression1 或 expression2 为NULL 值的记录,
并且要求至少
两行记录聚集计算,否则返回 NULL 值。
示例1:
create table sales (quantity int, commission int);
insert into sales values(1,2),(3,4),(5,6);
gbase> select corr(quantity, commission) from sales;
+----------------------------+
| corr(quantity, commission) |
+----------------------------+
| 0.99999999975 |
+----------------------------+
1 row in set
示例2:
create table data(max_entents int, max_trans int, initial_extent int);

insert into data values(1, 1241, 2446);
insert into data values(1, 1158, 1028);
insert into data values(1, 332, 621);
insert into data values(1, 126, 408);
insert into data values(1, 173, 1222);
insert into data values(1, 180, 834);
insert into data values(1, 96, 702);
insert into data values(1, 285, 158);
insert into data values(1, null, 159);
insert into data values(1, 190, null);
insert into data values(1, null,null);
insert into data values(2, 1, 2);
insert into data values(2, 3, 4);
insert into data values(2, 5, 6);

gbase> select max_entents, corr(max_trans, initial_extent) from data group by
max_entents;
+-------------+---------------------------------+
| max_entents | corr(max_trans, initial_extent) |
+-------------+---------------------------------+
| 2 | 0.99999999975 |
| 1 | 0.707398407157965 |
+-------------+---------------------------------+
2 rows in set

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 571

ON-Bar 在 sysutils 数据库中为备份与恢复操作保留一份历史记录,并在紧急引导文件中
保留备份历史记录的另一个副本。当只有部分数据丢失时,ON-Bar 将在热恢复中使用
sysutils 数据库。由于 sysutils 数据库无法访问,因此 ON-Bar 将在冷恢复中使用紧急引
导文件。您可以使用 onsmsync 来重新生成紧急引导文件和使旧备份到期。
根据您提供的命令选项,onsmsync 实用程序可从 sysutils 数据库以及紧急引导文件中除
去以下各项:

存储管理器已终止的备份

基于备份存在时间的旧备份

基于已备份次数的旧备份
在数据库服务器处于联机状态或停顿方式下使用 onsmsync,以同步 sysutils 数据库与紧
急引导文件。
要同步 sysutils 数据库:
1.
使数据库服务器处于联机状态或停顿方式。
2.
不带任何选项运行 onsmsync 实用程序。
onsmsync 实用程序按照如下方式同步 sysutils 数据库、存储管理器和紧急引导文件:

将备份历史记录添加到 sysutils 中,紧急引导文件中有该备份历史记录,但已从
sysutils 数据库中丢失。

从 sysutils 数据库中除去恢复的记录、整个系统恢复的记录、伪备份记录、成功
和失败的备份的记录。

使不再需要的旧逻辑日志到期。

从 sysutils 数据库再次生成紧急引导文件。

选择到期策略
可从以下三个到期策略中选择:
保留时间日期 (-t)
在特定日期和时间之前删除所有备份。

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

保留时间的时间间隔 (-i)
删除早于指定时段的所有备份。
保留时间生成 (-g)
为每个备份保留一定数目的版本。
ON-Bar 始终为每个存储空间保留最新的 0 级备份。它让所有早于指定时间的 0 级备份
到期,除非从所保留的最早 1 级备份恢复时需要这些 0 级备份。
ON-Bar 让所有早于指定时间的 1 级备份到期,除非从所保留的最早 2 级备份恢复时需
要这些 1 级备份。
ON-Bar 将保留从指定的保留时间之前开始以及指定的保留时间之后结束的整个系统备
份。
onsmsync 实用程序
使用 onsmsync 实用程序可通过存储管理器目录来同步 sysutils 数据库和紧急引导文件。
如果您的存储管理器是 GBase 8s Primary Storage Manager,那么还可以使用 onsmsync 实用
程序的导出和导入选项来将 GBase 8s Primary Storage Manager 备份对象导出至外部设备,
并将外部设备中的对象导入到 GBase 8s Primary Storage Manager 管理的设备。 不能对其
他存储管理器使用导出和导入选项。

下表列出了所有 onsmsync 命令元素,但用于导入和导出备份生成的元素除外。用于导入
和导出的命令元素在表 2 中列出。
表 1. onsmsync 命令的元素
元素
用途
关键注意事项
-b
将紧急引导文件
(ixbar.servernum)
和sysutils 数据库
通过对方重新生成。
如果 ixbar 文件为空或不存在,那
么 onsmsync -b 会重新创建 ixbar 文件并
从sysutils 表填充该文件。
如果 ixbar 文件不为空且包含对象数据,那
么 onsmsync -b 会更新 sysutils 数据库
和 ixbar 文件,以使其同步。

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

元素
用途
关键注意事项
如果 ixbar 文件具有条目,并
且 sysutils 数据库已重新构建,但由于不包
含数据而为空,那么 onsmsync -b 会
从 ixbar 文件重新创建 sysutils 数据。
请不要将 -b 元素与其他 onsmsync 选项一
起使用。
-b 元素不与存储管理器同步。
dbspace
指定要使其到期的一
个或多个存储空间
如果输入多个存储空间的名称,请使用空格来分
隔这些名称。
-f filename
指定包含要到期存储
空间列表的文件的路
径名
使用该选项可避免输入一长串存储空间。文件名
可以是任何有效的 UNIX™ 文件名。
-
g generation
指定每个 0 级备份要
保留的版本数
保留最近生成的备份并使此前的所有备份都到
期。
-i interval
指定保留备份的时间
间隔。
实用程序:

保留在此时间间隔之后创建的备份。

使在此时间间隔之前创建的备份到期,
并在到期的对象也被除去时除去这些备
份。
如果从该间隔后的其他备份恢复时需要在此间隔
之前的备份,那么该间隔之前的备份不会到期。
使用 ANSI 或 GLS 格式来表示 interval:
YYYY-MM 或 DD HH:MM:SS
-O
覆盖内部错误检查,
并强制实施到期策略
如果与 -t、 -g 或 -i 选项一起使用,即
使从发生在此到期日期之后的备份进行恢复时需
要所有级别的备份中的一部分,也要使所有级别

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

元素
用途
关键注意事项
的备份到期。-O 选项不影响逻辑日志到期。请
参阅使所有备份到期。
-s
跳过对到期的备份的
同步
如果提供了 -s 选项,那么对象到期取决于其
他参数。
-t timestamp 在特定日期和时间之
前让所有备份到期
保留在指定时间戳记后完成的备份。如果从该时
间戳记后发生的其他备份恢复时需要在该时间戳
记之前发生的备份,那么后者不会到期。
使用 ANSI 或 GLS_DATETIME 格式来表示时间戳
记。
-cf value
指定是否备份关键文

在与 -g、-i 或 -
t 一起使用时,从
GBase 8s Primary
Storage Manager删除
关键文件备份
有效值为:

Yes。备份关键文件。该值为 0 级、1
级或 2 级备份的缺省值。

No。不备份关键文件。该值为备份逻辑
日志文件的缺省值。

Only。仅备份关键文件。
表 2. onsmsync 导出和导入命令的元素
元素
用途
关键注意事项
-E
将单一备份生成导出
至 GBase 8s
Primary Storage
Manager 外部池
仅当设置 GBase 8s Primary Storage
Manager 外部池时使用此选项。
如果导出备份生成,那么必须指定前缀,以标识
导出的备份。onsmsync 实用程序会在外部池中
创建一个包含该前缀的子目录,并将导出的对象
放入该目录。
-g generation 指定要导出的备份生
成。
缺省值是当前备份。
-I
从外部 GBase 8s
Primary Storage
Manager 池导入单一
备份生成。
如果从外部池导入备份生成,那么必须指定导出
的备份的前缀。该前缀用于标识要导入的备份生
成。

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

元素
用途
关键注意事项
-l log_ID
导出包含逻辑日志标
识的备份生成。

-p prefix
指定要分配给将导出
的备份生成的前缀,
或用于标识要导入的
备份的前缀。
当 onsmsync 实用程序导出备份生成时,它会
使用该前缀作为放置该备份的子目录的名称。
-t timestamp 指定包含特定日期和
时间的备份生成(仅
用于导出)。
使用 ANSI 或 GLS_DATETIME 格式。
当您推出应用程序的新版本时,可能希望包含日
期和时间。
用途
如果不指定任何选项,那么 onsmsync 命令会使用存储管理器目录来同步 sysutils 数据库和
紧急引导文件。onsmsync 实用程序会将 sysutils 数据库和紧急引导文件中的备份与存储管
理器目录中的备份进行比较,然后从 sysutils 数据库和紧急引导文件中除去存储管理器目
录内不存在的所有备份。
提示: 要控制 sysutils 数据库是否保留已到期的备份与恢复的历史记录,请 使用
BAR_HISTORY 配置参数。有关信息,请参阅BAR_HISTORY 配置参数。
除了存储空间名或文件名必须放在最后之外,命令的顺序无关紧要。
命令的顺序无关紧要,但以下情况除外:

存储空间名称或文件名必须放在最后。

导出或导入时,-E 或 -I 选项必须放在最前。例如,指定 onsmsync -E -g 2,而不
是 onsmsync -g 2 -E。
在不同计算机上导入和导出备份生成的先决条件如下:

在源计算机和目标计算机上必须具有相同版本的 GBase 8s,并且这些计算机必须
使用相同的操作系统。

在源计算机和目标计算机上必须设置 GBase 8s Primary Storage Manager 并创建一
个外部池。
当您使用 -E 或 -I 选项导出或导入备份生成时,必须指定用于标识放置备份生成的子目录
的前缀。
如果使用 -E 或 -I 选项导出或导入备份生成,那么不能使用与导出或导入操作无关的任
何 onsmsync 命令选项。例如,不能同时导出备份生成并重新生成紧急引导文件。
onsmsync -I 命令重命名当前 ixbar 文件,并创建仅包含恢复导入的备份所必需信息的新文

您可以将 -cf 选项与 -g、-i 或 -t 选项一起使用,以从存储管理器删除关键文件备份。

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

如果应用 -g 选项,并且 onsmsync 实用程序的对象列表仅包含逻辑日志而不包含任何空间
备份,那么这些日志备份不会到期。在此情况下,请使用 -t 或 -i 选项来使逻辑日志备份到
期。
示例
以下示例使 2012 年 11 月 30 日前开始的备份到期:
onsmsync -t "2012-11-30 00:00:00""
以下命令将最后一个备份生成导出到外部池中名为 gen 的目录:
onsmsync -E -p gen -g 1
以下命令将按最新程度排名第 4 位的备份生成导出到外部池中名为 gen 的目录:
onsmsync -E -p gen -g 4
以下命令将当前备份生成导出到外部池中名为 gen 的目录:
onsmsync -E -p gen
以下命令将生成 2 中的所有备份对象导出到外部池中名为 gen 的目录:
onsmsync -E -p gen -g 2
以下命令将时间戳记为 2012-12-31 12:00:00 的所有备份对象导出到外部池中名为 gen 的目
录:
onsmsync -E -p gen -t “2012-12-31 12:00:00“
以下命令导入以前缀 gen 标识的子目录中的所有对象:
onsmsync -I -p gen
以下命令导入使用前缀 gen 和时间戳记 2012-12-31 12:00:00 导出的所有备份对象。由于前
缀用于标识备份生成,因此不用指定时间戳记。
onsmsync -I -p gen
以下命令将除了最后两次生成的关键文件备份之外的所有内容删除:
onsmsync -g 2 -cf yes
使 Storage Manager 上的旧备份到期
Storage Manager 和某些第三方存储管理器不允许 onsmsync 实用程序从存储管理器删除
备份。
必须手动使存储管理器中的旧备份到期或将其删除。然后,不带任何参数运行
onsmsync。
要使 Storage Manager上的旧备份到期:
1. 要手动使 Storage Manager 中的旧备份到期,请使用 ism_config -retention #days
命令。
有关更多信息,请参阅《GBase 8s Storage Manager 管理员指南》。

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

2. 不带任何选项运行 onsmsync。
重新生成紧急引导文件
要只重新生成紧急引导文件,请使用 onsmsync -b 命令。
onsmsync -b 命令将旧的紧急引导文件另存为 ixbar.server_number.system_time,并将其重
新生成为 ixbar.server_number。
重新生成 sysutils 数据库
如果丢失 sysutils 数据库,请使用 UNIX™ 上的 $GBS_HOME/etc 中的 bldutil 实用程
序,以重新创建带有空表的 sysutils 数据库。
接着使用 onsmsync 实用程序重新创建备份并在 sysutils 中恢复数据。
限制: 如果 sysutils 数据库和紧急引导文件都已丢失,那么不能使用 onsmsync 重新生成
它们。 一定要将紧急引导文件与其他操作系统文件一起备份。
删除坏备份
onsmsync 实用程序无法分辨哪些备份未能通过验证。如果最近的备份未能通过验证,但
前面的某一备份却是成功的,那么必须手动从存储管理器中删除失败的备份记录,然后不
带任何选项运行 onsmsync 以同步 ON-Bar。有关更多信息,请参阅 onbar -v 语法:验证
备份。
基于保留时间日期使备份到期
以下示例使 2006 年 11 月 24 日前开始的备份以及所有伪备份、失败的备份与恢复都到
期:
onsmsync -t "2006-11-24 00:00:00"
使生成的备份到期
以下示例保留最新的三组 0 级备份以及相关的增量备份,同时使所有之前的备份和所有
恢复、伪备份和失败的备份到期:onsmsync -g 3
基于保留时间的时间间隔使备份到期
以下示例让三天以前的所有备份以及所有伪备份、失败的备份与恢复到期:
onsmsync -i "3 00:00:00"
以下示例使 18 个月前的所有备份到期(写作 1 年 + 6 个月):
onsmsync -i "1-6"
使用多个时间点恢复使备份到期
如果您执行多个时间点恢复,那么将存在多个备份的时间线。
下图显示了三条时间线及其备份。
图: 备份的多条时间线

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




在此示例中,第二条时间线从对备份 1 的时间点恢复开始。第二条时间线包含备份 1、
5、6、7 和 8。第三条时间线(粗体显示)包含备份 1、5 和 9。第三条时间线被视为当
前时间线,因为它包含最新的备份。
在运行 onsmsync 实用程序以使旧备份到期时,onsmsync 将从当前时间线中除去旧备份,
并确保当前时间线可从保留的备份对象中恢复。不在当前时间线中的所有其他备份也将过
期,但是 onsmsync 将不确保其他时间线可从保留的对象中恢复。
onsmsync 实用程序以以下顺序应用到期策略,以确保根据指定的到期策略使当前时间线中
的对象到期,并且确保当前时间线可恢复:

在所有备份对象的集合上应用到期策略。

不使属于当前时间线的备份对象到期。

在当前时间线上应用到期策略,以确保当前时间线可恢复。
同时,将到期策略应用于其他时间线中的备份。
例如,如果在上图的示例上执行 onsmsync -g 2 命令,那么当前时间线中的备份 1 将到
期,第一和第二个时间线中的备份 2、3、4、6 和 7 也将到期。当前时间线中的备份
1、5 和 9 将保留。其他时间线中的备份 8 将保留。
使所有备份到期
除非使用 -O 选项,否则 onsmsync 实用程序将保留最新的 0 级备份。 如果使用 -O 和 -
t 选项,即使恢复还需要所指定时间前的所有备份,也会将那些备份全部除去。如果使用 -
O 和 -i 选项,即使恢复还需要所指定时间间隔前的所有备份,也会将那些备份全部除去。
例如:要使所有备份到期,请指定以下选项:
onsmsync -O -g 0
重要: 如果将 -O 选项与 -t、-i 或 -g 选项一起使用,您可能会意外删除某些关键备份,从而使
恢复无法进行。


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

用例样表
CREATE TABLE "pt" (
"i" int(11) DEFAULT NULL,
"j" int(11) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8
TABLESPACE='sys_tablespace'
PARTITION BY LIST (mod(i,2))
(PARTITION p0 VALUES IN (0) TABLESPACE = 'sys_tablespace' ENGINE =
EXPRESS,
PARTITION p1 VALUES IN (1) TABLESPACE = 'sys_tablespace' ENGINE =
EXPRESS)
语法SELECT
SELECT ... FROM [vc_name.][database_name.] [PARTITION
(partition_name1[, partition_name2, ...])]
示例:
gbase> create table tf(a int,d int)
partition by range (d)
(
partition p0 values less than (1990),
partition p1 values less than (2000),
partition p2 values less than (2010),
partition p3 values less than (2020),
partition p4 values less than (2030)
);
gbase> select * from tf partition(p4);
+------+------+
| a
| d
|

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1072
+------+------+
|
1 | 2023 |
+------+------+
1 row in set (Elapsed: 00:00:00.01)
语法DELETE
DELETE ... FROM [vc_name.][database_name.] [PARTITION
(partition_name1[, partition_name2, ...])]
示例:
gbase> insert into pt values(1,1),(2,2);
Query OK, 2 rows affected (Elapsed: 00:00:01.70)
gbase> delete from pt partition(p1);
Query OK, 1 row affected (Elapsed: 00:00:03.27)
gbase> delete from pt partition(p0,p1);
Query OK, 1 row affected (Elapsed: 00:00:00.11)
语法UPDATE
UPDATE [vc_name.][database_name.] [PARTITION
(partition_name1[, partition_name2, ...])] set…
说明:分区条件列不允许更新
示例:
gbase> insert into pt values(1,1),(2,2);
Query OK, 2 rows affected (Elapsed: 00:00:01.00)
更新指定分区数据
gbase> update pt partition (p0) set j=j+1;
Query OK, 1 row affected (Elapsed: 00:00:02.41)
gbase> select * from pt;

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1073
+------+------+
| i
| j
|
+------+------+
|
2 |
3 |
|
1 |
1 |
+------+------+
2
rows in set (Elapsed: 00:00:01.20)
gbase> update pt partition (p0,p1) set j=j+1;
Query OK, 2 rows affected (Elapsed: 00:00:03.09)
Rows matched: 2
Changed: 2
Warnings: 0
gbase> select * from pt;
+------+------+
| i
| j
|
+------+------+
|
2 |
4 |
|
1 |
2 |
+------+------+
3
rows in set (Elapsed: 00:00:00.47)
快速更新模式下更新指定分区的数据
gbase> set gbase_fast_update=1;
Query OK, 0 rows affected (Elapsed: 00:00:01.39)
gbase> update pt partition (p0) set j=j+1;
Query OK, 1 row affected (Elapsed: 00:00:14.89)

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
1074