返回首页

gbase数据、南大通用产品文档:GBase8sSQL 语句和数据库服务器活动的日志记录

更新日期:2024年09月11日

在数据库服务器中可能有以下三类记录活动:
• 始终记录的活动
• 使用事务日志记录为数据库记录的活动
• 未记录的活动

始终记录的活动
有些数据库操作始终生成逻辑日志记录(即使您关闭事务日志记录或使用非日志记录
表)。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 266 -
以下操作始终为永久表而记录:
• 某些 SQL 语句,其中包括 SQL 数据定义语句。
• 存储空间备份
• 检查点
• 对数据库服务器配置的管理更改(如添加块或数据库空间)
• 为表分配新扩展数据块
• 对数据库的日志记录状态的更改
• 智能大对象操作:
o
创建
o
删除
o
分配与取消分配扩展数据块
o
截断
o
组合与分割块可用列表页
o
更改 LO 头和 LO 引用计数
• 智能大对象空间元数据
• BLOB 空间
下表列出了生成操作的语句,即使关闭了事务日志记录也会记录这些操作。
• ALTER ACCESS_METHOD
• ALTER FRAGMENT
• ALTER FUNCTION
• ALTER INDEX
• ALTER PROCEDURE
• ALTER ROUTINE
• ALTER SECURITY LABEL COMPONENT
• ALTER SEQUENCE
• ALTER TABLE
• ALTER TRUSTED CONTEXT
• ALTER USER
• CLOSE DATABASE
• CREATE ACCESS_METHOD
• CREATE AGGREGATE
• CREATE CAST
• CREATE DATABASE
• CREATE DISTINCT TYPE
• CREATE EXTERNAL TABLE
• CREATE FUNCTION
• CREATE FUNCTION FROM
• CREATE INDEX
• CREATE OPAQUE TYPE
• CREATE OPCLASS
• CREATE PROCEDURE
• CREATE PROCEDURE FROM

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 267 -
• CREATE ROLE
• CREATE ROUTINE FROM
• CREATE ROW TYPE
• CREATE SCHEMA
• CREATE SECURITY LABEL
• CREATE SECURITY LABEL COMPONENT
• CREATE SECURITY POLICY
• CREATE SEQUENCE
• CREATE SYNONYM
• CREATE TABLE
• CREATE TEMP TABLE
• CREATE TRIGGER
• CREATE TRUSTED CONTEXT
• CREATE USER
• CREATE VIEW
• CREATE XADATASOURCE
• CREATE XADATASOURCE TYPE
• DROP ACCESS_METHOD
• DROP AGGREGATE
• DROP CAST
• DROP DATABASE
• DROP FUNCTION
• DROP INDEX
• DROP OPCLASS
• DROP PROCEDURE
• DROP ROLE
• DROP ROUTINE
• DROP ROW TYPE
• DROP SECURITY
• DROP SEQUENCE
• DROP SYNONYM
• DROP TABLE
• DROP TRIGGER
• DROP TRUSTED CONTEXT
• DROP TYPE
• DROP USER
• DROP VIEW
• DROP XADATASOURCE
• DROP XADATASOURCE TYPE
• GRANT
• GRANT FRAGMENT
• RENAME COLUMN
• RENAME DATABASE

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 268 -
• RENAME INDEX
• RENAME SECURITY
• RENAME SEQUENCE
• RENAME TABLE
• RENAME TRUSTED CONTEXT
• RENAME USER
• REVOKE
• REVOKE FRAGMENT
• TRUNCATE
• UPDATE STATISTICS
• SAVE EXTERNAL DIRECTIVES
• SET CONSTRAINTS
• SET Database Object Mode
• SET INDEXES
• SET TRIGGERS
• START VIOLATIONS TABLE
• STOP VIOLATIONS
• ALTER ACCESS_METHOD
• ALTER FRAGMENT
• ALTER FUNCTION
• ALTER INDEX
• ALTER PROCEDURE
• ALTER ROUTINE
• ALTER SECURITY LABEL COMPONENT
• ALTER SEQUENCE
• ALTER TABLE
• ALTER TRUSTED CONTEXT
• ALTER USER
• CLOSE DATABASE
• CREATE ACCESS_METHOD
• CREATE AGGREGATE
• CREATE CAST
• CREATE DATABASE
• CREATE DISTINCT TYPE
• CREATE EXTERNAL TABLE
• CREATE FUNCTION
• CREATE FUNCTION FROM
• CREATE INDEX
• CREATE OPAQUE TYPE
• CREATE OPCLASS
• CREATE PROCEDURE
• CREATE PROCEDURE FROM
• CREATE ROLE

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 269 -
• CREATE ROUTINE FROM
• CREATE ROW TYPE
• CREATE SCHEMA
• CREATE SECURITY LABEL
• CREATE SECURITY LABEL COMPONENT
• CREATE SECURITY POLICY
• CREATE SEQUENCE
• CREATE SYNONYM
• CREATE TABLE
• CREATE TEMP TABLE
• CREATE TRIGGER
• CREATE TRUSTED CONTEXT
• CREATE USER
• CREATE VIEW
• CREATE XADATASOURCE
• CREATE XADATASOURCE TYPE
• DROP ACCESS_METHOD
• DROP AGGREGATE
• DROP CAST
• DROP DATABASE
• DROP FUNCTION
• DROP INDEX
• DROP OPCLASS
• DROP PROCEDURE
• DROP ROLE
• DROP ROUTINE
• DROP ROW TYPE
• DROP SECURITY
• DROP SEQUENCE
• DROP SYNONYM
• DROP TABLE
• DROP TRIGGER
• DROP TRUSTED CONTEXT
• DROP TYPE
• DROP USER
• DROP VIEW
• DROP XADATASOURCE
• DROP XADATASOURCE TYPE
• GRANT
• GRANT FRAGMENT
• RENAME COLUMN
• RENAME DATABASE
• RENAME INDEX

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 270 -
• RENAME SECURITY
• RENAME SEQUENCE
• RENAME TABLE
• RENAME TRUSTED CONTEXT
• RENAME USER
• REVOKE
• REVOKE FRAGMENT
• TRUNCATE
• UPDATE STATISTICS
• SAVE EXTERNAL DIRECTIVES
• SET CONSTRAINTS
• SET Database Object Mode
• SET INDEXES
• SET TRIGGERS
• START VIOLATIONS TABLE
• STOP VIOLATIONS TABLE

使用事务日志记录为数据库记录的活动
如果数据库使用事务日志记录,那么以下 SQL 语句将生成一个或多个日志记录。如果这
些语句回滚,那么回滚也会生成日志记录。
• DELETE
• FLUSH
• INSERT
• LOAD
• MERGE
• PUT
• SELECT INTO TEMP
• UNLOAD
• UPDATE
以下 SQL 语句在特殊情况下才生成日志。
表 1. 在特殊情况下生成日志的 SQL 语句。
SQL 语句
语句生成的日志记录
BEGIN WORK
除非数据库使用事务日志记录,否则返回错误。如果事务进行
一些其他日志记录工作,那么产生一条日志记录。
COMMIT WORK
除非数据库使用事务日志记录,否则返回错误。如果事务进行
一些其他日志记录工作,那么产生一条日志记录。
ROLLBACK
WORK
除非数据库使用事务日志记录,否则返回错误。如果事务进行
一些其他日志记录工作,那么产生一条日志记录。
EXECUTE
此语句是否生成日志记录取决于正在运行的命令。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 271 -
SQL 语句
语句生成的日志记录
EXECUTE
FUNCTION
此语句是否生成日志记录取决于正在执行的函数。
EXECUTE
IMMEDIATE
此语句是否生成日志记录取决于正在运行的命令。
EXECUTE
PROCEDURE
此语句是否生成日志记录取决于正在执行的过程。

未记录的活动
以下 SQL 语句无论数据库日志记录方式如何,均不生成日志记录。
• ALLOCATE COLLECTION
• ALLOCATE DESCRIPTOR
• ALLOCATE ROW
• CLOSE
• CONNECT
• DATABASE
• DEALLOCATE COLLECTION
• DEALLOCATE DESCRIPTOR
• DEALLOCATE ROW
• DECLARE
• DESCRIBE
• DISCONNECT
• FETCH
• FREE
• GET DESCRIPTOR
• GET DIAGNOSTICS
• INFO
• LOCK TABLE
• OPEN
• OUTPUT
• PREPARE
• RELEASE SAVEPOINT
• SAVEPOINT
• SELECT
• SET AUTOFREE
• SET COLLATION
• SET CONNECTION
• SET DATASKIP
• SET DEBUG FILE
• SET DEFERRED_PREPARE
• SET DESCRIPTOR

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 272 -
• SET ENCRYPTION PASSWORD
• SET ISOLATION
• SET LOCK MODE
• SET LOG
• SET OPTIMIZATION
• SET PDQPRIORITY
• SET ROLE
• SET SESSION AUTHORIZATION
• SET STATEMENT CACHE
• SET TRANSACTION
• SET Transaction Mode
• SET USER PASSWORD
• UNLOCK TABLE
• WHENEVER
• SET ENVIRONMENT
• SET EXPLAIN
对于临时数据库空间中的临时表,不记录任何内容,甚至始终记录的活动中所列的 SQL
语句也不记录。如果您在 DBSPACETEMP 中包含了临时(非日志记录)数据库空间,那
么数据库服务器会将非日志记录表先放在这些临时数据库空间中。有关更多信息,请参阅
临时表。

静态 SQL 语句是在编译时刻其所有信息都已知的语句。例如,下列 SELECT 语句
是静态 SQL 语句,因为在编译时刻对于它的执行所需的所有信息都存在。
EXEC SQL select company into :cmp_name from customer where customer_num
= 101;

然而,
在某些应用程序中,
编程人员不知道该程序需要执行的 SQL 语句的这些内容,

GBase 8s ESQL/C 编程指南
南大通用数据技术股份有限公司
- 416 -

或甚至可能不知道其类型。例如,程序可能提示用户输入选择语句,因此,当该程序运行
时,
编程人员不知道要访问哪些列。
这样的应用程序需要动态 SQL。
动态 SQL 允许 GBase
8s ESQL/C 程序在运行时刻构建 SQL 语句,因此,可由用户输入来确定该语句的内容。

这些主题描述下列动态 SQL 信息:
如何执行动态 SQL 语句,要使用的 SQL 语句,以及您可动态地执行的语句的类型
当您知道关于该语句在编译时刻的大多数信息时,如何执行 SQL 语句

用户根据GBase 8c 提供的新特性和数据库现状,确定是否对现有系统进行升级。
当前支持的升级模式为就地升级和灰度升级。
升级方式的策略又分为大版本升级和小版
本升级。
用户挑选升级方式后,系统会自动判断并选择合适的升级策略。

就地升级:升级期间需停止业务进行,一次性升级所有节点。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
244

灰度升级:灰度升级支持全业务操作,也是一次性升级所有节点(GBase 8c1.1.0 版本
之后的版本支持该功能)。