Free Trial

Knowledge Base

Lernen Sie von den Profis.

Alteryx Server Sicherung und Wiederherstellung Teil 2: Prozeduren

Community_Admin
Alteryx
Alteryx
Erstellt

Dies ist der zweite Artikel in einer Reihe zu Sicherung und Wiederherstellung von Alteryx Server. Sie finden Teil 1 unter:

 

Alteryx Server Sicherung und Wiederherstellung Teil 1: Best Practices

 

Wenn Sie eine Sicherung der MongoDB-Datenbank verfügbar haben, können Sie Alteryx Server wiederherstellen und ausführen. Glücklicherweise können Sie die eingebettete MongoDB-Datenbank mit einigen wenigen Konsolenbefehlen sichern. Ich empfehle Ihnen, eine Batchdatei oder ein Skript für diesen Prozess zu erstellen. Auf diese Weise können Sie die Sicherung mit dem Windows-Taskplaner planen. Die Schritte zum Durchführen einer MongoDB-Sicherung werden ausführlich in der Onlinehilfe im Bereich „Serverkonfiguration“ oder unter diesem Link beschrieben. Ich werde die Schritte hier der Vollständigkeit halber ebenfalls umreißen.

 

So erstellen Sie eine Sicherung der MongoDB:

 

  1. Beenden Sie AlteryxService.
  2. Führen Sie folgenden Befehl aus, um eine Sicherungskopie der Datenbank im angegebenen Ordner zu speichern:

 

alteryxservice emongodump=
  1. Starten Sie AlteryxService neu.

 

Diesen Vorgang können Sie mit einigen wenigen Konsolenbefehlen mit einer Batchdatei ausführen. Die tatsächlichen Pfade auf Ihrem Server können abweichen, aber das Skript sollte in etwa wie folgt aussehen.

 

Beispiel:

 

 

"C:/Program Files/Alteryx/bin/AlteryxService.exe" stop
"C:/Program Files/Alteryx/bin/AlteryxService.exe" emongodump=Z:/Path/MongoBackup
"C:/Program Files/Alteryx/bin/AlteryxService.exe" start

 

 

Sie können weitere Funktionen wie Protokollierung oder Datum/Zeitstempel zu den Sicherungen hinzufügen.  Als Beispiel für weitere nützliche Funktionen für Ihre Sicherungen habe ich den Code für ein Batchskript angehängt, das ich erstellt habe und das die folgenden Informationen hinzufügt: Protokollierung mit Datum/Zeitstempel, eine Sicherung ebenfalls mit Datum/Zeitstempel, automatische Archivierung der Sicherung, Kopieren des Archivs an einen Netzwerkspeicherort und Bereinigung der temporären Dateien.

 

Nachdem Sie eine Batchdatei oder ein anderes Skript für Ihre Sicherungen erstellt haben, sollten Sie das Skript testen, um sicherzustellen, dass keine Fehler auftreten. Nach Abschluss der Tests können Sie Ihre Sicherung planen. Dafür empfehle ich den Windows-Taskplaner. Gehen Sie wie folgt vor, um eine geplante Aufgabe in Windows 2012 Server zu erstellen:

 

Erstellen Sie eine geplante Aufgabe:

 

  1. Öffnen Sie den Taskplaner und klicken Sie auf „Aufgabe erstellen“.

2016-05-11_8-50-15.png

 

  1. Füllen Sie auf der allgemeinen Registerkarte die Felder „Name“ und „Beschreibung“ aus und aktivieren Sie die Optionen „Unabhängig von der Benutzeranmeldung ausführen“ und „Mit höchsten Berechtigungen ausführen“.

2018-07-27_8-54-52.png

 

  1. Klicken Sie auf der Registerkarte „Trigger“ auf „Neu“.

2016-05-11_9-01-50.png

 

  1. Daraufhin wird ein Dialogfeld geöffnet. Definieren Sie den Zeitplan (täglich, wöchentlich usw.) für die Ausführung der Sicherung und klicken Sie auf OK.

2016-05-11_9-05-10.png

 

  1. Klicken Sie auf der Registerkarte „Aktionen“ auf „Neu“.

2016-05-11_8-55-03.png

 

  1. Vergewissern Sie sich im Dialogfeld, dass „Programm starten“ ausgewählt ist und klicken Sie auf „Durchsuchen“. Wählen Sie die von Ihnen erstellte Batchdatei aus und klicken Sie auf „Öffnen“. Klicken Sie anschließend auf OK.

2016-05-11_8-57-49.png

 

  1. Klicken Sie im Fenster „Aufgabe erstellen“ auf OK, um die Erstellung der Sicherungsaufgabe abzuschließen.

 

Nachdem Sie Ihre Sicherungsprozeduren erfolgreich implementiert und eine Aufgabe zur Planung der Sicherungen eingerichtet haben, werden wir uns jetzt mit der Wiederherstellung einer Datenbank aus einer Sicherung befassen. Die Wiederherstellung der Datenbank ist glücklicherweise genau so einfach wie die Sicherung. Unter der Voraussetzung, dass der Server funktioniert, Alteryx Server installiert wurde und Sie eine gültige Sicherung zur Verfügung haben, können Sie die folgenden einfachen Schritte ausführen.

 

Wiederherstellen einer MongoDB-Sicherung:

 

  1. Beenden Sie AlteryxService.
  2. Führen Sie den folgenden Befehl aus, um die Sicherung wiederherzustellen:

 

alteryxservice emongorestore=,

 

  1. Starten Sie AlteryxService neu.

 

Diesen einfachen Vorgang in Form von Anweisungen für die Befehlszeile können wir ebenfalls in Skriptform verwenden. Dies ist jedoch vermutlich nicht erforderlich, da Wiederherstellungen viel seltener ausgeführt werden. Stattdessen verbinden Sie sich mit dem Server, öffnen eine Eingabeaufforderung und führen analog zu unserem obigen Sicherungsbeispiel die folgenden Befehle aus:

 

Beispiel:

 

 

"C:/Program Files/Alteryx/bin/AlteryxService.exe" stop
"C:/Program Files/Alteryx/bin/AlteryxService.exe" emongorestore=Z:/Path/MongoBackup,C:/ProgramData/Alteryx/Service/Persistence/MongoDB
"C:/Program Files/Alteryx/bin/AlteryxService.exe" start

 

 

Für Alteryx Server sollten Sie außerdem das Controller-Token und einige Konfigurationsdateien sichern. Der Server kann ohne diese Dateien wiederhergestellt werden. Mit einer Sicherung dieser Dateien können Sie jedoch die Wiederherstellung beschleunigen und sicherstellen, dass Sie sämtliche sensiblen Daten in der Datenbank entschlüsseln können. Sichern Sie dazu die folgenden Konfigurationsdateien:

 

C:/ProgramData/Alteryx/RuntimeSettings.xml

C:/ProgramData/Alteryx/Engine/SystemAlias.xml

C:/ProgramData/Alteryx/Engine/SystemConnections.xml

 

Beachten Sie auch hier, dass die tatsächlichen Pfade von der Serverkonfiguration und dem Speicherort der Sicherung abhängen. In diesem Beispiel gehen wir davon aus, dass die Sicherung nicht komprimiert oder archiviert vorliegt. Wenn Sie ein Sicherungsskript verwenden, das die Sicherung archiviert und an einen Netzwerkspeicherort kopiert, müssen Sie die Sicherungsdatei zunächst auf den Server kopieren und das Archiv dekomprimieren, bevor Sie die oben gezeigten Wiederherstellungsbefehle ausführen.

 

 

Hier sehen Sie den Code für mein Beispiel-Batchskript:

 

::-----------------------------------------------------------------------------
::
:: AlteryxServer Backup Script v.2.0.2 - 01/04/19
:: Created By: Kevin Powney
::
:: Service start and stop checks adapted from example code by Eric Falsken
::
::-----------------------------------------------------------------------------

@echo off

::-----------------------------------------------------------------------------
:: Set variables for Log, Temp, Network, and Application Paths
::
:: Please update these values as appropriate for your environment. Note
:: that spaces should be avoided in the LogDir, TempDir, and NetworkDir paths.
:: The trailing slash is also required for these paths.
::-----------------------------------------------------------------------------

SET LogDir=C:/ProgramData/Alteryx/BackupLog/
SET TempDir=C:/Temp/
SET NetworkDir=//ServerName/SharePath/
SET AlteryxService="C:/Program Files/Alteryx/bin/AlteryxService.exe"
SET ZipUtil="C:/Program Files/7-Zip/7z.exe"

:: Set the maximium time to wait for the service to start or stop in whole seconds. Default value is 2 hours.
SET MaxServiceWait=7200

::-----------------------------------------------------------------------------
:: Set Date/Time to a usable format and create log
::-----------------------------------------------------------------------------

FOR /f %%a IN (#39;WMIC OS GET LocalDateTime ^| FIND "."#39;) DO SET DTS=%%a
SET DateTime=%DTS:~0,4%%DTS:~4,2%%DTS:~6,2%_%DTS:~8,2%%DTS:~10,2%%DTS:~12,2%
SET /a tztemp=%DTS:~21%/60
SET tzone=UTC%tztemp%

echo %date% %time% %tzone%: Starting backup process... > %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: Stop Alteryx Service
::-----------------------------------------------------------------------------

echo %date% %time% %tzone%: Stopping Alteryx Service... >> %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

SET COUNT=0

:StopInitState
SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO StopService
SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO StopedService
SC query AlteryxService | FIND "STATE" | FIND "PAUSED" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO SystemError
echo %date% %time% %tzone%: Service State is changing, waiting for service to resolve its state before making changes >> %LogDir%BackupLog%datetime%.log
SC query AlteryxService | Find "STATE"
timeout /t 1 /nobreak >NUL
SET /A COUNT=%COUNT%+1
IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError
GOTO StopInitState

:StopService
SET COUNT=0
SC stop AlteryxService >> %LogDir%BackupLog%datetime%.log
GOTO StoppingService

:StopServiceDelay
echo %date% %time% %tzone%: Waiting for AlteryService to stop >> %LogDir%BackupLog%datetime%.log
timeout /t 1 /nobreak >NUL
SET /A COUNT=%COUNT%+1
IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError

:StoppingService
SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 1 GOTO StopServiceDelay

:StopedService
echo %date% %time% %tzone%: AlteryService is stopped >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: Backup MongoDB to local temp directory.
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Starting MongoDB Backup... >> %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

%AlteryxService% emongodump=%TempDir%ServerBackup_%datetime%/Mongo >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: Backup Config files to local temp directory.
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Backing up settings, connections, and aliases... >> %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

copy %ProgramData%/Alteryx/RuntimeSettings.xml %TempDir%ServerBackup_%datetime%/RuntimeSettings.xml >> %LogDir%BackupLog%datetime%.log
copy %ProgramData%/Alteryx/Engine/SystemAlias.xml %TempDir%ServerBackup_%datetime%/SystemAlias.xml
copy %ProgramData%/Alteryx/Engine/SystemConnections.xml %TempDir%ServerBackup_%datetime%/SystemConnections.xml
%AlteryxService% getserversecret > %TempDir%ServerBackup_%datetime%/ControllerToken.txt

::-----------------------------------------------------------------------------
:: Restart Alteryx Service
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Restarting Alteryx Service... >> %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

SET COUNT=0

:StartInitState
SC query AlteryxService | FIND "STATE" | FIND "STOPPED" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO StartService
SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO StartedService
SC query AlteryxService | FIND "STATE" | FIND "PAUSED" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 0 IF NOT errorlevel 1 GOTO SystemError
echo %date% %time% %tzone%: Service State is changing, waiting for service to resolve its state before making changes >> %LogDir%BackupLog%datetime%.log
SC query AlteryxService | Find "STATE"
timeout /t 1 /nobreak >NUL
SET /A COUNT=%COUNT%+1
IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError
GOTO StartInitState

:StartService
SET COUNT=0
SC start AlteryxService >> %LogDir%BackupLog%datetime%.log
GOTO StartingService

:StartServiceDelay
echo %date% %time% %tzone%: Waiting for AlteryxService to start >> %LogDir%BackupLog%datetime%.log
timeout /t 1 /nobreak >NUL
SET /A COUNT=%COUNT%+1
IF "%COUNT%" == "%MaxServiceWait%" GOTO SystemError

:StartingService
SC query AlteryxService | FIND "STATE" | FIND "RUNNING" >> %LogDir%BackupLog%datetime%.log
IF errorlevel 1 GOTO StartServiceDelay

:StartedService
echo %date% %time% %tzone%: AlteryxService is started >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: This section compresses the backup to a single zip archive
::
:: Please note the command below requires 7-Zip to be installed on the server.
:: You can download 7-Zip from http://www.7-zip.org/ or change the command to
:: use the zip utility of your choice as defined in the variable above.
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Archiving backup... >> %LogDir%BackupLog%datetime%.log

%ZipUtil% a %TempDir%ServerBackup_%datetime%.7z %TempDir%ServerBackup_%datetime% >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: Move zip archive to network storage location and cleanup local files
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Moving archive to network storage >> %LogDir%BackupLog%datetime%.log
echo. >> %LogDir%BackupLog%datetime%.log

copy %TempDir%ServerBackup_%datetime%.7z %NetworkDir%ServerBackup_%datetime%.7z >> %LogDir%BackupLog%datetime%.log

del %TempDir%ServerBackup_%datetime%.7z >> %LogDir%BackupLog%datetime%.log
rmdir /S /Q %TempDir%ServerBackup_%datetime% >> %LogDir%BackupLog%datetime%.log

::-----------------------------------------------------------------------------
:: Done
::-----------------------------------------------------------------------------

echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Backup process completed >> %LogDir%BackupLog%datetime%.log
GOTO :EOF

:SystemError
echo. >> %LogDir%BackupLog%datetime%.log
echo %date% %time% %tzone%: Error starting or stopping service. Service is not accessible, is offline, or did not respond to the start or stop request within the designated time frame. >> %LogDir%BackupLog%datetime%.log
Beschriftungen