oracle数据库有时会出现客户端连接间歇性失败,报类似如下错误:
ORA-12519, TNS:no appropriate service handler found
可能是数据库上当前的连接数目已经超过了它能够处理的最大值。
查看数据库允许的最大连接数:
| 代码如下 | 复制代码 |
|
select value from v$parameter where name = 'processes'; show parameter processes; |
|
查看当前的连接数:
| 代码如下 | 复制代码 |
|
select count(*) from v$process; |
|
v$process视图包含当前系统oracle运行的所有进程信息。常被用于将oracle或服务进程的操作系统进程ID与数据库session之间建立联系。
修改最大连接数:
| 代码如下 | 复制代码 |
|
alter system set processes = 300 scope = spfile; |
|
重启数据库:
| 代码如下 | 复制代码 |
|
shutdown immediate; startup; |
|
查看当前有哪些用户正在使用数据:
| 代码如下 | 复制代码 |
|
SELECT osuser,a.username,cpu_time/executions/1000000||'s',sql_fulltext,machine from v$session a, v$sqlarea b where a.sql_address =b.address order by cpu_time/executions desc; |
|
查询数据库自启动以来最大的并发数量(sessions_highwater 记录的是数据库会话曾经达到的最大值):
| 代码如下 | 复制代码 |
|
select * from v$license |
|
查看oracle用户数据库连接数
1、查询oracle的连接数
| 代码如下 | 复制代码 |
| select count(*) from v$session; |
|
2、查询oracle的并发连接数
| 代码如下 | 复制代码 |
| select count(*) from v$session where status='ACTIVE'; |
|
3、查看不同用户的连接数
| 代码如下 | 复制代码 |
| select username,count(username) from v$session where username is not null group by username; |
|
4、查看所有用户:
| 代码如下 | 复制代码 |
| select * from all_users; |
|
5、查看用户或角色系统权限(直接赋值给用户或角色的系统权限):
| 代码如下 | 复制代码 |
| select * from dba_sys_privs; select * from user_sys_privs; |
|
6、查看角色(只能查看登陆用户拥有的角色)所包含的权限
| 代码如下 | 复制代码 |
| select * from role_sys_privs; |
|
7、查看用户对象权限:
| 代码如下 | 复制代码 |
| select * from dba_tab_privs; select * from all_tab_privs; select * from user_tab_privs; |
|
8、查看所有角色:
| 代码如下 | 复制代码 |
| select * from dba_roles; |
|
9、查看用户或角色所拥有的角色:
| 代码如下 | 复制代码 |
| select * from dba_role_privs; select * from user_role_privs; |
|
10、查看哪些用户有sysdba或sysoper系统权限(查询时需要相应权限)
| 代码如下 | 复制代码 |
| select * from V$PWFILE_USERS; | |
修改数据库允许的最大连接数:
| 代码如下 | 复制代码 |
|
alter system set processes = 300 scope = spfile; |
|
查看游标数量
| 代码如下 | 复制代码 |
|
Select * from v$open_cursor Where user_name='' |
|
查询数据库允许的最大连接数:
| 代码如下 | 复制代码 |
| select value from v$parameter where name = 'processes'; 或者:show parameter processes; |
|
查询数据库允许的最大游标数:
| 代码如下 | 复制代码 |
|
select value from v$parameter where name = 'open_cursors' |
|
查看oracle版本
| 代码如下 | 复制代码 |
|
select banner from sys.v_$version; |
|
按降序显示用户"SYSTEM"为每个会话打开的游标数
| 代码如下 | 复制代码 |
|
select o.sid, osuser, machine, count(*) num_curs from v$open_cursor o, v$session s where user_name = 'SYSTEM' and o.sid=s.sid group by o.sid, osuser, machine order by num_curs desc; |
|