Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_dumptransactionlog_ad

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

engine:procedures:mi_dumptransactionlog_ad [11.01.2016 ] (aktuell)
Zeile 1: Zeile 1:
 +===== mi_DumpTransactionLog_Ad =====
 +
 +Sichert bzw. löscht das Transaktions-Log einer Datenbank (per default die Datenbank, in der diese Prozedur installiert ist).\\ ​
 +
 +Wenn ein anderer Prozeß schon ein "​dump"​ (egal ob für die komplette Datenbank oder das Transaktions-Log) ausführt, wird die Prozedur abgebrochen.\\ ​
 +
 +WICHTIG : Das Kommando zur Sicherung des Transaktions-Logs ("​dump"​) wird mit "​owner"​-Rechten ausgeführt,​ deswegen sind keine besonderen ASE-Rechte/​-Rollen erforderlich. Man kann aber ja auch das Log einer anderen Datenbank sichern lassen (s. Parameter "​DatabaseName"​),​ weswegen in so einem Fall dem Prozedur-"​owner"​ entweder auch "​DatabaseName"​ gehören muß oder ihm muß die ASE-Rolle '​sa'​ oder '​oper'​ zugewiesen sein. Ist dies nicht der Fall, gibt es den Fehler "​-518"​ !\\ 
 +
 +
 +
 +Hinweise :\\ 
 +
 +1.) Wenn ein "​Settings"​-Eintrag zum Schlüssel "​DumpPath"​ existiert, wird nicht der Befehl "dump ... with no_log"​ abgesetzt, sondern "dump ... to ...", d.h. das Transaktions-Log wird in eine Datei (Dateiname : s. 2.) in dem durch "​DumpPath"​ angegebenen Verzeichnis gesichert. Dieser Pfad kann absolut angegeben werden (unter Linux z.B. dadurch, daß der Pfad mit "/"​ beginnt). Falls nicht wird in das relativ zum "​$SYBASE"​-directory liegende Verzeichnis gesichert.\\ ​
 +
 +Falls ein "​DumpPath"​ konfiguriert ist, wird ein weiterer "​Settings"​-Eintrag in Betracht gezogen : "​DumpWithStandbyAccess"​.\\ Ist hierfür "​1"​ konfiguriert,​ wird der Befehl "dump ... to ... with standby_access"​ ausgeführt.\\ ACHTUNG :\\ Diese Möglichkeit gibt es nur in bestimmten ASE-Versionen (z.B. NICHT im ASE11, wohl aber im ASE15). Hintergrund ist die Möglichkeit,​ eine Standby-Datenbank,​ in die die gesicherten Transaktions-Logs sukzessiv reingeladen werden, "​online for standby_access"​ setzen zu können, um z.B. eine Komplett-Sicherung oder "​read-only reportings"​ machen zu können.\\ ​
 +
 +2.) Falls in eine Datei gesichert wird (s. 1.), hat der Dateiname diese Form :\\     "<​Datenbankname>​_logdump_<​Timestamp als Differenz des aktuellen Datums in Sekunden zu "​DateOffset">"​.\\ ​
 +
 +Möchte man auch Millisekunden im Timestamp haben, setzt man "​IncludeMSecondsInTimestamp"​ auf "​1"​ - der Dateiname hat dann die Form :\\     "<​Datenbankname>​_logdump_<​Timestamp in Sekunden zu "​DateOffset">​.<​verbleibende Millisekunden zu "​DateOffset">"​.\\ ​
 +
 +Anmerkungen :\\ 1. Die Millisekunden-Angabe ist immer dreistellig (d.h. evtl. mit führenden "​0"​en) !\\ 2. Der eben beschriebene Dateiname wird direkt an den "​DumpPath"​ angehängt, so daß der konfigurierte Wert unbedingt mit dem "​Verzeichnis-Trenner"​ des jeweiligen Betriebssystems (in dem der ASE installiert ist) enden sollte (andernfalls erhält man i.d.R. nicht den gewünschten Zielort der Datei) !\\ 
 +
 +3.) Schlägt die Methode des "​dump"​ens in eine Datei fehl, wird anschließend ein "dump ... with no_log"​ ausgeführt !\\ 
 +|HTTP-Method|POST |
 +|HTTP-Auth|Optional |
 +|Tags|{{tag>​[mi Dump Transaction Log Ad]}}|
 +|Engine-Kategorie|system administration |
 +|Engine-Typ|Daten-Änderung |
 +|Letzte Aktualisierung|7.0.7 (2015-01-29)|
 +
 +==== Parameter ====
 +
 +^Name ((Pflichtparameter sind unterstrichen)) ^Standard-Wert ^Beschreibung ((siehe [[webservice:​engine_parameterconventions|Parameter-Konventionen engine/<​Prozedur-Name>​]])) ^SQL-Datentyp((siehe [[:​webservice:​engine_datatypes|Datentypen im Bereich "​engine"​]])) ^ab Version ^
 +|DatabaseName|NULL |Name der Datenbank, dessen Transaktions-Log ge"​dumped"​ werden soll. Falls "​NULL"​ angegeben wird, wählt die Prozedur die Datenbank, in der sie installiert ist.\\ |varchar(50)|4.0.6|
 +|DateOffset|'​01.01.1970'​ |Nur relevant, wenn der "​Settings"​-Eintrag "​DumpPath"​ konfiguriert ist. In diesem Fall wird eine Datei erstellt (s. Beschreibung),​ die einen "​Timestamp"​ enthält - dieser ist die Differenz des aktuellen Datums in Sekunden zu dem hierdurch angegebenen Datum.\\ |datetime|4.0.6|
 +|IncludeMSecondsInTimestamp|1 |"​1"​ angeben, falls der "​Timestamp"​ im Namen des "​dump"​-files auch Millisekunden enthalten soll (s. Beschreibung)\\ |bit|4.0.15|
 +==== Rückgabe ====
 +
 +Die Prozedur hat keine Rückgaben.
 +==== Output-Parameter ====
 +
 +Die Prozedur hat keine Output-Parameter.==== Mögliche Return-Codes ====
 +
 +^Code ^Beschreibung ^Quelle ((direkt meint "von der Prozedur selber"​ und indirekt meint "von intern aufgerufenen Unterprozeduren"​)) ^
 +|-621|Fehlender oder falscher Eintrag in PersonTypeSettings|nur indirekt|
 +|-569|Der Benutzer hat kein Ausführungsrecht für die Prozedur|nur indirekt|
 +|-567|Die Prozedur darf z. Zt. nicht ausgeführt werden|nur indirekt|
 +|-566|Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werden|nur indirekt|
 +|-550|Fehlender oder falscher Eintrag in Settings|nur indirekt|
 +|-535|Das Datum liegt nicht in der Vergangenheit|nur indirekt|
 +|-530|Der Wert ist nicht konvertierbar|nur indirekt|
 +|-518|Es ist eine bestimte ASE-Rolle erforderlich,​ die der Benutzer aber nicht besitzt|nur indirekt|
 +|-510|Der Benutzer ist nicht registriert|nur indirekt|
 +|-505|Es existiert ein anderer Prozeß, der ein "​dump"​ ausführt, Prozedur wird daher abgebrochen|nur direkt|
 +|-504|Es ist ein Problem aufgetreten,​ das nicht gelöst werden kann, Prozedur wird daher abgebrochen|nur indirekt|
 +|-502|Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)|nur indirekt|
 +|-500|Falsche Parameter|nur indirekt|
 +==== XML-Schema ====
 +
 +Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema [[http://​resources.dstore.de/​xsd/​webservice_SmartGate/​Response/​EngineProcedure_v1_0.xsd|Response/​EngineProcedure_v1_0.xsd]] validiert.
 +==== Historie ====
 +
 +|7.0.7 |2015-01-29|Interne Änderung : Datentyp-Erweiterung des "​ReferenceKey"​ [für "​_mi_StartProcedure"​-Aufruf]\\ ​ |
 +|7.0.5 |2014-05-26|Ab jetzt muß nicht mehr der Aufrufer die "​sa"​- oder "​oper"​-Rolle besitzen, weil das "​dump"​ mit "​owner"​-Rechten\\ ausgeführt wird\\ ​ |
 +|7.0.0 |2013-06-04|Kleiner Doku-Fehler [verwendete Prozeduren]\\ ​ |
 +|6.5.3 |2013-03-18|Interne Anpassungen wg. UTF8-Unterstützung\\ ​ |
 +|6.0.1 |2010-07-20|Behandlung des speziellen Fehlers "​Unable to find quiescent point in the log", der beim "with standby_access"​-dump auftreten kann.\\ ​ |
 +|6.0.0 |2010-03-26|1. Berücksichtigung des neuen "​Settings"​-Eintrags "​DumpWithStandbyAccess"​\\ 2. Hinweis in der Doku, daß auch eine absolute Pfad-Angabe (zumindest unter Linux) möglich ist !\\ 3. Quellcode-Anpassung an den aktuellen Standard\\ ​ |
 +|5.1.2 |2006-06-26|Ab jetzt wird vorher überprüft,​ ob ein anderer Prozeß existiert, der ein "​dump"​ ausführt, und in solch einem Fall brechen wir mit dem Fehler "​-505"​ ab !\\  |
 +|5.0.0 |2004-12-21|Fehler beim Aufruf von "​_mi_StartProcedure"​ : Der Parameter "​IncludeMSecondsInTimestamp"​ wurde nicht übergeben\\ ​ |
 +|4.0.16 |2004-08-31|1. Die Millisekundenangabe im "​dump"​-filename - falls "​IncludeMSecondsInTimestamp = 1" angegeben ist - besteht jetzt immer aus 3 Zahlen [d.h. hat evtl. führende "​0"​en] !\\ 2. Änderung des Default-Werts für "​IncludeMSecondsInTimestamp"​ von "​0"​ auf "​1"​\\ ​ |
 +|4.0.15 |2004-07-30|Neuer Parameter "​IncludeMSecondsInTimestamp"​\\ ​ |
 +|4.0.13 |2004-05-18|1. Aufruf der Prozeduren "​_mi_StartProcedure",​ "​_mi_FinishProcedure"​ und "​_mi_ChooseParamValueSeperator"​ \\ 2. Ausführen von "set transaction isolation level 1" und "set rowcount 0" zu Beginn der Prozedur\\ ​ |
 +|4.0.6 |2003-11-14|Erstmalig in dieser Version erstellt\\ ​ |
 +
 +==== Code-Snippets ====
 +
 +== Engine Playground ==
 +Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
 +  * [[http://​playground.dstore.de/​index.php?​proc=mi_DumpTransactionLog_Ad|mi_DumpTransactionLog_Ad im Engine Playground öffnen]]
 +== cURL ==
 +Unformatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​mi_DumpTransactionLog_Ad'</​code>​Mit xmllint ((I.d.R. auf Unix-artigen Systemen bereits installiert,​ Bestandteil der libxml2, siehe http://​www.xmlsoft.org)) formatierte Ausgabe:
 +<code bash>
 +curl -X POST  '​http://<​partner>​-<​project>​.dstore.de/​default/​engine/​mi_DumpTransactionLog_Ad'​ | xmllint --format -</​code>​== dStore_php ==
 +<code php>
 +use dStore_php\WebService;​
 +
 +$service = new WebService\Service( WebService\Scheme::​HTTP,'<​partner>​-<​project>​.dstore.de',​ 80);
 +
 +$request = new WebService\Requests\Engine\Procedure\Request(
 + new WebService\Requests\AccessData('​default'​),​
 + '​mi_DumpTransactionLog_Ad',​
 + array(
 + // '​DatabaseName'​ => NULL,
 + // '​DateOffset'​ => '​01.01.1970',​
 + // '​IncludeMSecondsInTimestamp'​ => 1
 + )
 +);
 +
 +$service->​execute($request);​
 +
 + $xml_result = $request->​getResponse()->​getBody()->​toSimpleXmlDocument();​
 + $ResultSet = $xml_result->​getRowsAsArray();​
 +
 +</​code>​
 +== engine/​execute ==
 +XML zur Ausführung mit der Methode [[:​webservice:​engine:​execute|engine/​execute]],​ z.B. per
 +  curl --header '​Content-Type:​ application/​xml'​ -X POST '​http://<​partner>​-<​kunde>​.dstore.de/​default/​engine/​execute'​ -d '<​xml-daten>'​
 +
 +<code xml>
 +<?xml version="​1.0"​ encoding="​UTF-8"?>​
 +<​ListOfBatches>​
 + <Batch No="​0">​
 + <​Procedure Name="​mi_DumpTransactionLog_Ad">​
 + <​Parameters>​
 + <!-- <​Parameter Name="​DatabaseName">​NULL</​Parameter>​ -->
 + <!-- <​Parameter Name="​DateOffset">'​01.01.1970'</​Parameter>​ -->
 + <!-- <​Parameter Name="​IncludeMSecondsInTimestamp">​1</​Parameter>​ -->
 + </​Parameters>​
 + </​Procedure>​
 + </​Batch>​
 +</​ListOfBatches></​code>​
  
engine/procedures/mi_dumptransactionlog_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)