遺忘 SYS 密碼時,可透過密碼檔 orapwd 工具重建,無需重裝資料庫。
Oracle 使用 $ORACLE_HOME/dbs/orapw (Linux) 或 %ORACLE_HOME%\database\PWD (Windows) 儲存 SYS/SYSDBA 密碼雜湊。重建此檔案即可重置密碼。
dir %ORACLE_HOME%\database\PWD*.oracopy PWDorcl.ora PWDorcl.ora.bakorapwd file=%ORACLE_HOME%\database\PWDorcl.ora password=NewPass123 entries=10 force=yOracleServiceORCL) 或 shutdown immediate / startup。ls -l $ORACLE_HOME/dbs/orapw*cp $ORACLE_HOME/dbs/orapworcl $ORACLE_HOME/dbs/orapworcl.bakorapwd file=$ORACLE_HOME/dbs/orapworcl password=NewPass123 entries=10 force=ysqlplus / as sysdba <<< 'shutdown immediate; startup;'file:密碼檔完整路徑 (必須與現有檔名一致)。password:新 SYS 密碼 (區分大小寫,11g+ 支援大小寫敏感)。entries:最大 SYSDBA/OPER 使用者數 (建議 ≥ 實際 DBA 人數)。force=y:覆蓋既有檔案。sqlplus sys/NewPass123@orcl as sysdba
# 成功登入即重置完成
scp 同步至所有 Standby 並重啟。REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE (預設),重建即時生效;若為 SHARED,需設為 EXCLUSIVE 後重啟。若只遺忘應用使用者密碼 (非 SYS),以 SYSDBA 登入直接修改:
ALTER USER app_user IDENTIFIED BY newpass;
掌握 orapwd 重建流程,SYS 密碼遺忘不再是災難。