oracle查找各PDB密码过期账户
Posted 左直拳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle查找各PDB密码过期账户相关的知识,希望对你有一定的参考价值。
连接oracle的时候,又报 ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 的错误。这种现象之前遇到不少,猜测可能又是某个sde账号密码过期或快过期,导致arcgis不停地连数据库,因而连接耗尽了。详见拙作:密码过期导致Oracle process耗尽问题
这种问题解决起来也简单,将相关账号密码重置就可以了。问题是,是哪个库的账号?我们用的是oracle 12C,一个实例里面有好几个所谓插件数据库。它们共用连接池,一损俱损。
找出指定名称的账号语句如下:
select a.name,b.username,b.account_status
from v$pdbs a left join cdb_users b on a.con_id=b.con_id
where b.username='SDE';
可见有三个库的,名为SDE的账号密码过期或快过期了。它们都与arcgis有关。
另外,在sqlplus中查找数据,结果常常换行,极不友好。需要设置一下输出格式。
设置输出格式
1、设置行宽
默认是80个字符,这哪够,起码300吧。
show linesize;
set linesize 300;
2、然后又可以指定列宽
比如本例中,设置 username 列宽为50个字符
col username format a50;
column
column是sqlplus里最实用的一个命令,简写column为col,用于修改显示列名的宽度;
col name format a50–将列name(字符型)显示最大宽度调整为50个字符
col num format 9999999 --将列num(num型)显示最大宽度调整为7个字符
col name heading 姓名–将name的列名输出为姓名
这种设置,应该是会话性质的,不会永久改变数据库的设置。
以上是关于oracle查找各PDB密码过期账户的主要内容,如果未能解决你的问题,请参考以下文章