返回首页

gbase数据、南大通用产品文档:GBase8aLOCALTIMESTAMP,LOCALTIMESTAMP()

更新日期:2024年09月11日

函数说明
LOCALTIMESTAMP 和LOCALTIMESTAMP()等同于NOW()。
示例1
使用LOCALTIMESTAMP 函数,返回当前时间戳。
gbase> SELECT LOCALTIMESTAMP FROM t;
+---------------------+
| LOCALTIMESTAMP |
+---------------------+

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 876
| 2013-10-12 11:16:33 |
+---------------------+
1 row in set
示例2
使用LOCALTIMESTAMP()函数,返回当前时间戳。
gbase> SELECT LOCALTIMESTAMP() FROM t;
+---------------------+
| LOCALTIMESTAMP() |
+---------------------+
| 2013-10-12 11:16:45 |
+---------------------+
1 row in set
示例3
使用NOW()函数,返回当前“日期+时间”。
gbase> SELECT NOW() FROM t;
+---------------------+
| NOW() |
+---------------------+
| 2013-10-12 11:17:09 |
+---------------------+
1 row in set

数据库服务器将共享内存用于以下用途:
• 使虚拟处理器和实用工具能够共享数据
• 为使用 IPC 通信的本地客户机应用程序提供快速通信通道
下图说明了共享内存方案。
图: 数据库服务器使用共享内存的方式


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 108 -


共享内存分配
数据库服务器将创建共享内存的以下部分:

常驻部分

虚拟部分

IPC 通信或消息部分
如果 sqlhosts 文件指定了共享内存通信,那么数据库服务器将为通信部分分配内
存。

虚拟扩展部分
数据库服务器根据需要将操作系统段添加到共享内存的虚拟部分和虚拟扩展部分。
有关平台的共享内存设置的更多信息,请参阅机器说明。下图显示了共享内存各部分的内
容。
所有的数据库服务器虚拟处理器都可以访问相同的共享内存段。每个虚拟处理器通过保留
其自身对共享内存资源(如缓冲区、锁定和锁存器)的指针集来管理其工作。在将数据库
服务器从脱机方式转换到静默、管理或联机方式时,虚拟处理器将连接共享内存。数据库
服务器将使用锁定和锁存器来管理多个线程对共享内存资源的并发访问。
图: 数据库服务器共享内存的内容


GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 109 -


共享内存大小
数据库服务器共享内存的每个部分都由一个或多个操作系统内存段组成,每个内存段分成
一系列大小为 4 KB 的块,并由位图进行管理。
onstat 实用程序输出的标题行包含数据库服务器共享内存的大小(以 KB 表示)。您还可
以使用 onstat -g seg 监视数据库服务器为共享内存的每一部分分配多少内存。有关如何使
用 onstat 的信息,请参阅《GBase 8s 管理员参考》。
可以在 onconfig 文件中设置 SHMTOTAL 参数来限制数据库服务器可以在计算机或节点
上安排的内存开销量。SHMTOTAL 参数指定数据库服务器可用于所有内存分配的共享内
存总量。 然而,如果数据库服务器需要的内存量大于 SHMTOTAL 中设置的量,那么某
些操作可能会失败。如果发生这种情况,数据库服务器会在消息日志中显示以下消息:
size of resident + virtual segments x + y > z
total allowed by configuration parameter SHMTOTAL

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 110 -
此外,数据库服务器会将错误消息返回到已启动违规操作的应用程序中。例如,如果数据
库服务器在尝试执行操作(例如,索引构建或散列连接)时需要的内存量大于在
SHMTOTAL 中指定的内存量,那么该服务器将向应用程序返回类似于以下某条消息的错
误消息:
-567 Cannot write sorted rows.
-116 ISAM error: cannot allocate memory.
数据库服务器在发送了这些消息后会回滚任何由违规查询执行的部分结果。
内部操作(例如页清除程序或检查点活动)也会导致数据库服务器超过 SHMTOTAL 的
上限。当发生这种情况时,数据库服务器会向消息日志发送一条消息: 例如,假设数据
库服务器试图为页清除程序活动分配附加的内存但失败了。结果,数据库服务器会向消息
日志发送类似于以下消息的信息:
17:19:13 Assert Failed: WARNING! No memory available for page cleaners
17:19:13 Who: Thread(11, flush_sub(0), 9a8444, 1)
17:19:13 Results: Database server may be unable to complete a checkpoint
17:19:13 Action: Make more virtual memory available to database server
17:19:13 See Also: /tmp/af.c4
在数据库服务器通知您分配附加的内存失败后,该服务器会回滚导致其超过 SHMTOTAL
限制的事务。一经回滚,操作就不会再因为内存不足而失败,数据库服务器将继续如平常
一样处理事务。

超过 SHMTOTAL 时要执行的操作
当数据库服务器需要的内存量大于 SHMTOTAL 所允许的值时,将出现瞬时状态,这可
能是因突发超过正常处理负载的活动所引起。只有导致数据库服务器暂时耗尽内存的操作
才会暂时失败。其他操作继续以正常方式处理。
如果有消息定期指示数据库服务器需要的内存量大于 SHMTOTAL 所允许的值,那么表
示您没有正确配置数据库服务器。减小 BUFFERPOOL 配置参数中的
DS_TOTAL_MEMORY 值或 buffers 值是一种可能的解决方案;增加 SHMTOTAL 的值
是另一种解决方案。

使用 onstat 命令,
显示有关 RS 辅助服务器的状态信息。
要显示 RS 辅助服务器的数量、
有关已发送到 RS 辅助服务器的数据的信息,
以及有关 RS 辅助服务器已确认接收的内容
的信息,请使用 onstat -g rss 命令。

GBase 8s 管理员指南
南大通用数据技术股份有限公司
- 426 -
此命令具有显示有关单台服务器或多个辅助服务器的扩展信息的选项。 有关 onstat -g rss
输出的示例,请参阅《GBase 8s 管理员参考》中有关 onstat 实用程序的信息。