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 | |
Engine-Kategorie | system administration |
Engine-Typ | Daten-Änderung |
Letzte Aktualisierung | 7.0.7 (2015-01-29) |
Name 1) | Standard-Wert | Beschreibung 2) | SQL-Datentyp3) | 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 |
Die Prozedur hat keine Rückgaben.
Die Prozedur hat keine Output-Parameter.
Code | Beschreibung | Quelle 4) |
---|---|---|
-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 |
Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.
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 |
Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:
Unformatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/mi_DumpDatabase_Ad'
Mit xmllint 5) formatierte Ausgabe:
curl -X POST 'http://<partner>-<project>.dstore.de/default/engine/mi_DumpDatabase_Ad' | xmllint --format -
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();
XML zur Ausführung mit der Methode engine/execute, z.B. per
curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?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>