Table of Contents
Ziel
Dieser kurze Blogeintrag zeigt, wie man den ORA-01031 Fehler beim Starten einer Oracle Datenbank mithiilfe von srvctl beheben kann.
Umgebung
Zur Reproduzierung des Fehlers habe ich eine Oracle Restart 11.2.0 Testumgebung verwendet.
[grid@ora01 ~]$ crsctl query has releaseversion Oracle High Availability Services release version on the local node is [11.2.0.1.0]
Besitzer der Grid Infrastructure Installation ist der Benutzer grid. Die Oracle Database Installation wurde unter dem Benutzer oracle durchgeführt.
Die Testdatenbank wurde wie folgt konfiguriert.
[grid@ora01 ~]$ srvctl config database -d TEST Eindeutiger Datenbankname: TEST Datenbankname: TEST Oracle-Standardverzeichnis: /u01/app/oracle/product/11.2.0/db_home1 Oracle-Benutzer: grid Spfile: +DATA/OEMREP/spfileTEST.ora Domain: dba-blog.de Startoptionen: open Stoppoptionen: immediate Datenbankrolle: PRIMARY Verwaltungs-Policy: AUTOMATIC Plattengruppen: DATA,FRA Services:
Fehler
Beim Versuch des grid Benutzers mit einer der Oracle Datenbanken (Oracle Home des oracle Benutzers) zu interagieren, wie zum Beispiel beim Starten oder Stoppen der Datenbank, bricht die Aktion mit dem folgenden Fehler ab.
[grid@ora01 ~]$ srvctl start database -d test PRCR-1079 : Ressource ora.oemrep.db konnte nicht gestartet werden ORA-01031: insufficient privileges ORA-01031: insufficient privileges CRS-2674: Starten von "ora.test.db" auf "ora01" nicht erfolgreich
Wie der Fehler zeigt, kann der grid Benutzer nicht die Datenbank im Oracle Home des Benutzers oracle starten.
Lösung
Damit der grid Benutzer diese Aktionen durchführen kann, muss er Mitglied der OSDBA (unter Linux wird in der Regel dba verwendet) sein.
[grid@ora01 ~]$ groups oinstall wheel asmadmin asmdba asmoper
Die Ausgabe zeigt, dass der Benutzer nicht Mitglied dieser Gruppe ist. Dies muss nun nachgeholt werden.
[root@ora01 ~]# usermod -a -G dba grid [root@ora01 ~]# groups grid grid : oinstall wheel dba asmadmin asmdba asmoper
Der Benutzer grid kann nun mit den Oracle Datenbanken im Oracle Home des Benutzers oracle interagieren.