http://blog.itpub.net/25116248/viewspace-1161788/
如何解决了。我们首先来判断一下
执行sql
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
如果这里选择不出了记录的话,就是密码文件没有叻。
*************************************************************************************************
[oracle@caijidb dbs]$ orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=oracle entries=5 force=y;
说明:
●FILE参数指定口令文件存放的全路径及文件名。口令文件的命名也应该遵循Oracle公司指定的规范:orapw,在例子中实例名是orcl
●PASSWORD指定超级用户SYS的密码
●ENTRIES为整数,指定最多有多少用户称为超级用户(SYSDBA)
●FORCE取值为“Y”或者“N”,指定是否强行覆盖已经存在的口令文件
完成上述工作后需要重新设置初始化参数文件中的REMOTE_LOGIN_PASSWORDFILE的值。
因为SPFILE是不可编辑的,所以需要使用现有的SPFILE文件生成一个PFILE文件,编辑其中的REMOTE_LOGIN_PASSWORDFILE的值。然后重新生成一个新的SPFILE文件。
修改SPFILE期间需要关闭数据库,修改完成后再次启动数据库。
SQL> select * from v$pwfile_users;
-------------------------------------------------------------------------------------------------------
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SYSTEM TRUE FALSE
SQL> REVOKE SYSDBA FROM SYSTEM;
Revoke succeeded.
SQL> select * from v$pwfile_users;
USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE
SQL> GRANT SYSDBA TO SYSTEM;
Grant succeeded.
SQL>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29209863/viewspace-2128148/
,如需转载,请注明出处,否则将追究法律责任。