het Geek-dagboek
deze pos behandelt de onderstaande scenario ‘ s:
- herstellen van verloren sys-wachtwoord met behulp van OS-authenticatie op Unix.
- herstellen van het verloren sys-wachtwoord met behulp van passwordfile-authenticatie op Unix.
- herstellen van verloren sys-wachtwoord met behulp van NTS-authenticatie op Windows.
- herstellen van het verloren sys-wachtwoord met behulp van passwordfile-authenticatie op Windows.
de te gebruiken methoden zijn gebaseerd op:
1. OS-authenticatie
2. passwordfile-authenticatie.
herstellen van verloren sys-wachtwoord met OS-authenticatie op Unix
1. Zorg ervoor dat de OS-gebruiker die is aangemeld lid is van de DBA-groep. Als de DBA-groep niet bekend is, controleer dan het bestand:
$ ORACLE_HOME/rdbms/lib/config.c (or config.s)
2. Zorg ervoor dat de sqlnet.ora-bestand bevat niet de:
sqlnet.authentication_services
parameter. Als deze parameter bestaat, moet deze worden uitgecommentarieerd.
3. controleer de parameters oracle_home, ORACLE_SID en PATH. Ze moeten overeenkomen met de parameters van de Oracle instantie waar het SYS-wachtwoord verloren is gegaan.
4. verbinding maken met de instantie met behulp van:
$ sqlplus /nologsql> connect / as sysdba
5. Het sys-wachtwoord wijzigen met:
sql> alter user sys identified by ;
als een passwordbestand in gebruik is, zal het commando het wachtwoordbestand ook bijwerken, dus het is niet nodig om dit bestand opnieuw aan te maken.
het verloren sys-wachtwoord herstellen met behulp van wachtwoordfile-authenticatie op Unix
als het SYS-wachtwoord niet bekend is en de OS-authenticatie geen optie is, kan deze methode worden gebruikt. Deze methode gaat ervan uit dat het SYS-account niet toegankelijk is, vandaar dat een abrupt afsluiten van de database nodig kan zijn.
1. Zorg ervoor dat de initialisatieparameter REMOTE_LOGIN_PASSWORDFILE is ingesteld op gedeeld of exclusief. Het wijzigen van deze parameter waarde vereist een instantie herstart.
2. OS-authenticatie uitschakelen, als het om een of andere reden is ingeschakeld, door het instellen:
sqlnet.authentication_services=(none)
in het sqlnet.ora bestand (backup van de bestaande sqlnet.ora-bestand voordat u wijzigingen aanbrengt).
3. ga naar de OS bestemming voor het passwordbestand:
$ cd $ORACLE_HOME/dbs
4. Maak een reservekopie van het vorige passwordbestand:
$ cp orapw$ORACLE_SID orapw$ORACLE_SID.bak
5. Het passwordbestand opnieuw aanmaken met het orapwd Commando:
$ orapwd file=orapw$ORACLE_SID password=
6. Probeer verbinding te maken met het nieuwe wachtwoord.
$ sqlplus /nologconnect sys as sysdba
7. Als een extra controle, als het bovenstaande succesvol is, query:
sql> select * from v$pwfile_users;
als het ten minste één regel retourneert, dan is alles in orde en is het nieuwe passwordbestand in gebruik.
8. Wijzig het sys-wachtwoord in het data dictionary met:
sql> alter user sys identified by ;
natuurlijk moet het nieuwe wachtwoord overeenkomen met het nieuwe wachtwoord van het passwordbestand, als dat wachtwoord moet worden bewaard, of het kan op iets anders worden ingesteld als het oorspronkelijke wachtwoord moet worden gewijzigd. Dit commando zou ook het passwordbestand bijwerken.
9. Als de test in step niet slaagt, moet de instantie opnieuw worden gestart. Het kan zijn dat, als er geen sysdba of sysoper toegang mogelijk is, dat de instantie abrupt moet worden neergehaald, doe dit door:
– een achtergrondproces afbreken (bij voorkeur Smon doden, dus PMON kan nog steeds wat opschonen).
– het verwijderen van de gedeelde geheugenbronnen met behulp van ipcrm als ze niet worden verwijderd door mijn PMON.
10. Na het herstarten van de instantie, controleer of het SYS wachtwoord operationeel is en of er minstens één regel in v$pwfile_users staat. Als andere gebruikers eerder items in de passwordfile hadden, verleen ze SYSDBA of SYSOPER opnieuw.
11. SQLNet herstellen.ora-bestand van de back-up uitgevoerd bij stap # 2, indien nodig.
herstellen van verloren sys-wachtwoord met behulp van NTS-authenticatie op Windows
1. Zorg ervoor dat de OS-gebruiker die is aangemeld lid is van de Windows ora_dba-groep.
2. Zorg er ook voor dat de sqlnet.ora bestand heeft de volgende regel:
sqlnet.authentication_services = (nts)
3. Verbinding maken met de instantie met behulp van:
$ sqlplus /nologconnect / as sysdba
4. Het sys-wachtwoord wijzigen met:
sql> alter user sys identified by ;
als een passwordbestand in gebruik is, zal het commando het wachtwoordbestand ook bijwerken, dus het is niet nodig om dit bestand opnieuw aan te maken.
het verloren sys-wachtwoord herstellen met behulp van wachtwoordfile-authenticatie op Windows
als het SYS-wachtwoord niet bekend is en de OS-authenticatie geen optie is, kan deze methode worden gebruikt. Deze methode gaat ervan uit dat het SYS account niet toegankelijk is, vandaar dat een shutdown voor de database nodig kan zijn, dit kan worden bereikt door het stoppen van de ORACLESERVICESID op je systeem.
1. Zorg ervoor dat de initialisatieparameter REMOTE_LOGIN_PASSWORDFILE is ingesteld op gedeeld of exclusief.
2. OS-authenticatie uitschakelen, als het om een of andere reden is ingeschakeld, door het instellen:
sqlnet.authentication_services=(none)
in het sqlnet.ora-bestand
3. ga naar de OS bestemming voor het passwordbestand:
cd %ORACLE_HOME%\database
4. Maak een reservekopie van het vorige passwordbestand:
cp pwd.ora pwd.ora.bak
5. Het passwordbestand opnieuw aanmaken met het orapwd Commando:
orapwd file=pwd.ora password=
6. Probeer verbinding te maken met het nieuwe wachtwoord.
sqlplus /nologconnect sys as sysdba
7. Als een extra controle, als het bovenstaande succesvol is, query:
sql> select * from v$pwfile_users;
als het ten minste één regel retourneert, dan is alles in orde en is het nieuwe passwordbestand in gebruik.
8. Wijzig het sys-wachtwoord in het data dictionary met:
sql> alter user sys identified by ;
natuurlijk moet het nieuwe wachtwoord overeenkomen met het nieuwe wachtwoord van het passwordbestand, als dat wachtwoord moet worden bewaard, of het kan op iets anders worden ingesteld als het oorspronkelijke wachtwoord moet worden gewijzigd. Dit commando zou ook het passwordbestand bijwerken.
9. Als de test in step niet slaagt, moet de instantie opnieuw worden gestart. Dit kan worden gedaan door de dienst opnieuw op te starten.
10. Na het herstarten van de instantie, controleer of het SYS wachtwoord operationeel is en of er minstens één regel in v$pwfile_users staat. Als andere gebruikers eerder items in de passwordfile hadden, verleen ze SYSDBA of SYSOPER opnieuw.
11. NTS-verificatie opnieuw inschakelen door in te stellen:
sqlnet.authentication_services=(nts)
indien nodig.