こちらは、Alteryx Serverのバックアップとリカバリに関するシリーズのPart2です。Part1はこちらからどうぞ:
Alteryx Serverのバックアップとリカバリ Part1:ベストプラクティス
MongoDBのバックアップが利用可能であれば、Alteryx Serverをバックアップして実行することができます。幸いなことに、埋め込まれたMongoDBのバックアップは非常に簡単で、いくつかのコンソールコマンドで実行できます。プロセスを実行するためのバッチファイルまたはスクリプトを作成することをお勧めします。そうすることで、Windowsタスクスケジューラーを使用してバックアップをスケジュールすることができます。MongoDBバックアップを実行するための実際の手順は、サーバー構成セクションの下にあるオンラインヘルプまたはこの直リンクで詳しく説明されています。以下に操作手順の概要を説明します。
MongoDBのバックアップを作成する方法:
AlteryxServiceを停止します。
以下のコマンドを実行して、データベースのバックアップを指定のフォルダに保存します:
alteryxservice emongodump=
AlteryxServiceを再起動します
いくつかのシンプルなコンソールコマンドでこれをバッチファイルに簡単にスクリプトすることができます。サーバーによってパスが異なる可能性があるのでご注意ください。ただし、次のように表示されるはずです。
例:
"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
ロギングや日付/タイムスタンプなどの追加機能をバックアップに追加できます。 バックアップに含める追加の便利機能の例として、以下の情報を追加してバッチスクリプトのコード作成しました:日付/時刻スタンプ付きログ、日付/時刻スタンプ付きバックアップ、バックアップの自動アーカイブ、ネットワーク上の場所へのアーカイブのコピー、および一時ファイルのクリーンアップ。
バックアップを実行するためのバッチファイルまたはその他のスクリプトを作成したら、スクリプトをテストして正しく機能することを確認する必要があります。テストが完了したら、次のステップはバックアップのスケジュールです。最も簡単なのは、Windowsタスクスケジューラーを使用する方法です。Windows Server 2012でスケジュールタスクを作成するには、次のステップに従ってください:
スケジュールタスクを作成:
タスクスケジューラーを開き、「タスクの作成」をクリック
一般タブで、「名前」、「説明」を入力し、「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「最上位の特権で実行する」を選択します。
トリガータブにある「新規」をクリック
ダイアログボックスが表示されます。バックアップを実行するスケジュール(日単位、週単位など)を定義し、「OK」をクリックします。
アクションタブで「新規」をクリック
ダイアログウィンドウで、「プログラムの開始」が選択されていることを確認し、「閲覧」をクリックします。作成したバッチファイルを選択して「開く」をクリックします。そして、「OK」をクリックします。
タスクの作成ウィンドウで「OK」をクリックして、バックアップタスクの作成を終了します。
これで、バックアップ手順を正しく実行し、バックアップを自動化するタスクのスケジュールができました。次はバックアップからのデータベースの復元について説明します。良いニュースとしては、データベースの復元はバックアップと同じくらい簡単なことです。1)サーバーが機能していること、2)Alteryx Serverがインストールされていること、3)有効なバックアップがあることを前提として、以下の簡単な手順に沿って行うことができます。
MongoDBのバックアップを復元する方法:
AlteryxServiceを停止します。
以下のコマンドを実行してバックアップを復元します:
alteryxservice emongorestore=,
AlteryxServiceを再起動します
このシンプルさに加えて、同じようにコマンドラインステートメントに焦点を合わせることは、スクリプト回復も可能であることを意味します。ただし、回復処置はそれほど頻繁ではないため、おそらく必要ではありません。代わりに、単にサーバーに接続してコマンドプロンプトを開き、上記のバックアップ例に従って次のコマンドを実行します。
例:
"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
Alteryx Serverの場合、コントローラートークンといくつかの設定ファイルをバックアップすることをお勧めします。サーバーはこれらのファイルなしでも回復することができますが、それらのバックアップをとっておくことで、回復プロセスを迅速化することができます。またバックアップによりデータベースのどんな機密データの解読も確実にできるでしょう。バックアップをお勧めする設定ファイルは以下の通りです:
C:/ProgramData/Alteryx/RuntimeSettings.xml
C:/ProgramData/Alteryx/Engine/SystemAlias.xml
C:/ProgramData/Alteryx/Engine/SystemConnections.xml
繰り返しになりますが、正確なパスはサーバー構成やバックアップの保存場所によって異なる場合があります。この例では、バックアップが圧縮/アーカイブされていないと仮定しています。バックアップをアーカイブしてネットワークストレージにコピーするバックアップスクリプトを使用している場合は、上記の回復コマンドを実行する前に、バックアップファイルをサーバーにコピーしてアーカイブを解凍する必要があります。
以下は私のサンプルバッチスクリプトのコードです:
::----------------------------------------------------------------------------- :: :: AlteryxServer Backup Script v.2.0 - 10/26/18 :: 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% echo %date% %time%: Starting backup process > %LogDir%BackupLog%datetime%.log echo. >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Stop Alteryx Service ::----------------------------------------------------------------------------- echo %date% %time%: 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 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 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 AlteryService is stopped >> %LogDir%BackupLog%datetime%.log ::----------------------------------------------------------------------------- :: Backup MongoDB to local temp directory. ::----------------------------------------------------------------------------- echo %date% %time%: 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%: 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 %date% %time%: 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 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 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 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 %date% %time%: 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%: 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%: Backup process completed >> %LogDir%BackupLog%datetime%.log GOTO :EOF :SystemError echo 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
記事全体を表示