数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle初始参数中三个License的设置


发布日期:2020年07月08日
 
Oracle初始参数中三个License的设置

Oracle初始参数中有个关于License的设置

SQL> show parameter license

NAME TYPE VALUE

license_max_sessions integer

license_max_users integer

license_sessions_warning integer

具体含义

参数名license_max_sessions

类别许可限制

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

值范围: 会话许可的数量

默认值:

参数名license_max_users

类别许可限制

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

值范围: 用户许可的数量

默认值:

参数名license_sessions_warning

类别许可限制

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

值范围: LICENSE_MAX_SESSIONS

默认值:

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

除了可以查看这些初始参数之外还可以通过视图 v$license 来观察这些参数 SQL> select * from v$license;

SESSIONS_MAX SESSIONS_WARNING SESSIONS_CURRENT SESSIONS_HIGHWATER USERS_MAX

其中

SESSIONS_MAXSESSIONS_WARNINGUSERS_MAX 分别对应初始参数 license_max_sessionslicense_sessions_warninglicense_max_users 的数值SESSIONS_CURRENT 表示已经连接的 SESSION 数量(注该值并不等于 v$session 中查询出来的数量似乎并不包括 Oracle 本身连接的 SESSION但似乎还是有点出入具体是怎样的对应关系我还没有搞明白){thisresized=true;thisstylewidth=;} />)SESSIONS_HIGHWATER 表示曾经达到过的最大 SESSION 数量

一个简单的实验 SQL> select usernameterminalprogram from v$session;

USERNAME TERMINAL PROGRAM

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

WKS ORACLEEXE

SYS WKS sqlplusexe

rows selected

SQL> select * from v$license;

SESSIONS_MAX SESSIONS_WARNING SESSIONS_CURRENT SESSIONS_HIGHWATER USERS_MAX

(这里和上面的查询不知道怎么对应起来) SQL> alter system set license_max_sessions=;

System altered

SQL> show parameter license_max_sessions

NAME TYPE VALUE

license_max_sessions integer

SQL> select * from v$license;

SESSIONS_MAX SESSIONS_WARNING SESSIONS_CURRENT SESSIONS_HIGHWATER USERS_MAX

接下来新开一个窗口连接另外一个用户 C:Documents and Settingschent>sqlplus /nolog

SQL*Plus: Release Production on Thu Mar ::

Copyright (c) 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

再开一个用户试试看 C:Documents and Settingschent>sqlplus /nolog

SQL*Plus: Release Production on Thu Mar ::

Copyright (c) Oracle Corporation All rights reserved

SQL> conn vivian/forever

ERROR:

ORA: 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

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

ALTER SYSTEM SET license_max_sessions= SCOPE=BOTH;

Thu Mar ::

NonDBA logon denied; current logons equal maximum ()

License maximum () exceeded DBA logon allowed

上一篇:Sybase与Oracle数据库文件的互相导入

下一篇:SunSolaris运行Oracle数据库所需的内核参数