管理策略
数据库会话会消耗数据库相应的资源,对于会话的申请、使用、释放,都需要相应的管理策略,以便有效的管理数据库会话资源。数据库会话的管理包括配置参数管理、会话变量的管理以及相应的资源清除策略,可灵活管理数据库会话资源,实现数据库会话的安全使用。
配置内容 | 配置参数 | 默认值 | 限定范围 | 配置说明 |
---|---|---|---|---|
侦听端口 | listen_port | 5138 | 操作系统未占用的TCP端口 | 用于控制数据库会话端口,结合操作系统防火墙进行安全控制 |
最大闲置时间(单位:秒) | max_idle_time | 3600 | [0, 86400] | 用于控制会话连接空闲时长,超过空闲时长时,连接断开 |
会话建立最大失败次数 | conn_fail_cnt | 3 | [2, 100] | 建立数据库会话,密钥验证最大失败次数,超过配置阈值时,登录账户锁定5分钟 |
用户默认可用连接数 | session_per_user | 1000 | [1, 10000] | 单一用户默认可以创建的数据库会话连接最大值 |
系统最大连接数 | max_conn_num | 1000 | [1, 10000] | 数据库内整个系统默认可以创建的数据库会话连接最大值 |
最大活动事务连接数 | max_act_conn_num | 0 | [0, 1024] | 数据库内同时允许的最大活动事务连接数,用于限制活动事务量,防止资源被占满 |
查看/设置数据库会话变量命令
查看数据库连接会话属性命令
sqlSQL> SHOW {会话变量};
修改数据库连接会话属性命令
sqlSQL> SET {会话变量} TO {值};
相关系统包
数据库会话操作管理依赖系统管理员操作包DBMS_DBA,此系统包主要用于辅助管理员进行系统维护操作,如:数据库会话、数据库事务的维护。通过管理员操作包可以针对一些导致系统资源消耗较大的操作、存在安全风险的SQL操作行为进行系统维护或终止。DBMS_DBA系统包的介绍与使用请参见《系统包参考》的DBMS_DBA章节。
接口/方法 | 参数名称 | 参数类型 | 参数解释 | 接口功能 |
---|---|---|---|---|
KILL_TRANS | INTEGER | 终止事务的运行 | ||
KILL_SESSION | INTEGER | 终止数据库连接会话 | ||
KILL_SESSION_TRANS | INTEGER | 终止会话上的事务 |
说明:
终止数据库会话会导致会话上正在执行的所有操作都一并中断,属于较为重的操作。一般情况建议用户尽量采用小而轻的维护操作,仅针对单一事务或SQL操作进行维护。
示例
- 查看当前数据库连接会话时区sql
SQL> SHOW DEF_TIMEZONE; DEF_TIMEZONE | ------------------------------------------------------------------------------ GMT+08:00|
- 查看当前数据库连接会话自动提交属性sql
SQL> SHOW AUTO_COMMIT AUTO_COMMIT | ------------------------------------------------------------------------------ T |
- 设置当前数据库连接会话默认时区属性为GMT+00:00sql
SQL> SET DEF_TIMEZONE TO 'GMT+00:00'; Execute successful.Use time:1 ms. SQL> SHOW DEF_TIMEZONE DEF_TIMEZONE | ------------------------------------------------------------------------------ GMT+00:00|
- 查看数据库连接会话信息sql
SQL> SELECT nodeid,session_id,ip,user_name,db_name,start_t,status,curr_tid,auto_commit,trans_start_t FROM sys_sessions; NODEID | SESSION_ID | IP | USER_NAME | DB_NAME | START_T | STATUS | CURR_TID | AUTO_COMMIT | TRANS_START_T | ------------------------------------------------------------------------------ 1 | 230493 | 127.0.0.1| SYSDBA| SYSTEM| 2015-05-13 17:26:52.000 AD | 114 | 717722 | T | 2022-05-13 17:46:23.000 AD | 1 | 230494 | 127.0.0.1| SYSDBA| SYSTEM| 2015-05-13 17:44:29.000 AD | 112 | 717719 | F | 2022-05-13 17:45:35.000 AD | 1 | 230495 | 127.0.0.1| SYSDBA| SYSTEM| 2015-05-13 17:44:47.000 AD | 112 | 717720 | F | 2022-05-13 17:45:46.000 AD | Total 3 records. Use time:0 ms.
- 使用DBMS_DBA.KILL_TRANS接口终止数据库连接会话正在执行的事务sql
SQL> EXEC DBMS_DBA.KILL_TRANS(1,717720);