数据库服务器共享内存的每个部分都由一个或多个操作系统内存段组成,每个内存段分成一系列大小为 4 KB 的块,并由位图进行管理。
onstat 实用程序输出的标题行包含数据库服务器共享内存的大小(以 KB 表示)。您还可以使用 onstat -g seg 监视数据库服务器为共享内存的每一部分分配多少内存。有关如何使用 onstat 的信息,请参阅 GBase 8s 管理员参考。
size of resident + virtual segments x + y > z total allowed by configuration parameter SHMTOTAL
-567 Cannot write sorted rows. -116 ISAM error: cannot allocate memory.
数据库服务器在发送了这些消息后会回滚任何由违规查询执行的部分结果。
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 限制的事务。一经回滚,操作就不会再因为内存不足而失败,数据库服务器将继续如平常一样处理事务。