返回首页

gbase数据、南大通用产品文档:GBase8sonclean 实用程序

更新日期:2024年09月11日

如果 onmode 实用程序无法关闭数据库服务器或您无法重启服务器,可使用 onclean 实用
程序强制执行立即关闭数据库服务器。
onclean 实用程序试图去清除共享内存和信号量并且
停止数据库服务器的虚拟进程。
语法
在 UNIX™ 和 Linux™ 上,必须以用户 root 或 gbasedbt 的身份执行 onclean 命令。在
Windows™ 上,必须以 Gbasedbt-Admin 组成员的身份执行该命令。

表 1. onclean 命令语法元素
元素
用途
-k
通过停止数据库服务器虚拟进程和尝试清除剩余信号量、
共享
内存片段(尽管它们仍在运行中)来关闭联机的服务器
-V
显示简短的版本信息
-version
显示所有的版本信息
-y
不提示输入确认

用法
只能在 onmode 实用程序无法关闭数据库服务器或您无法重启服务器的情况下,使用
onclean 实用程序去停止数据库服务器。
数据库服务器可能由于不可控的方法关闭并且无法
恢复,或者它被挂载。如果数据库服务器无法重启,它以前的实例却仍会连接共享内存片
段。可以检查消息日志来查看数据库服务器是否正常关闭。onclean 实用程序停止所有的

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

oninit 进程并尝试移除所有的共享内存片段和在 $GBS_HOME/etc/.conf.dbservername 文
件中记录的信号量。
注意:
请谨慎使用 onclean 实用程序。
当运行 onclean 时,
任意挂起的事务和进程将无法
完成并且用户会话会突然断线。然而,当数据库服务器重新启动后,它会回滚这些事务。
GBS_HOME 环境变量必须设置可用的值以运行该实用程序。
onclean 命令在下例情况下使用:
l 如果不确定数据库服务器是否离线,可使用不带有选项的 onclean 命令。如果数据
库服务器仍然在线,将会显示一个指导您运行 onclean -k 命令的消息。
l 如果数据库服务器离线,可使用 onclean 命令。
l 如果数据库服务器在线并且您确定要强制关闭它,可使用 onclean -k 命令。
使用 onclean 实用程序只能关闭本地数据库服务器;不能关闭远程数据库服务器。onclean
实用程序无法用于关闭一个整个高可用集群或远程数据库服务器。
onclean 实用程序在任何情况下可能不能清除数据库服务器使用的共享内存片段。onclean
实用程序会尝试只终止 oninit 进程。onclean 实用程序在以下情况下不会成功:
l 如果在运行 onclean 命令前有一非数据库服务器连接共享内存,onclean 实用程序
将无法停止该进程以清除共享内存片段。
l 当应用程序或数据库服务器实用程序连接了网络端口时,onclean 可能无法保证一
个干净的服务器启动。如果用户试图在同一网络端口初始化数据库服务器,数据
库服务器会无法启动监听器进程并启动失败。
onclean 实用程序无法停止释放网络
端口的应用程序。
如果必要,
您可以使用 onshutdown 脚本自动关闭数据库服务器,
它会调用 onclean -ky 命
令。
返回码
0
成功
1
因为以下其中一个问题失败:
l 错误的环境变量配置
l 运行 onclean 命令的权限错误
l 命令的语法错误
l 已损坏的信息
l 在联机的服务器上运行 onclean 命令时,没有使用 -k 选项
2
由于 onclean 使用的一个或多个操作系统的系统调用返回错误而失败。

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

返回值

返回X 的反余弦,即返回余弦值为X 的值;

如果X 不在-1 到1 之间的范围内,返回NULL。
示例
示例1
X 为正数。
gbase> SELECT ACOS(1) FROM t;
+---------+
| ACOS(1) |
+---------+
| 0 |
+---------+
1 row in set
示例2
X 为小数。
gbase> SELECT ACOS(1.0001) FROM t;
+--------------+
| ACOS(1.0001) |
+--------------+
| NULL |
+--------------+
1 row in set
示例3
X 为0。
gbase> SELECT ACOS(0) FROM t;
+-----------------+
| ACOS(0) |
+-----------------+
| 1.5707963267949 |
+-----------------+
1 row in set

DBSPACETEMP 环境变量指定在其中构建临时表的数据库空间。该列表可能包含标准数
据库空间和/或临时数据库空间。

dbspace 是现有的标准或临时数据库空间的名称。
您可以列出数据库空间(用冒号 ( : ) 或逗号 ( , ) 符号来分隔),以便为跨物理
存储设备的临时表指定空间。例如:用来设置 DBSPACETEMP 环境变量的以下命令为临时
表指定三个数据库空间:
setenv DBSPACETEMP sorttmp1:sorttmp2:sorttmp3
DBSPACETEMP 覆盖 DBSPACETEMP 参数在数据库服务器配置文件中指定的任何
缺省数据库空间。对于 UPDATE STATISTICS 操作,只有在指定 HIGH 关键字选项时才
使用 DBSPACETEMP。
在 UNIX™ 平台上,如果 DBSPACETEMP 中的数据库空间列表是由作为原始设备
来分配的块所组成的,那么就可能获得更好的性能。
就象操作系统定义的那样,环境变量的最大大小限制数据库空间的数目。如果该环境
变量指定的数据库空间不存在,那么数据库服务器不会创建该数据库空间。
两类临时表包括用户创建的显式临时表和数据库服务器创建的隐式临时表。使用
DBSPACETEMP 为这两种类型的临时表指定数据库空间。
如果使用 CREATE TEMP TABLE 语句创建显式临时表,且不在 IN dbspace 子句或
FRAGMENT BY 子句中为该表指定数据库空间,那么数据库服务器使用
DBSPACETEMP 中的设置来确定在何处创建该表。
如果使用 SELECT INTO TEMP 语句创建显式临时表,那么数据库服务器使用
DBSPACETEMP 中的设置来确定在何处创建该表。

GBase 8s SQL 指南:参考
南大通用数据技术股份有限公司 - 162 -
如果设置了 DBSPACETEMP,并且它列出的数据库空间包括日志记录和非日志记录
数据库空间,那么数据库服务器会把临时表(该表隐式或显式支持事务日志记录)存储在
日志记录数据库空间中,并把非日志记录临时表存储在非日志记录数据库空间中。
数据库服务器在执行连接操作、带有 GROUP BY 子句的 SELECT 语句、带有
ORDER BY 子句的 SELECT 语句和索引构建时会创建隐式临时表以供其自身使用。
当数据库服务器创建显式或隐式临时表时,它会使用磁盘空间来写临时数据。如果临
时表位置的设置或语句规范之间有冲突,那么以降序(从最高到最低)的优先顺序解决这
些冲突:
1.
在 UNIX 平台上,环境变量 PSORT_DBTEMP(如果设置了该环境变量的话)指定的一
个或多个操作系统目录
2.
环境变量 DBSPACETEMP 指定的一个或多个数据库空间(如果设置了该环境变量的
话)
3.
ONCONFIG 参数 DBSPACETEMP 指定的数据库空间。
4.
DUMPDIR 配置参数指定的操作系统文件空间
5.
目录 $GBASEDBTDIR/tmp (UNIX)。
要点: 如果将 DBSPACETEMP 环境变量设置为无效值,那么对于显式临时表,数据库
服务器缺省值为根数据库空间,而对于隐式临时表,缺省值为 /tmp,而不是
DBSPACETEMP 配置参数的设置。在此情况下,数据库服务器可能会填充 /tmp 直至达到限
制,最终使得数据库服务器关闭或杀死文件系统。