如何修改Oracle 10g ASM的sys密码

Oracle 10g的ASM实例的sys密码有时候需要修改。它的修改方法是直接修改ASM实例的密码文件,和数据库实例中用户的密码修改方式是不一样的。

我们不能通过alter user 命令修改ASM数据库的sys用户密码。ASM的sys密码只能被密码文件提供,并且ASM实例的REMOTE_LOGIN_PASSWORDFILE的值设置为EXCLUSIVE。

如果使用alter user命令修改,将出现ORA-01031错误。操作如下所示:

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

我们修改密码文件中的信息实现密码修改操作。而操作方法是使用orapwd重建密码文件。

1、设置ORACLE_HOME和ORACLE_SID匹配ASM实例
2、使用sqlplus / as sysdba连接ASM实例
3、如果remote_login_passwordfile的值为EXCLUSIVE,ASM实例必须关闭
4、备份现在的密码文件PWD<SID>.ora( In Windows) / orapw<SID> ( in UNIX)后,删除。
5、执行下列重建密码文件命令

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密码。

$ export ORACLE_SID=+ASM
$ asmcmd
ASMCMD> passwd sys
Enter old password (optional): ******
Enter new password: ******

也可以使用asmcmd工具修改RAC的sys密码

ASMCMD> orapwusr --modify --password sys

Enter password: ******
ASMCMD> exit

关键是10g下修改sys密码需要关闭数据库实例和ASM实例,修改方法是重建密码文件。

相关推荐