Freitag, 31. Juli 2009

Löschen von Daten im Transportverzeichnis /usr/sap/trans

Man möchte das Transportverzeichnis in geordneter Weise von alten Dateien bereinigen.

Auszug aus den Hinweis 41732:

Funktionalität:


Als Löschkriterium werden zwei Informationen verwendet:

    1. Wird die Datei noch für zukünftige Transporte benötigt?

Eine Datei wird noch für zukünftige Transporte benötigt, wenn der zugehörige Transportauftrag für den Import in ein SAP-System vorgemerkt aber noch nicht erfolgreich importiert wurde.

    2. Ist die Lebensdauer der Datei überschritten?

Die Lebensdauer der verschiedenen Dateien im Transportverzeichnis sind parametrisierbar (siehe Abschnitt: Parametrisierung).

Parametrisierung:
Das Mindestalter von Dateien im Transportverzeichnis, die gelöscht werden dürfen, ist im Transportprofil einstellbar. Das Transportprofil ist die Datei 'TPPARAM' im Unterverzeichnis 'bin' des Transportverzeichnisses. Folgende Parameter koennen gesetzt werden (Einheit in Tagen!):

datalifetime ist die mininale Lebensdauer der files in data
loglifetime ist die mininale Lebensdauer der files in log
olddatalifetime ist die mininale Lebensdauer der files in olddata
cofilelifetime ist die minimale Lebensdauer der files in cofiles

Beispiel:
datalifetime=30
loglifetime=60
olddatalifetime=60
cofilelifetime=30

Diese Paramter dürfen dabei nicht systemspezifisch angegeben werden, denn bei den im folgenden angegebenen tp-Aufrufen kann ebenfalls kein SAP-System angegeben werden. Statt dessen wird immer mit dem Parameter 'ALL' aufgerufen.

Gestartet wird der Reorg dann wir folgt:

zuerst den Check:

tp check all pf=

und dann das löschen bzw. verschieben der alten Files:

tp clearold all pf=

Mittwoch, 29. Juli 2009

Abbrechen von BRARCHIVE, BRBACKUP und BRRESTORE Läufen

Mit der Patch Version:

Erweitert in BR*Tools 6.40 Patch 47.
Erweitert in BR*Tools 7.00 Patch 31.
Erweitert in BR*Tools 7.10 Patch 7.

wird nun die Funktion ausgeliefert das man ein Backup bzw. Archivlogsicherung sauber terminieren kann. Somit sollte auch verhindert werden das Tablespaces im Backup-Modus stehen bleiben. Bis jetzt war nur ein Control-c bzw. ein Kill des Prozesses möglich.

folgende Varianten gibt es:

brarchive -g|-abort stop|term|kill
brbackup -g|-abort stop|term|kill
brrestore -g|-abort stop|term|kil

stop - sanfter Abbruch
term - normaler Abbruch
kill - harter Abbruch

Siehe auch HW 1129197

Dienstag, 28. Juli 2009

Buch: Ordnungsmässigkeit und Prüfung des SAP-Systems (OPSAP)

Ich möchte das Buch von Thomas Tiede empfehlen - ist sicher ein muss für jeden Auditor und Administrator der sich mit dem Thema SAP Sicherheit befasst.

Im Moment ist das Buch vergriffen - aber ich habe gelesen das es eine neue Auflage geben wird.

ISBN-13: 978-3-930291-24-3

Montag, 27. Juli 2009

Populäre Irrtümer im Oracle-Umfeld

Es gibt von der SAP den HW 825653 zum Thema Populäre Irrtümer im Oracle-Umfeld!

Dieser ist wirklich sehr Interessant und kann einige Fragen im Oracle Umfeld klären - hier ein paar Bespiele aus dem HW:

    1. Der Oracle Cost Based Optimizer wählt immer den Zugriff mit den niedrigsten errechneten Kosten.

Dies ist nicht allgemein richtig, da auch der Cost Based Optimizer in bestimmten Situationen regelbasierte Entscheidungen trifft. So kann es sein, dass ein Zugriff mit hundertmal besseren Kosten nicht verwendet wird, weil die erste Indexspalte nicht mit "=" in der WHERE-Bedingung angegeben ist und der Zugriff dadurch als "Guess" bewertet wird. Beachten Sie dazu auch die Informationen aus Hinweis 176754.

    2. Indizes sollten so aufgebaut werden, so dass die selektiven Felder ganz vorne stehen.

Es ist aus Performancegesichtspunkten egal, ob selektive oder unselektive Felder (wie MANDT) am Anfang eines Indexes stehen. Viel wichtiger ist, dass Felder, die in WHERE-Bedingungen nicht mit "=" angegeben werden und einen großen Wertebereich abdecken, möglichst weit hinten im Index zu finden sind. Außerdem muss vermieden werden, dass es Lücken im Index gibt, die nicht in der WHERE-Bedingung angegeben sind. Beachten Sie auch Hinweis 766349.

    3. Indizes, die nur Spalten mit wenigen Ausprägungen indizieren, sind überflüssig.

Die Anzahl der Distinct Values einer Spalte kann in vielen Fällen nicht mit der Selektivität bestimmer Bedingungen auf dieser Spalte gleichgesetzt werden. Es kommt oft vor, dass Bedingungen für Spalten mit wenigen Ausprägungen sehr selektiv sind. Daher tragen auch Indizes auf Spalten mit wenigen Distinct Values oft zu einer großen Performancesteigerung bei. Ein detailliertes Beispiel zu Selektivität vs. Distinct Values ist in Hinweis 766349 zu finden.

    4. Histogramme unterstützen den CBO im R/3-Umfeld bei der Auswahl des optimalen Zugriffspfades, weil Sie Informationen über die Werteverteilung von Spalten enthalten.

Histogramme können im R/3-Umfeld nicht sinnvoll ausgewertet werden, weil SAP beim Parsen Bind-Variablen verwendet und Bind Value Peeking standardmäßig deaktiviert ist. Beachten Sie dazu auch Hinweis 797629.

    5. Um zu ermitteln, wie viel Memory durch Oracle allokiert wird, muss man nur die Größe der SGA bestimmen.

Die SGA ist zwar ein wichtiger Memory-Bereich, aber auch die PGA und das Prozess-Memory können signifikante Größen erreichen. Im Einzelfall kann der durch die PGA allokierte Memory-Bereich sogar größer als die SGA werden. Daher sind auch PGA und Prozess-Memory in die Kalkulation des Oracle-Speicherverbrauchs mit einzubeziehen. Für weitere Informationen beachten Sie Hinweis 789011.

usw..... weiter geht es im HW 825653

Der Oracle Alertlog in einem SAP Umfeld

- Wo finde ich das Oracle-Alertlog?

Du findest das Alertlog im R/3-Umfeld im Verzeichnis:

UNIX: $SAPDATA_HOME/saptrace/background

Der Dateiname ist alert_. log, alrt.log oder ähnlich.

- Wieso werden manche Oracle-Fehler nicht im Alertlog protokolliert?

Oracle protokolliert nur "kritische" Fehler im Alertlog. Die Mehrheit der Oracle-Fehlercodes (darunter leider auch wirklich kritische) wird nicht geloggt. Es ist daher normal, dass Du in der Oracle-Anwendung Fehler finden, die im Alertlog nicht zu sehen sind.

- Wie kann ich vermeiden, dass das Alertlog sehr groß wird?

Hinweis 786032 beschreibt, wie die Größe des Alertlogs in Grenzen gehalten werden kann, indem das File regelmäßig umbenannt wird.

Oracle bugfixes - welche sind bereits installiert?

Sie haben ein Problem mit der Datenbank und finden im Marketplace einen Hinweis das dieser Bug mit einen Oracle Patch erledigt ist. Nun fragt man sich aber ob man nicht vielleicht den Patch schon installiert hat bzw. welche Patches sind in einer Oracle Datenbank bereits installiert?!

Seit 7.00 kann man die Patches auch mit dem brconnect abfragen:

brconnect -F lsinv

bzw wenn man genau eine Patchnummer checken möchte dann:

brconnect -F lsinv | grep NUMMER



Oracle Parameter Empfehlung für ein SAP System

Es gibt von der SAP den Hinweis 1171650 mit dem ein Script ausgeliefert wird zur Überprüfung
der Oracle Parameter eines SAP Systems.

Dabei werden die aktuellen Empfehlungen des relevanten Parameterhinweises (abhängig vom Oracle Release, Patchset und/oder Systemtyp) mit den konkreten DB Parametern verglichen.

Wichtig ist bevor man ein System auf deren Parameter überprüft immer den HW 1171650 zu checken ob es nicht ein Update vom Script gibt!


Buch: SAP NetWeaver AS Java – Systemadministration

zum Thema AS Java gibt es ein neues Buch - besonders ab 7.10 ändert sich die Architektur im Java Umfeld massiv!

SAP PRESS
527 S., 2009, geb.
69,90 Euro, ISBN 978-3-8362-1293-9
Ab Lager lieferbar Sofort lieferbar


  • Das Standardwerk zu den Releases 7.0 und 7.1
  • Architektur, Konfiguration, Softwarelogistik, Monitoring, Backup & Recovery u. v. m.
  • Hintergrundwissen, Handlungsanleitungen und Praxistipps

Portal, Planungs- oder Collaboration-Szenarien: Kaum ein SAP-Kunde kommt noch um den Betrieb eines AS Java herum. Und mit diesem Kompendium erhalten Administratoren endlich auch einen umfassenden Leitfaden zum Systemmanagement.

Die Autoren vermitteln Ihnen in diesem Handbuch Hintergrund- und Praxiswissen zu allen Fragen des täglichen Betriebs: Sie lernen alle Konzepte des AS Java, Releases 7.0 und 7.1, kennen, die für die Administration wichtig sind, erfahren, welches die regelmäßig auszuführenden Administrationsaufgaben sind, und wie Sie sie ausführen. Angefangen bei Architektur, Grundlagen der Verarbeitung und Installation über die Einrichtung der Softwarelogistik und der wichtigsten Entwicklertools bis hin zu Instanz- und Benutzerverwaltung, Monitoring und Troubleshooting sowie Backup und Recovery werden alle Themen ausführlich besprochen.

Welche Userexits sind in einem SAP System aktiv

Es gibt manchmal die Anforderung das man herausfinden soll welche Userexits in einem SAP System in welchen Projekt aktiv sind!
Es gibt dazu den Report RCEXITCHECK - diesen kann man für eine Enwticklungsklasse starten - oder man lässt dieses Feld leer und dann bekommt man alle aktiven Userexits!
Besonders interresant für eine Upgrade - man kann sich vor den Upgrade ein Liste aller aktiven Exits erstellen und muss diese nach dem Upgrade wieder vergleichen - es passiert nämlich das bei einem Upgrade Extis deaktiviert werden.

Freitag, 24. Juli 2009

Printing Assistant for Landscape (PAL)

Seit 7.00 gibt es einen neue Transaktion mit dem Namen PAL!

SAP versteht darunter Printing Assistant for Landscape - man könnte dazu auch Zentrale Druckerverwaltung sagen.

Gerade in grösseren Systemlandschaften ist diese Funktion extrem hilfreich und erspart sehr viel Arbeit.

Wie bei der Zentralen Uservewaltung wird hier der Drucker nur noch einmal auf dem
Zentralen System (z.B. Solution Manager) angelegt und dann einfach auf die anderen System verteilt!

Zur Einrichtung der PAL muss man nur RFC Verbindungen zu jedem System anlegen - deshalb
bietet sich der Solution Manager dafür am besten an da es dort diese RFC Verbindungen ja schon bereits gibt!

Worflow Inbox von einem User auslesen

Es kann schon einmal passieren das ein User in den Urlaub geht und vergisst eine Weiterleitung
im Workflow zu definieren - oder jemand wird plötzlich Krank und derem Workitems müssen
an seinen Vertreter weitergeleitet werden.

Mit dem Funktionsbaustein RH_LOCAL_INBOX_GET kann man die Workflowinbox von einem
User auslesen und die Workitems dann mit der Transaktion SWIA weiterleiten.

RH_LOCAL_INBOX_GET mit der SE37 starten - User und Sprache eingeben und ausführen!

Donnerstag, 23. Juli 2009

Job E2E_HK_CONTROLLER - Solution Manager EHP 01

Nach dem Upgrade auf den Solution Manager Release EHP 01 (SP 19) gibt es einen neuen Job mit dem Namen E2E_HK_CONTROLLER (Report SAPLE2E_EFWK_HOUSEKEEPING) - dieser läuft relativ lange und erzeugt immer zwei Kurzdumps mit dem Namen:

CALL_FUNCTION_REMOTE_ERROR
TIME_OUT

- das passiert nur dann wenn der Parameter rdisp/max_wprun_time noch auf den SAP Standard Wert 600 ist - man muss diesen erhöhen damit der Dialog Prozess (komischer Weise ruft dieser Batchjob gleichzeitg noch einen Dialogprozess auf) nicht nach 600 Sekunden abbricht und somit
auch der Batchjob abgebrochen wird.

Transaktion SE16N und seine gefahren

Ich glaube schön langsam kennt jeder im SAP Umfeld die Transaktion SE16N und seine gefahren!

Mit einem einfachen &sap_edit im Transaktionsfeld werden Tabellen änderbar die normal
nur für die Anzeige gedacht sind - bzw. normal über andere Wege gepflegt werden.

Auf der anderen Seite kann das gerade im Supportfall sehr hilfreich sein - auf der anderen Seite muss man diese Transaktion gerade auf einem Produktivsystem sehr genau einschränken.

Meines erachten darf kein User auf einem Produktivsystem diese Transaktion mit Änderungsberechtigung haben.

Wie kann man das nun sauber einschränken?!

Der User braucht folgende Berechtigungsobjekte damit er die SE16N ausführen kann und damit auch was zu ändern:

S_TCODE mit SE16N
S_DEVELOP mit der Aktität 02 und dem OBJTYPE=DEBUG

Somit einfach auf dem PROD System kein S_DEVELOP mit 01 bzw. 02 vergeben - dann hat man auch mit der SE16N kein Problem.

Ob jemand die Transkation bereits verwendet und damit Daten verändert hat kann man in den
Tabellen

SE16N_CD_DATA
SE16N_CD_KEY

prüfen -

Nachtrag 2013 - die SAP hat die Zusatzfunktion &SAP_EDIT mit einem Sicherheitshinweis deaktiviert - der Kunde muss nun selbst entscheiden ob diese Funktion in seinem System noch funktioniert oder nicht.

Es gibt dazu den Report RKSE16N_EDIT - damit kann man die Funktion aus und einschalten.

Mittwoch, 22. Juli 2009

Variante des Programms ist veraltet

Nach einem Upgrade bzw. ein Report wurde um ein Selektionsfeld geändert kommt es zu der Fehlermeldung "DB634" "Variante & des Programms & ist veraltet".

Es gibt dazu den Report RSVARDOC_610 (höher 6.00) bzw. RSVARDOC_46X (für kleiner 6.00) - mit diesem Report kann man die alten Varianten wieder herstellen.

SE38 starten - Report RSVARDOC_610 eingeben und ausführen - Programmname angeben und beim Feld S_VARI die Variante oder * eingeben - beim Feld SYSVAR das X entfernen

danach sollten sie die Variante wieder verwenden können - bzw. um das neue Feld anpassen.

Dienstag, 21. Juli 2009

Kennwort vom Datenbank User ändern

Es gibt aus Securitygründen immer wieder die Anfrage das der SAP User einer Datenbank geändert werden muss. Im SAP Umfeld lässt sich das sehr leicht mit den brtools bewerkständigen!

BRTOOLS -> 8 – Additional functions -> 4 – Change password of database user -> continue

und einfach das neue Kennwort vergeben - das war's auch schon!

Weiters kann man das auch in einer Zeile eingeben:

brconnect [-u system/] –f chpass –u

oder direkt im SQL

sqlplus “/as sysdba
alter userusernameidentified bypassword’;

Mittwoch, 15. Juli 2009

Online Reorg von einzelnen Tabellen

Es kommt immer wieder vor das man z.B. vergisst einen Trace zu deaktivieren und dadurch wird eine Tabelle unnötig aufgeblasen und der Platz in der Datenbank verschwendet.

Hat man nun den Inhalt der Tabelle wieder geleert möchte man gerne den Platz in der Datenbank zu der leeren Tabelle wieder freibekommen - das geht nun wie folgt:

Zuerst prüfen wir ob auf unserem SAP System die neuesten brtools installiert sind -
dann meldet wir uns mit putty (oder einem anderen ssh produkt) am Server als sidadm an
führen den Befehl

brspace -f tbreorg -t tabelname

aus - weiters folgen wir einfach den nächsten Schritten mit c (continue)

das wars auch schon - die Tabelle wurde online reorganisiert

wichtig - das geht nicht mit Tabellen die LANG RAWS haben - diese müssen vorher in LOBS migriert werden - aber auch das geht mit brspace :

brpspace -f tbreorg -a
long2lob -t tabelname