返回首页

gbase数据、南大通用产品文档:GBase8s程序输出布尔变量

更新日期:2024年09月11日

这个例子创建一个print_boolean程序,它输出一个 BOOLEAN 变量的值。该过程使用
“IS [NOT] NULL Operator”。本章中的几个示例调用print_boolean。
CREATE OR REPLACE PROCEDURE print_boolean (
b_name VARCHAR2, b_value BOOLEAN) AUTHID DEFINER IS
BEGIN
IF b_value IS NULL THEN
DBMS_OUTPUT.PUT_LINE (b_name || ' = NULL');
ELSIF b_value = TRUE THEN
DBMS_OUTPUT.PUT_LINE (b_name || ' = TRUE');
ELSE
DBMS_OUTPUT.PUT_LINE (b_name || ' = FALSE');
END IF;
END;

资源管理中静态池参数max_memory 的设置原

问题现象
静态池参数max_memory 的设置原则是什么?以一个静态池为例,期望最大化利
用内存(同时避免溢出风险),是否该参数设为节点物理内存的值,包括swap
吗?
解决方法

max_memory 值指Large 堆内存的分配上限。
其值不应超过gnode 进程的最大
可用内存;

默认情况下:gnode 的最大可用内存为(系统内存+swap)*0.8。其中比率0.8 可
由gbase_memory_pct_target 参数调整。无论是否开启资源管理,只要比率设
置合理,不会引发系统OOM(Out of Memory);

两种机制同时存在,
max_memory 值应小于gnode 的最大可用内存限制时才会
生效,反之则体现为不生效或不限制。

如果日志文件是新添加的(状态 A),那么可立即使用该文件,也可立即删除。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 293 -
您可能希望为以下原因而释放逻辑日志文件:

使数据库服务器不停止处理

释放已删除的 BLOB 页所用的空间
释放日志文件的过程根据日志文件的状态而变化。每个过程均在以下主题中进行了描述。
要查明逻辑日志文件的状态,请参阅逻辑日志文件的状态标志和监视日志记录活动。
提示: 有关使用 ON-Bar 或 ontape 以备份存储空间和逻辑日志的信息,请参阅《GBase 8s 备份与复原
指南》。
删除状态为 D 的日志文件
当删除已使用的日志文件时,该文件将标记为已删除(状态为 D)且无法再次使用,同时
onparams 将打印以下消息:
Log file log_file_number has been pre-dropped. It will be deleted from the log list and its
space can be reused once you take level 0 archives of all BLOBspaces, Smart
BLOBspaces and non-temporary DBspaces.
必需具有 0 级归档,以确保日志文件本身以及不同数据库空间中的所有关联信息都已归
档。在 0 级归档的结束后会删除日志文件;但是,由于除去日志文件本身属于磁盘上根
保留页结构中的更改,因此下一次执行的归档也必须是 0 级归档。必须先执行 0 级归
档,然后才能执行 1 级或 2 级归档。

释放状态为 U 的日志文件
如果日志文件包含记录但尚未备份(状态为 U),请使用通常使用的备份工具来备份该文
件。
如果备份日志文件无法将状态更改为可用 (F),那么其状态会更改为 U-B 或 U-B-L。请
参阅释放状态为 U-B 或 F 的日志文件或释放状态为 U-B-L 的日志文件。

释放状态为 U-B 或 F 的日志文件
如果日志文件已备份但仍在使用中(状态为 U-B),那么说明日志文件中的某些事务仍在
进行,或日志文件包含快速恢复所需的最旧更新。由于过去已使用过状态为 F 的日志文
件,因此该文件将与状态为 U-B 的日志文件一样遵循相同的规则。
要释放正在使用的已备份日志文件,请执行以下操作:
1. 如果您不希望等待至事务完成,可将数据库服务器切换到静默方式。
请参阅立即从联机更改到静默方式。任何活动的事务将回滚。
2. 使用 onmode -c 命令以强制产生一个检查点。执行此操作的原因是状态为 U-B
的日志文件可能包含最旧的更新。
已备份但不在使用中(状态为 U-B)的日志文件无需释放。在以下示例中,日志 34 无需
释放,但日志 35 和 36 需要释放。日志 35 包含上一个检查点,而日志 36 已备份但仍
在使用中。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 294 -
34 U-B-- Log is used, backed up, and not in use
35 U-B-L Log is used, backed up, contains last checkpoint
36 U-B-- Log is used, backed up, and not in use
37 U-C-- This is the current log file, not backed up
提示: 仅当逻辑日志没有通过活动的事务跨越并且不包含最旧的更新,您才能释放带有 U-B
(而非 L)状态的逻辑日志。

释放状态为 U-C 或 U-C-L 的日志文件
请遵循以下步骤来释放当前日志文件。
要释放当前日志文件(状态为 C),请执行以下操作:
1. 运行以下命令将当前日志文件切换到下一个可用的日志文件:onmode -l
2. 用 ON-Bar 或 ontape 备份原始日志文件。
3. 在备份了所有填满的日志文件后,会提示您切换到下一个可用的日志文件并备份
新的当前日志文件。
因为刚刚切换到此日志文件,所以无需执行备份。
在释放当前日志文件后,如果日志文件的状态为 U-B 或 U-B-L,请参阅释放状态为 U-B
或 F 的日志文件或释放状态为 U-B-L 的日志文件。

释放状态为 U-B-L 的日志文件
如果日志文件已备份,并且其中的所有事务已关闭,但该文件还未释放(状态为 U-B-
L),那么此逻辑日志文件包含最近的检查点记录。可以释放状态为 U-B-L 的日志文件。
要释放状态为 U-B-L 的日志文件,数据库服务器必须创建新的检查点。 可以运行以下命
令来强制执行检查点:onmode -c
仅限 UNIX: 要用 ON-Monitor 强制执行检查点,请选择强制执行检查点选项。