Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
engine:procedures:mi_dumpdatabase_ad [11.01.2016 ] |
engine:procedures:mi_dumpdatabase_ad [11.01.2016 ] (aktuell) |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ===== mi_DumpDatabase_Ad ===== | ||
+ | |||
+ | Erstellt ein komplettes backup einer Datenbank. Wenn ein anderer Prozeß schon ein "dump" ausführt, wird die Prozedur abgebrochen.\\ | ||
+ | |||
+ | |||
+ | |||
+ | WICHTIG : Das Kommando zur Sicherung der Datenbank ("dump") wird mit "owner"-Rechten ausgeführt, deswegen sind keine besonderen ASE-Rechte/-Rollen erforderlich. Man kann aber ja auch eine andere 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" !\\ | ||
+ | |||
+ | |||
+ | |||
+ | Wenn ein "Settings"-Eintrag zum Schlüssel "DumpPath" existiert, werden relativ zum "$SYBASE"-directory in das durch "DumpPath" angegebene Verzeichnis die Dateien, die das backup enthalten, erstellt.\\ | ||
+ | |||
+ | |||
+ | |||
+ | Anmerkung zum Parameter "UsePredefinedDevices_Pattern" :\\ | ||
+ | |||
+ | Die Namen der erstellten Dateien haben die Form <DatabaseName_01_full.dump>. Alternativ kann man auch sogenannte im ASE-Server definierte "logische dump devices" verwenden. Sollen solche "vordefinierten" devices verwendet werden, gibt man in "UsePredefinedDevices_Pattern" ein "pattern" an (siehe Doku der ASE-Funktion "patindex", der Wert muß u.a. am Anfang und Ende ein "%" enthalten ! ), dem die (logischen) Namen dieser devices entsprechen.\\ Hinweise :\\ 1.) Wieder werden nicht mehr als 10 devices unterstützt !\\ 2.) Der Parameter "MaxSizePerDumpFile_MB" wird natürlich in diesem Fall ignoriert.\\ Beispiel :\\ Sind im ASE zwei logische Sicherungs-Devices mit den Namen "ProdDB_01_dump" und "ProdDB_02_dump" definiert, und möchte man, daß diese beiden Devices zum Backup verwendet werden, belegt man "UsePredefinedDevices_Pattern" z.B. mit "%ProdDB[_]0[12][_]dump%".\\ | ||
+ | |HTTP-Method|POST | | ||
+ | |HTTP-Auth|Optional | | ||
+ | |Tags|{{tag>[mi Dump Database 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, von der ein backup gemacht werden soll. Falls "NULL" angegeben wird, wählt die Prozedur die Datenbank aus, in der sie installiert ist.\\ |varchar(50)|5.1.8| | ||
+ | |MaxSizePerDumpFile_MB|10240 |Wird nur beach. wenn "NumberOfDevices" u. "UsePredefinedDevices_Pattern" "NULL" sind. Zahl zw. 100 u. 100.000, die die max. Größe einer Sicherungsdatei in MB angibt. Ist die zu sich. Datenmenge größer als diese Zahl, werden mehr. Dateien (max. 10) verw.\\ |integer|5.1.8| | ||
+ | |UsePredefinedDevices_Pattern|NULL |Wird nur beachtet, wenn "NumberOfDevices = NULL" ist ! Falls angegeben, werden als Sicherungsdateien die im ASE-Server (durch "sp_addumpdevice") definierten "logischen devices" gewählt, deren ("logischer") Name diesem "pattern" entspricht.\\ |varchar(100)|5.1.8| | ||
+ | |TruncateTransactionLog|1 |Vor der Komplett-Sicherung empfielt es sich, das Transaktions-Log zu "leeren" (in ASE-Terminologie "truncate"), um nicht "unnötige" Daten mitzusichern. Möchte man das NICHT, ist hier "0" anzugeben.\\ |bit|5.1.8| | ||
+ | |CompressLevel|NULL |Gibt an, wie stark die Sicherungsdatei(en) komprimiert werden soll(en) :\\ - "0" oder "NULL" : KEINE Komprimierung\\ - "1" : minimale Kompression\\ ...\\ - "9" : maximale Kompression\\ |tinyint|6.5.2| | ||
+ | |NumberOfDevices|NULL |Wenn hier eine Zahl übergeben wird (muß zwischen 1 und 10 sein), erstellen wir genau so viele Sicherungsdateien wie hier angegeben. Die Namen der Sicherungsdateien haben die Form "<DatabaseName>_<2-stellige fortl. Nummer>_full.dump".\\ |tinyint|6.5.2| | ||
+ | ==== 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|direkt und indirekt| | ||
+ | |-502|Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)|nur indirekt| | ||
+ | |-500|Falsche Parameter|direkt und 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\\ | | ||
+ | |6.5.4 |2013-04-29|Implementierung bzgl. "CompressLevel" geändert, wodurch u.a. die bisherige Beschränkung, daß dieser Parameter\\ nur im Fall "UsePredefinedDevices_Pattern is NULL" beachtet wurde, WEGgefallen ist [=> auch Anpassung in der Doku]\\ | | ||
+ | |6.5.2 |2013-02-26|1. Möglicher "arithmetic overflow"-Fehler behoben\\ 2. Explizite Prüfung auf 'sa_role'/'oper_role'\\ 3. Neuer Default-Wert für "MaxSizePerDumpFile_MB"\\ 4. Neue Parameter "CompressLevel" und "NumberOfDevices"\\ 5. Interne Änderungen/Optimierungen\\ | | ||
+ | |5.5.1 |2008-07-29|1. Beachtung der neuen "Settings"-Einträge "DumpPath_FullDumpOnly" und "AssignmentMethodForListVariables"\\ 2. Quellcode-Änderungen gemäß aktuellem Standard\\ 3. Problem mit "zu langen Pfadnamen" für die "dump"-files behoben\\ | | ||
+ | |5.1.8 |2006-12-12|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_DumpDatabase_Ad|mi_DumpDatabase_Ad im Engine Playground öffnen]] | ||
+ | == cURL == | ||
+ | Unformatierte Ausgabe: | ||
+ | <code bash> | ||
+ | curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/mi_DumpDatabase_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_DumpDatabase_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_DumpDatabase_Ad', | ||
+ | array( | ||
+ | // 'DatabaseName' => NULL, | ||
+ | // 'MaxSizePerDumpFile_MB' => 10240, | ||
+ | // 'UsePredefinedDevices_Pattern' => NULL, | ||
+ | // 'TruncateTransactionLog' => 1, | ||
+ | // 'CompressLevel' => NULL, | ||
+ | // 'NumberOfDevices' => NULL | ||
+ | ) | ||
+ | ); | ||
+ | |||
+ | $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_DumpDatabase_Ad"> | ||
+ | <Parameters> | ||
+ | <!-- <Parameter Name="DatabaseName">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="MaxSizePerDumpFile_MB">10240</Parameter> --> | ||
+ | <!-- <Parameter Name="UsePredefinedDevices_Pattern">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="TruncateTransactionLog">1</Parameter> --> | ||
+ | <!-- <Parameter Name="CompressLevel">NULL</Parameter> --> | ||
+ | <!-- <Parameter Name="NumberOfDevices">NULL</Parameter> --> | ||
+ | </Parameters> | ||
+ | </Procedure> | ||
+ | </Batch> | ||
+ | </ListOfBatches></code> | ||