Nachträgliche Änderung der Betriebssystemgruppen für SYSBACKUP, SYSDG und SYSKM auf Linux/Unix

16. September 2015 Aus Von Markus Flechtner

Oracle 12c erlaubt die Aufteilung der DBA-Tätigkeiten (Backup, DataGuard und Key-Management für Verschlüsselung) auf verschiedene Betriebssystemgruppen. Manchmal sind diese Gruppen zum Installationszeitpunkt noch nicht vorhanden oder eine derartige Aufteilung der Zuständigkeiten wird als nicht notwendig erachtet.

Was ist zu tun, wenn nachträglich doch eine Verteilung der DBA-Aufgaben gewünscht ist.

Die Zuordnung der OS-Gruppen erfolgt über die Datei $ORACLE_HOME/rdbms/lib/config.c.

Diese Datei enthält am Ende die folgenden Einträge (beispielhaft wird hier alles der DBA-Gruppe zugeordnet):

..
#define SS_DBA_GRP "dba"
#define SS_OPER_GRP "oper"
#define SS_ASM_GRP ""
#define SS_BKP_GRP "pdba"
#define SS_DGD_GRP "dba"
#define SS_KMT_GRP "dba"

const char * const ss_dba_grp[] =
 {SS_DBA_GRP, SS_OPER_GRP, SS_ASM_GRP,
 SS_BKP_GRP, SS_DGD_GRP, SS_KMT_GRP};

Um diese Zuordnung zu ändern, sind folgende Schritte erforderlich:

1. Anlegen der Betriebssystemgruppen und der zugehörigen User (im Beispiel: backupuser)

oracle> grep dba /etc/group
dba:x:54322:oracle,grid
asmdba:x:54325:grid,oracle
backupdba:x:54328:oracle, backupuser
dgdba:x:54329:oracle
kmdba:x:54330:oracle

2. Runterfahren der Oracle-Instanzen und Listener die aus dem ORACLE_HOME heraus gestartet wurden.

3. Anpassen der Datei config.c
(vorher natürlich eine Sicherung machen)

#define SS_DBA_GRP "dba"
#define SS_OPER_GRP "oper"
#define SS_ASM_GRP ""
#define SS_BKP_GRP "backupdba"
#define SS_DGD_GRP "dgdba"
#define SS_KMT_GRP "kmdba"

4. Relink der Oracle-Software

oracle> cd $ORACLE_HOME/rdbms/lib 
oracle> rm config.o 
oracle> make -f ins_rdbms.mk 
oracle> relink all 
writing relink log to: /u00/app/oracle/product/12.1.0.2/install/relink.log

5. Test
Danach kann die OS-Authentisierung mit Hilfe der neuen Betriebssystemgruppen ausgenutzt werden.

root@si: su - backupuser
-bash-4.1$ id
uid=9999(backupuser) gid=54328(backupdba) groups=54328(backupdba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
-bash-4.1$ . oraenv

ORACLE_SID = [backupuser] ? SI12C
ORACLE_BASE environment variable is not being set since this
information is not available for the current user ID backupuser.
You can set ORACLE_BASE manually if it is required.
Resetting ORACLE_BASE to its previous value or ORACLE_HOME
The Oracle base has been set to /u00/app/oracle/product/12.1.0.2
-bash-4.1$ rman

backupuser@si:~/ [SI12C] rman
Recovery Manager: Release 12.1.0.2.0 - Production on Tue Sep 15 23:12:16 2015
Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved.

RMAN> connect target '/ as sysbackup'
connected to target database: SI12C (DBID=1353354747)

Weitere Informationen zum Thema “Relink von Oracle Software” gibt in der Support-Note “Relinking Oracle Home FAQ ( Frequently Asked Questions) (Doc ID 1467060.1)”

 


Werbung (Amazon-Partner-Link)