Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:mi_dumpdatabase_ad

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-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategoriesystem administration
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
DatabaseNameNULL 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_MB10240 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.
integer5.1.8
UsePredefinedDevices_PatternNULL 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
TruncateTransactionLog1 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.
bit5.1.8
CompressLevelNULL Gibt an, wie stark die Sicherungsdatei(en) komprimiert werden soll(en) :
- „0“ oder „NULL“ : KEINE Komprimierung
- „1“ : minimale Kompression

- „9“ : maximale Kompression
tinyint6.5.2
NumberOfDevicesNULL 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“.
tinyint6.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 4)
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-518Es ist eine bestimte ASE-Rolle erforderlich, die der Benutzer aber nicht besitztnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-505Es existiert ein anderer Prozeß, der ein „dump“ ausführt, Prozedur wird daher abgebrochennur direkt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochendirekt und indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-500Falsche Parameterdirekt und indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29Interne Änderung : Datentyp-Erweiterung des „ReferenceKey“ [für „_mi_StartProcedure“-Aufruf]
7.0.5 2014-05-26Ab 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-29Implementierung 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-261. 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-291. 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-12Erstmalig 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:

cURL

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 -
dStore_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();
engine/execute

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>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/mi_dumpdatabase_ad.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)