服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 数据库技术 > Oracle技术 > Oracle开发 > 查看文档

oracle初始参数中三个关于license的设置

【赛迪网-it技术报道】oracle初始参数中有3个关于license的设置:

sql> show parameter license

name type value

----------------- ---------- --------

license_max_sessions integer 0

license_max_users integer 0

license_sessions_warning integer 0

具体含义:

参数名:license_max_sessions

类别:许可限制

说明: 指定允许同时进行的并行用户会话的最大数量。达到该限制后, 只有具有 restricted session 权限的用户才能连接到服务器。所有其他用户都会收到一条警告消息, 表明已达到系统最大容量的限制。

值范围: 0 - 会话许可的数量。

默认值: 0

参数名:license_max_users

类别:许可限制

说明:指定您可在该数据库中创建的用户的最大数量。并行会话使用许可和用户使用许可不应被同时启用。license_max_sessions 或 license_max_users 或这两者的值应为零。

值范围: 0 - 用户许可的数量。

默认值: 0

参数名:license_sessions_warning

类别:许可限制

说明: 指定对并行用户会话数量的警告限制。达到该限制后, 其他用户仍然可以连接, 但一条消息将被写入 alert 文件。具有restricted session 权限的用户将收到一条警告消息, 表明系统已接近最大容量。

值范围: 0 - license_max_sessions

默认值: 0

以上参数如果是 0 表示没有限制。

除了可以查看这些初始参数之外,还可以通过视图 v$license 来观察这些参数:

sql> select * from v$license;

sessions_max sessions_warning sessions_current sessions_highwater users_max

------------ ---------------- ---------------- ------------------ ----------

0 0 53 57 0

其中:

sessions_max、sessions_warning、users_max 分别对应初始参数 license_max_sessions、license_sessions_warning、license_max_users 的数值;sessions_current 表示已经连接的 session 数量(注:该值并不等于 v$session 中查询出来的数量,似乎并不包括 oracle 本身连接的 session,但似乎还是有点出入,具体是怎样的对应关系,我还没有搞明白350){this.resized=true;this.style.width=350;}" />),sessions_highwater 表示曾经达到过的最大 session 数量。

一个简单的实验:

sql> select username,terminal,program from v$session;

username terminal program

------------------------------ ---------------- ---------------

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

wks05404 oracle.exe

sys wks05404 sqlplus.exe

10 rows selected.

sql> select * from v$license;

sessions_max sessions_warning sessions_current sessions_highwater users_max

------------ ---------------- ---------------- ------------------ ----------

0 0 2 2 0

(这里和上面的查询不知道怎么对应起来)

sql> alter system set license_max_sessions=3;

system altered.

sql> show parameter license_max_sessions

name type value

------------------------------------ ---------- --------

license_max_sessions integer 3

sql> select * from v$license;

sessions_max sessions_warning sessions_current sessions_highwater users_max

------------ ---------------- ---------------- ------------------ ----------

3 0 2 2 0

接下来新开一个窗口,连接另外一个用户:

c:documents and settingschent>sqlplus /nolog

sql*plus: release 9.2.0.6.0 - production on thu mar 23 10:51:04 2006

copyright (c) 1982, 2002, oracle corporation. all rights reserved.

sql> conn sky/forever

connected.

sql> select * from v$license;

sessions_max sessions_warning sessions_current sessions_highwater users_max

------------ ---------------- ---------------- ------------------ ----------

3 0 3 3 0

再开一个用户试试看:

c:documents and settingschent>sqlplus /nolog

sql*plus: release 9.2.0.6.0 - production on thu mar 23 10:52:45 2006

copyright (c) 1982, 2002, oracle corporation. all rights reserved.

sql> conn vivian/forever

error:

ora-00019: maximum number of session licenses exceeded

可以发现,提示超出限制,无法连接了,不过,具有 restricted session 权限的用户是可以连接的:

sql> conn sky/forever

connected.

sql> select * from v$license;

sessions_max sessions_warning sessions_current sessions_highwater users_max

------------ ---------------- ---------------- ------------------ ----------

3 0 4 4 0

最后,我们可以观察alert文件中的记录:

thu mar 23 10:47:30 2006

alter system set license_max_sessions=3 scope=both;

thu mar 23 10:52:51 2006

non-dba logon denied; current logons equal maximum (3)

license maximum (3) exceeded, dba logon allowed

扫描关注微信公众号