返回首页

gbase数据、南大通用产品文档:GBase8ssysmaster 数据库

更新日期:2024年09月11日

数据库服务器创建并维护 sysmaster 数据库。它类似于数据库的系统目录,数据库的系统
目录在 GBase 8s SQL 参考指南 中描述。正如数据库服务器管理的每个数据库的系统目录
对数据库中的对象和特权进行跟踪那样,
每个数据库服务器的 sysmaster 数据库对有关数
据库服务器的信息进行跟踪。
sysmaster 数据库包含了系统监视接口 ( SMI ) 表。SMI 表提供了有关数据库服务器的状
态信息。可以查询这些表以识别处理瓶颈、确定资源的使用、跟踪会话或数据库服务器的
活动等等。本章对这些表进行描述,它们与普通表稍有不同。
警告: 数据库服务器依赖于 sysmaster 数据库。请不要更改 sysmaster 中任何表和表中
的任何信息。这种更改可能会导致不可预料和削弱性能的结果。
数据库服务器在其初始化磁盘空间时创建 sysmaster 数据库。
数据库服务器创建具有未缓
冲的日志记录的数据库。您不能删除数据库或其中的任何表,并且不能关闭日志记录。
作为在 UNIX™ 上的用户 Gbasedbt 或者 Windows™ 上的 Gbasedbt-Admin 组的成员,
您可
以在 sysmaster 数据库创建 SPL 例程。(也可以在 sysmaster 中的表上创建触发器,但
数据库服务器从不执行那些触发器。)

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 177 -
联接 sysmaster 中的多个表可能返回不一致的结果,
因为数据库服务器在联接过程中并不
锁定这些表。可以将 sysmaster 表与其他数据库中的表进行联接。然而,要将 sysmaster
表与非日志记录数据库中的表进行联接,首先要使非日志记录数据库成为当前数据库。
buildsmi 脚本
当第一次启动数据库服务器时,它运行名为 buildsmi 的脚本,该脚本位于 etc 目录。该
脚本构建支持 SMI 的数据库和表。
数据库服务器需要大约 1750 页逻辑日志空间可用页以
构建 sysmaster 数据库。
如果接收到指示您运行 buildsmi 脚本的错误信息,那么可能在数据库构建 SMI 数据库、
表和视图时发生了问题。使用 buildsmi 时,将删除然后重新创建现有的 sysmaster 数据
库。
在确保创建数据库过程中 sysmaster 数据库没有相关联接后,该脚本才能被执行。而且在
UNIX™ 上该脚本必须以 gbasedbt 用户的身份运行,在 Windows™上该脚本必须以
Gbasedbt-Admin 群组成员的身份运行。例如:若有一个调度程序的任务在 buildsmi 脚本
开始时运行,且该程序试图去联接 sysmaster 中的任意一表,那么脚本就会运行失败。
buildsmi 脚本运行中产生的错误信息(在 UNIX )会被写入 /tmp/buildsmi.out 文件中,
或者写入 %GBASEDBTDIR%\etc\buildsmi_out 文件中
(在 Windows 上)

%GBASEDBTSERVER%
是 GBase 8s 实例的名称。
bldutil.sh 脚本
在第一次初始化数据库服务器时,在 UNIX™ 上运行名为 bldutil.sh 的脚本,或者在
Windows™ 上运行名为 bldutil.bat 的脚本。
该脚本构建了sysutils 数据库。
如果它失败,
数据库服务器会在 tmp 目录中创建一个输出文件。该输出文件在 UNIX 为
bldutil.process_id ,在 Windows 上为 bldutil.out 。该输出文件中的消息反映脚本执
行过程中发生的错误。

设置 DBDELIMITER 环境变量,可以指定与 dbexport 实用程序和 LOAD 及 UNLOAD
语句配合使用的字段定界符。

delimiter 是未装入的数据文件的字段定界符。
delimiter 可以是任何单个字符,但以下列表中的字符除外:

十六进制数字(0 至 9,a 至 f,A 至 F)

换行符或 CTRL-J

反斜杠 ( \ ) 符号
竖线 ( | = ASCII 124) 是缺省值。例如,要将字段定界符更改为加号 ( + ),可按
如下方式设置 DBDELIMITER:
setenv DBDELIMITER '+'

GBase 8s 数据库服务器在内部的锁表中存储锁。当数据库服务器读行时,它检查该行或它
的相关联的页、表或数据库是否罗列在该锁表中。如果它在锁表中,则数据库服务器还必
须检查锁类型。锁表可包含下列类型的锁。
锁名

描述
通常放置该锁的语句
S
共享锁
SELECT
X
排他锁
INSERT、UPDATE、DELETE
U
更新锁
在更新游标中的 SELECT
B
字节锁
更新 VARCHAR 列的任何语句
此外,锁表可能存储意向锁。意向锁可为意向共享的(IS)、意向排他的(IX)或意向共
享排他的(SIX)。意向锁是当需要锁定较低颗粒度对象时,数据库服务器(锁管理器)放
置在较高颗粒度对象上的锁。例如,当用户以“共享的”锁定模式锁定行或页时,数据库
服务器在该表上放置 IS(意向共享的)锁来提供立即的检查,检查没有其他用户持有该表
上的 X 锁。在此情况下,仅在该表上放置意向锁,而不是放置在行或页上。仅可以行、页
或表级别放置意向锁。
用户不对意向锁进行直接的控制;锁管理器在内部管理所有的意向锁。
下表展示如果另一用户(或数据库服务器)持有某类型的锁,则用户(或数据库服务器)
可放置哪些锁。
例如,
如果一个用户持有对某项的排他锁,
另一用户请求任何种类的锁
(排

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 251 -

他的、更新或共享的)都会收到错误。此外,如果用户持有对一个项的排他锁,则数据库
服务器不能在该项上放置任何意向锁。

持有 X

持有 U

持有 S

持有 IS

持有 SIX

持有 IX

请求 X 锁






请求 U 锁






请求 S 锁






请求 IS 锁






请求 SIX 锁






请求 IX 锁






要获取关于锁定如何影响性能的信息,请参阅您的《GBase 8s 性能指南》。