cron.daily hat probleme mit oracle backup

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

cron.daily hat probleme mit oracle backup

Beitrag von rene04 » 18.05.2006 14:32:53

Code: Alles auswählen

#Backup der Oracle Datenbank
exp xxxxxxxxl/xxx@xxxxx file=/srv/oracle/xxx_backup/xxxl-${DATE}.dmp log=/srv/oracle/xxx_backup/xxx-${DATE}.log
wenn ich in der console /etc/cron.daily/backup_dbs eingebe wird die sicherung von oracle gemacht, lasse ich sie nachts ausführen (automatisch) tut sich nix :( alle anderen backups welche auch in dieser backup_dbs stehen werden aber ausgeführt!

was kann das sein?

gruesse rene

nepos
Beiträge: 5238
Registriert: 05.01.2005 10:08:12

Beitrag von nepos » 18.05.2006 16:40:30

Schon mal versucht, fuer dieses exp den kompletten Pfad mit anzugeben?

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 19.05.2006 11:36:02

hallo,

das ist eine feine idee! da die paths ja in der .profile stehen und diese nur beim einloggen ausgeführt wird, KANN der path zu exp garnicht bekannt sein für das script :)

mal sehen am montag ob sich da was getan hat. das ding läuft immer nachts.

gruesse rene

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 22.05.2006 08:45:56

hallo,

hat leider nichts gebracht :( ich dachte wirklich das es am pfad liegt. dem scheint aber nicht so zu sein. selbes phänomen: die beiden anderen backups welche auch in dem script stehen und nicht oracle dbs sind funktionieren. das oracle backup nicht. keine fehlermeldung!

gruesse rene

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 22.05.2006 10:05:11

Hi Rene,

pack mal ein bischen debug code in den corn Job rein. Sowas wie

Code: Alles auswählen

echo "Script wird gestartet"
und nach dem exp Befehlt ein

Code: Alles auswählen

|| echo "exp ist gelaufen"
Das die Sache als root gestatet wird ist auch ok?! ...Hm..wird wohl...

bye, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 22.05.2006 10:29:45

Code: Alles auswählen

#Backup der Oracle Datenbank "xxxl"
echo "Oracle Backup wird ausgeführt"
/opt/oracle/OraHome_1/bin/exp xxxl/xxx@xxx file=/srv/oracle/xxxl_backup/xxx-${DATE}.dmp log=/srv/oracle/xxxl_backup/xxx-${DATE}.log || echo "exp erfolgreich ausgeführt"

ist das so richtig?

wird das auch angezeigt wenn es nachts automatisch ausgeführt wird? wenn ichs das script manuell ausführe funktioniert ja alles.

ich denke wenn ich mich dann am nächsten morgen neu einlogge sind die meldungen nimmer zu sehen.

gruesse rene

Benutzeravatar
blackm
Moderator und Co-Admin
Beiträge: 5921
Registriert: 02.06.2002 15:03:17
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von blackm » 22.05.2006 11:01:10

Ja, das ist richtig so.

Die Ausgaben von cron sollten eigentlich irgendwo per Mail hingeschickt werden. Ggf. in das Script oben noch ein

Code: Alles auswählen

MAILTO=da@solls.hin
einbauen. Siehe man 8 cron

bye, Martin
Schöne Grüße

Martin

Neu im Forum? --> https://wiki.debianforum.de/debianforum ... tensregeln
Log- und Konfigurationsdatein? --> pastebin.php
Forum unterstützen? --> https://wiki.debianforum.de/debianforum.de/Spenden

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 22.05.2006 11:56:35

ok. neuer test. am mittwoch weiß ich mehr. morgen dienstag hab ich schule.

gruesse rene

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 24.05.2006 09:18:00

keine email erhalten bezüglich eines fehlers.

gruesse rene

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 26.05.2006 16:00:03

hmmm, so langsam bin ich ratlos :(

gruesse rene

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 26.05.2006 16:18:38

Wenn ichn das richtig verstehe, hast Du eine Datei als /etc/cron.daily/backup_dbs angelegt, oder? Ich würde nun (vorrausgesetzt die Umgebung von Oracle ist richtig gesetzt) die .bash_profile (oder .profile, je nachdem welche Shell) mit hinein nehmen.

Code: Alles auswählen

# Sourcen der Umgebung
. ~oracle/.bash_profile
#Backup der Oracle Datenbank 
$ORACLE_HOME/bin/exp xxxxxxxxl/xxx@xxxxx file=/srv/oracle/xxx_backup/xxxl-${DATE}.dmp log=/srv/oracle/xxx_backup/xxx-${DATE}.log
Vorrausgesetzt daß hier wirklich die Umgebung des Oracle Users richtig gesetzt sind (also ORACLE_BASE, ORACLE_HOME, LD_LIBRARY_PATH usw) sollte dies jetzt funktionieren. Die Oracleprogramme brauchen hier explizit die ORACLE_HOME Variable, da sie damit ihre eigenen Pfade zusammenbaut. Mhm, aber ein Backup durch den Export einer Datenbank, ich weiß nich...

[EDÜT]
Alternativ kannst Du die Umgebung natürlich auch komplett in der /etc/cron.daily/backup_dbs nachbilden.

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 26.05.2006 17:36:02

ich versuch das mal am mittwoch (mo und die schule).

was würdest du als backup empfehlen?

gruesse rene

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 30.05.2006 15:34:41

rene04 hat geschrieben:ich versuch das mal am mittwoch (mo und die schule).

was würdest du als backup empfehlen?

gruesse rene
Kommt auf den Verwendungszweck und die Größe der Datenbank an.

[EDÜT]
Was mir gerade auffällt, so wie Du den Export benutzt machst du effektiv kein Backup der gesamten DAtenbank, sondern nur vom Schema des von Dir angegeben Users. Um einen wirklichen gesamten Export zu bekommen, mußt Du einen so genannten 'Full Database Export' durchführen. Dann sieht das ganze so aus:

Code: Alles auswählen

exp system/xxx@xxxxx full=y file=/srv/oracle/xxx_backup/xxxl-${DATE}.dmp log=/srv/oracle/xxx_backup/xxx-${DATE}.log
Dieser Export dürfen nur User durchführen, die in der Rolle EXP_FULL_DATABASE drin sind. Standardmäßig ist hier der User system eingetragen.

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 07.06.2006 12:18:58

das mit nur einem schema ist absicht ;)

ich auch das hier in mein script schreiben?:

#Sourcen der Oracle Umgebung
./opt/oracle/OraHome_1/bash_profile (man beachte den punkt am anfang der zeile)

gruesse rene

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 09.06.2006 12:46:10

rene04 hat geschrieben: das mit nur einem schema ist absicht ;)
..
So So. Ich glaub das jetzt mal. :D
rene04 hat geschrieben: ...
ich auch das hier in mein script schreiben?:

#Sourcen der Oracle Umgebung
./opt/oracle/OraHome_1/bash_profile (man beachte den punkt am anfang der zeile)
...
Fast richtig. Das muß im Prinzip gemacht werden, damit deine ORACLE Umgebung (inkl. nötigen Variablen) zu Verfügung steht. Den Punkt nicht nur beachten, sondern auch darauf achten, daß zwischen dem Punkt und dem auszuführenden Scrip ein Leerzeichen ist.

Code: Alles auswählen

#Sourcen der Oracle Umgebung
. /opt/oracle/OraHome_1/bash_profile
Dieser Punkt bewirkt nämlich, daß das Script in der gerade laufenden Shell ausgeführt wird. Läßt man diesen weg, würde für das Script eine neue Shell geöffnet und darin das Script ausgeführt. Nachdem das Script durchgelaufen ist, würde die Shell wieder beendet. Damit würden also die Variablen die in der Profile gesetzt werden, in deiner Cronumgebung nicht erscheinen. Also, nicht vergessen:
erst ein Punkt, dann Leerzeichen und dann erst das Script mit dem vollen Pfad

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 09.06.2006 12:56:24

gut, ich probier das mal aus. am montag weis ich mehr.

bäh, montag fällt die schule aus wegen wm spiel hier in kl :( d.h: schaffe gehe.

gruesse rene

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 13.06.2006 15:05:55

so, es funktioniert leider nicht. an was kann es noch liegen?

soll ich mal das script und die profile_bash von oracle posten?

gruesse

Benutzeravatar
bodo99
Beiträge: 60
Registriert: 12.05.2003 11:53:13
Wohnort: Bamberg

Beitrag von bodo99 » 15.06.2006 08:45:40

Könnte evtl ganz hilfreich sein. Meldung gabs keine?

Benutzeravatar
rene04
Beiträge: 1751
Registriert: 26.08.2004 08:46:39
Wohnort: Kaiserslautern

Beitrag von rene04 » 06.09.2006 15:26:16

Code: Alles auswählen

#!/bin/sh

#Sourcen der Oracle Umgebung
#. /opt/oracle/OraHome_1/bash_profile

PATH=/bin:/opt/firebird/bin:/usr/bin/:/opt/oracle/OraHome_1/bin/
DATE=$(date --iso-8601)
MAILTO=xxx

#Backup der TrackStudio Datenbank
gbak -user xxxx -password xxxx /srv/firebird/xxxx.fdb /srv/firebird/xxxx-${DATE}.bak
gbak -user xxxx -password xxxx /srv/firebird/xxxx.fdb /home/rosenber/xxxx-${DATE}.bak

#Backup der Registrierungsschlüssel Datenbank
gbak -user xxxx -password xxxx /srv/firebird/xxxx.fdb /srv/firebird/xxxx-${DATE}.bak
gbak -user xxxx -password xxxx /srv/firebird/xxxx.fdb /home/rosenber/xxxx-${DATE}.bak

#Backup der Wiki Datenbank
mysqldump -pxxxx wikidb > /srv/mysql/xxxx-${DATE}.sql

#Backup der Oracle Datenbank "xxxx"
echo "Oracle Backup wird ausgeführt"
$ORACLE_HOME/bin/exp xxxx/xxx@xxxx file=/srv/oracle/xxxx_backup/xxxx-${DATE}.dmp log=/srv/oracle/xxxx_backup/xxxx-${DATE}.log || echo "exp erfolgreich ausgeführt"

#Windows Freigabe auf xxxx mounten
mount -t cifs -o "port=139,username=xxxx,password=xxxx" //xxx.xxx.xxx.xxx/Backup$ /mnt/Backup/ >> /dev/null

#Kopieren des Backups auf die Windows Freigabe
cp /srv/firebird/xxxx-${DATE}.bak /mnt/Backup/TrackStudio
cp /srv/firebird/xxxx-${DATE}.bak /mnt/Backup/Registrierungsschluessel
cp /srv/mysql/xxxx-${DATE}.sql /mnt/Backup/Wiki
cp /srv/oracle/xxxx_backup/xxxx-${DATE}.dmp /mnt/Backup/Dienstplan
cp /srv/oracle/xxxx_backup/xxxx-${DATE}.log /mnt/Backup/Dienstplan

#Windows Freigabe umounten
umount /mnt/Backup/
ne, meldungen bekomme ich keine. wie gesagt wenn ichs von hand anwerfe funktioniert es, nur automatisch nachts nicht.

gruesse

Benutzeravatar
Bert
Beiträge: 3751
Registriert: 16.07.2002 14:06:52
Wohnort: Dresden
Kontaktdaten:

Beitrag von Bert » 07.09.2006 08:13:17

Das Mailto muss im Cron eingestellt werden, nicht im Script.

Ich würd das exp erstam in ein eigenes Script legen, dieses in die Crontab einbinden und im Script die Standard und Error - Out in eine Datei umlegen... Irgendwo muss der Output ja hingehen..

Gruß Bert
Programmer: A biological machine designed to convert caffeine into code.
xmpp:bert@debianforum.de

Antworten