The Geek Diary
このposでは、以下のシナリオをカバーしています:
- Unix上のOS認証を使用して失われたsysパスワードからの回復。
- Unixでpasswordfile認証を使用して失われたsysパスワードを回復します。
- Windows上でNTS認証を使用して失われたsysパスワードからの回復。
- windowsでpasswordfile認証を使用して失われたsysパスワードを回復します。
使用するメソッドは
1に依存しています。 OS認証
2. パスワードファイル認証。
Unix上のOS認証を使用した失われたsysパスワードからの回復
1. ログオンしているOSユーザーがdbaグループのメンバーであることを確認します。 Dbaグループが不明な場合は、ファイルを確認してください:
$ ORACLE_HOME/rdbms/lib/config.c (or config.s)
2. Sqlnetがあることを確認してください。oraファイルには、oraファイル:
sqlnet.authentication_services
パラメータ。 このパラメータが存在する場合は、コメントアウトする必要があります。
3. ORACLE_HOME、ORACLE_SIDおよびPATHパラメータを確認します。 これらは、SYSパスワードが失われたOracleインスタンスのパラメータに対応する必要があります。
4. 次を使用してインスタンスに接続します:
$ sqlplus /nologsql> connect / as sysdba
5. を使用してsysパスワードを変更します:
sql> alter user sys identified by ;
passwordfileが使用されている場合、コマンドはパスワードファイルも更新するため、このファイルを再作成する必要はありません。
Unixでpasswordfile認証を使用して失われたsysパスワードを回復する
SYSパスワードが不明で、OS認証がオプションでない場合は、この方法を使用できます。 この方法では、SYSアカウントにアクセスできないことを前提としているため、データベースの突然のシャットダウンが必要になる可能性があります。
1. 初期化パラメータREMOTE_LOGIN_PASSWORDFILEがSHAREDまたはEXCLUSIVEに設定されていることを確認します。 このパラメータ値を変更するには、インスタンスの再起動が必要です。
2. 何らかの理由でOS認証が有効になっている場合は、以下を設定してOS認証を無効にします:
sqlnet.authentication_services=(none)
sqlnetで。oraファイル(既存のsqlnetをバックアップします。変更を行う前のoraファイル)。
3. passwordfileのOS宛先に移動します:
$ cd $ORACLE_HOME/dbs
4. 前のpasswordfileのバックアップを作成します:
$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak
5. Orapwdコマンドを使用してpasswordfileを再作成します:
$ orapwd file=orapw$ORACLE_SID password=
6. 新しいパスワードを使用して接続してみてください。
$ sqlplus /nologconnect sys as sysdba
7. 追加のチェックとして、上記が成功した場合は、クエリ:
sql> select * from v$pwfile_users;
少なくとも1行を返す場合は、すべてが問題なく、新しいpasswordfileが使用中です。
8. を使用してデータディクショナリ内のsysパスワードを変更します:
sql> alter user sys identified by ;
もちろん、新しいパスワードは、そのパスワードを保持する場合はpasswordfileの新しいパスワードと一致しなければならず、初期パスワードを変更する場合は他の何かに設定することができます。 このコマンドは、passwordfileも更新します。
9. ステップのテストが成功しない場合は、インスタンスを再起動する必要があります。 Sysdbaまたはsysoperアクセスが可能でない場合、インスタンスを突然ダウンさせる必要がある場合は、
–バックグラウンドプロセスを強制終了します(SMONを強制終了し、PMONはまだクリーンアップを行うことができます)。
-私のPMONによって削除されていない場合、ipcrmを使用して共有メモリリソースを削除します。
10. インスタンスを再起動した後、SYSパスワードが動作しているかどうか、およびv$pwfile_usersに少なくとも1つのエントリがあるかどうかを確認します。 他のユーザーが以前にpasswordfileにエントリを持っていた場合は、SYSDBAまたはSYSOPERを再度付与します。
11. Sqlnetを復元します。必要に応じて、手順2で実行されたバックアップからのoraファイル。
WindowsでのNTS認証を使用したsysパスワードの紛失からの回復
1. ログオンしているOSユーザーがWindows ORA_DBAグループのメンバーであることを確認します。
2. また、sqlnetがあることを確認してください。oraファイルには次の行があります:
sqlnet.authentication_services = (nts)
3. 次を使用してインスタンスに接続します:
$ sqlplus /nologconnect / as sysdba
4. を使用してsysパスワードを変更します:
sql> alter user sys identified by ;
passwordfileが使用されている場合、コマンドはパスワードファイルも更新するため、このファイルを再作成する必要はありません。
windowsでpasswordfile認証を使用して失われたsysパスワードを回復する
SYSパスワードが不明で、OS認証がオプションでない場合は、この方法を使用できます。 この方法では、SYSアカウントにアクセスできないため、データベースのシャットダウンが必要になる可能性があることを前提としています。
1. 初期化パラメータREMOTE_LOGIN_PASSWORDFILEがSHAREDまたはEXCLUSIVEに設定されていることを確認します。
2. 何らかの理由でOS認証が有効になっている場合は、以下を設定してOS認証を無効にします:
sqlnet.authentication_services=(none)
sqlnetで。oraファイル
3. passwordfileのOS宛先に移動します:
cd %ORACLE_HOME%\database
4. 前のpasswordfileのバックアップを作成します:
cp pwd.ora pwd.ora.bak
5. Orapwdコマンドを使用してpasswordfileを再作成します:
orapwd file=pwd.ora password=
6. 新しいパスワードを使用して接続してみてください。
sqlplus /nologconnect sys as sysdba
7. 追加のチェックとして、上記が成功した場合は、クエリ:
sql> select * from v$pwfile_users;
少なくとも1行を返す場合は、すべてが問題なく、新しいpasswordfileが使用中です。
8. を使用してデータディクショナリ内のsysパスワードを変更します:
sql> alter user sys identified by ;
もちろん、新しいパスワードは、そのパスワードを保持する場合はpasswordfileの新しいパスワードと一致しなければならず、初期パスワードを変更する場合は他の何かに設定することができます。 このコマンドは、passwordfileも更新します。
9. ステップのテストが成功しない場合は、インスタンスを再起動する必要があります。 これは、サービスを再起動することによって行うことができます。
10. インスタンスを再起動した後、SYSパスワードが動作しているかどうか、およびv$pwfile_usersに少なくとも1つのエントリがあるかどうかを確認します。 他のユーザーが以前にpasswordfileにエントリを持っていた場合は、SYSDBAまたはSYSOPERを再度付与します。
11. NTS認証を再度有効にするには、次のように設定します:
sqlnet.authentication_services=(nts)
必要に応じて。