7.1.11. ALTER SYSTEM
【语法格式】

ALTER SYSTEM 
 { ADD { TEMPFILE | GLOBAL DATAFILE } (NAME [=] LogicalName FILENAME [=] ‘FileName’ SIZE [=] Size MAXSIZE [=] MaxSize FILEGROWTH [=] Growth) 
 | REMOVE { TEMPFILE | GLOBAL DATAFILE } LogicalName 
 | MODIFY { TEMPFILE | GLOBAL DATAFILE } LogicalName SET MAXSIZE [=] MaxSize 
 | MODIFY { TEMPFILE | GLOBAL DATAFILE } LogicalName SET FILEGROWTH [=] Growth 
 | MODIFY { TEMPFILE | GLOBAL DATAFILE } LogicalName RESIZE [=] TargetSize 
 | ADD LOGFILE (NAME [=] LogName FILENAME [=] ‘LogFileName’ SIZE [=] LogSize) 
 | REMOVE LOGFILE LogName 
 | SWITCH LOGFILE 
 | KILL SESSION SessionPid 
 | KILL SESSION BY USER UserId 
 | KILL SESSION BY DATABASE DbId 
 }

【功能】
1.创建一个新的临时文件。KingbaseES 为每个临时文件维护以下属性:逻辑名、文件名(物理路径)、初始大小、最大大小和文件增长率。
2.删除某个临时文件。注意:只有不包含任何数据的临时文件才能被删除。
3.修改某个临时文件的最大大小。
4.修改某个临时文件的文件增长率。
5.对某个临时文件进行扩展或截断。
6.创建一个新的GLOBAL数据库的数据文件。
7.创建一个新的临时文件。
8.删除某个GLOBAL数据库的数据文件。
9.删除某个临时文件。只有不包含任何数据的临时文件才能被删除。
10.修改某个GLOBAL数据库的数据文件的最大大小。
11.修改某个临时数据文件的最大大小。
12.修改某个GLOBAL数据库的数据文件的增长率。
13.修改某个临时数据文件的增长率。
14.对某个GLOBAL数据库的数据文件进行扩展或截断。
15.对某个临时数据文件进行扩展或截断。
16.创建一个新的日志文件。KingbaseES 为每个日志文件维护以下属性:逻辑名、文件名(物理路径)、大小。
17.删除某个日志文件。只有状态为INACTIVE的日志文件才能被删除。
18.进行日志文件切换。
19.取消当前执行的SQL语句,session退出。
20.终止用户ID相关的所有的session。
21.终止数据库ID相关的所有的session。

【权限】
调用该命令的用户必须是数据库管理员。

【使用说明】
1.该语句不能在事务内使用。
2.LogicalName是数据文件的逻辑名。
3.FileName是数据文件的物理路径。该路径可以是绝对路径,也可以是相对路径。相对路径的物理名是相对于集群根目录下的DB子目录的。FileName的最大长度不能超过1023个字节。
4.Size和MaxSize分别是数据文件的初始大小和最大大小,其值域为[1,16000],单位是MB。MaxSize不能小于Size。
5.Growth是数据文件的增长率(百分比),其值域为[1,100]。
6.TargetSize是数据文件的目标大小,其值域为[1,16000],单位是MB。
7.LogName是日志文件的逻辑名。
8.LogFileName是日志文件的物理路径。该路径可以是绝对路径,也可以是相对路径。相对路径的物理名是相对于集群根目录下的REDOLOG子目录的。LogFileName的最大长度不能超过1023个字节。
9.Size是日志文件的大小,其值域为[16,2048],单位是MB。
10.SessionPid是需要被结束的session的pid,这个值可以使用下列方法之一获得。一,若服务器启动时启动统计线程,那么可以执行 SELECT DATNAME, PROCPID, CURRENT_QUERY FROM SYS_STAT_ACTIVITY; 来获得服务器当前的session情况,可以将PROCPID这一列的值作为参数;另一种,在需要被结束的session中执行 SELECT SYS_BACKEND_PID(); 结果集中的值可以作为参数。若传入的SessionPid 不存在,不报错。SessionPid 类型是 INT,必须大于0。
11.UserId是被结束的session所属的用户ID。
12.DbId是被结束的session所属的数据库ID。

【示例】
例一:增加临时文件
ALTER SYSTEM ADD TEMPFILE (NAME = tf FILENAME = ‘tf’ SIZE = 1 MAXSIZE = 20 FILEGROWTH = 10);
例二:修改临时文件的增长率
ALTER SYSTEM MODIFY TEMPFILE tf SET FILEGROWTH = 20;
例三:修改临时文件的最大大小
ALTER SYSTEM MODIFY TEMPFILE tf SET MAXSIZE = 200;
例四:修改临时文件的大小
ALTER SYSTEM MODIFY TEMPFILE tf RESIZE 2;
例五:删除临时文件
ALTER SYSTEM REMOVE TEMPFILE tf;
例六:增加日志文件
ALTER SYSTEM ADD LOGFILE (NAME = lf FILENAME = ‘lf’ SIZE = 100);
例七:删除日志文件
ALTER SYSTEM REMOVE LOGFILE lf;
例八:进行日志文件切换
ALTER SYSTEM SWITCH LOGFILE;
例九:增加GLOBAL数据库的数据文件
ALTER SYSTEM ADD GLOBAL DATAFILE (NAME = gf FILENAME = ‘gf’ SIZE = 1 MAXSIZE = 20 FILEGROWTH = 10);
例十:修改GLOBAL数据库的数据文件的增长率
ALTER SYSTEM MODIFY GLOBAL DATAFILE gf SET FILEGROWTH = 20;
例十一:结束SessionPid为5的session
ALTER SYSTEM KILL SESSION 5;
例十二:结束UserId为10的所有session
ALTER SYSTEM KILL SESSION BY USER 10;
例十三:结束DbId为11506的所有session
ALTER SYSTEM KILL SESSION BY DATABASE 11506;