SQL> select INSTANCE_NAME from v$instance; INSTANCE_NAME ---------------- +ASM SQL> ALTER USER sys IDENTIFIED BY <new_password> REPLACE <old_password>; ALTER USER sys IDENTIFIED BY <new_password> REPLACE <old_password> * ERROR at line 1: ORA-01109: database not open The following error also might occur: SQL> alter user sys identified by ; alter user sys identified by * ERROR at line 1: ORA-01031: insufficient privileges
如何修改ASM的sys密码
注意修改asm的sys密码跟修改db的密码的方法不一样。
10g:
WINDOWS:
orapwd file=<ORACLE_HOME>/database/PWD<SID>.ora password=<sys_password>
UNIX:
orapwd file=<ORACLE_HOME>/dbs/orapw<SID> password=<sys_password>
虽然密码文件可以在ASM实例处于启动状态重建,但Oracle建议还是关闭掉数据库实例和ASM实例后再重建。
如果环境是ORACLE RAC,那么每个节点下的密码文件都需要重新生成。
在Oracle 11.2中,可以使用asmcmd工具修改单个实例的sys密码。
- $exportORACLE_SID=+ASM
- $asmcmd
- ASMCMD>passwdsys
- Enteroldpassword(optional):******
- Enternewpassword:******
$ export ORACLE_SID=+ASM $ asmcmd ASMCMD> passwd sys Enter old password (optional): ****** Enter new password: ******
也可以使用asmcmd工具修改RAC的sys密码
- ASMCMD>orapwusr--modify--passwordsys
- Enterpassword:******
- ASMCMD>exit
ASMCMD> orapwusr --modify --password sys Enter password: ****** ASMCMD> exit
关键是10g下修改sys密码需要关闭数据库实例和ASM实例,修改方法是重建密码文件