在linux环境下不重启oracle解决数据库密码过期的问题
(1) 以oracle身份登录数据库,命令:su – oracle
注意:加了"-",是以login shell登陆的,所以会设置环境变量,如果不加,则使用的还是切换前用户的环境变量,所以会出错。
(2) 进入Sqlplus控制台,命令:sqlplus /nolog
(3) 以系统管理员登录,命令:connect /as sysdba
(4) 关闭数据库,命令:shutdown immediate
(5)启动数据库,命令:startup
(6) 退出sqlplus控制台,命令:exit
(7) 进入监听器控制台,命令:lsnrctl
(8) 启动监听器,命令:start
(9) 退出监听器控制台,命令:exit
(10)重启数据库结束
密码过期 按照如下步骤进行操作:
1、查看用户的proifle是哪个,一般是default:
sql>Select username,PROFILE FROM dba_users;
2、查看指定概要文件(如default)的密码有效期设置:
sql>Select * FROM dba_profiles s Where s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';
3、将密码有效期由默认的180天修改成“无限制”:
sql>Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
修改之后不需要重启动数据库,会立即生效。
4、修改后,还没有被提示ORA-28002警告的帐户不会再碰到同样的提示;
已经被提示的帐户必须再改一次密码,举例如下:
$sqlplus / as sysdba
sql>alter user <用户名> identified by <原来的密码> ----不用换新密码,也不用重启oracle或者服务。