跳转至

并行服务器系统:备份数据

versiondog 系统提供多种选项,可以通过批处理文件手动备份并行服务器的数据,也可以在定期自动备份。

前提条件

要执行服务器存档的数据备份,必须满足以下 必要 前提条件:

  • 手动执行数据备份的用户,必须在服务器系统上拥有管理员权限。
  • 在备份数据之前,必须终止 VDog MasterService 服务。
  • 不应打开任何同步进程。
  • PostgreSQL 数据库系统(PostgreSQL.exe 应用程序)通过 VDog MasterService 终止。为安全起见,您可以在 Windows 作业管理器中进行检查。

Warning

在数据备份期间,系统不可用。建议在非高峰时段进行数据备份,例如在夜间或周末。

节省磁盘空间的方法:

  • 服务器存档的 VD_TMP_VD 目录只包含临时文件。备份服务器存档时,请不要备份 VD_TMP_VD 目录。
  • 在备份之前,可以对 vdServerArchive 目录进行压缩。为了进行压缩,必须安装相应的 ZIP 应用程序。

手动备份数据

Warning

如果使用远程存档,必须始终同时备份远程存档和本地服务器存档。

本地存档

对于并行服务器系统的服务器 A 和服务器 B,将 vdServerArchive 目录复制到所需的存储位置,如外部硬盘。

远程存档

对于并行服务器系统的服务器 A 和服务器 B:将远程共享的 vdServerArchive 目录复制到所需的存储位置,如外部硬盘。

自动备份数据

批处理文件必须执行以下步骤:

  1. 备份第一个服务器的 vdServerArchive 目录。
  2. 备份第二个服务器的 vdServerArchive 目录。

示例:Backup.bat 文件

Info

如果您想在您的系统中使用示例中的批处理文件,请根据您的系统调整文件中的所有路径规格。

set SERVERARCHIVE="D:\vdServerArchive\*"
rem If no remote archive, set the variable remotearchive to an empty value.
rem set REMOTEARCHIVE=""
set REMOTEARCHIVE="\\storage\share\vdServerArchive\*"
set OUTFILE="D:\vdServerBackup.zip"
set 7ZIP="%PROGRAMFILES(x86)%\7-Zip\7z.exe"

net stop "VDog MasterService"

if NOT "%ERRORLEVEL%"=="0" (
if NOT "%ERRORLEVEL%"=="2" (
echo Could not stop server
exit /B %ERRORLEVEL%
)
)

tasklist /fi "ImageName eq VDog*" /fo csv 2>NUL | find /I "VDog">NUL
if "%ERRORLEVEL%"=="0" (
echo VDog Processes still running
tasklist /fi "ImageName eq VDog*" /fo csv
exit /B 1
)

tasklist /fi "ImageName eq postgres.exe" /fo csv 2>NUL | find /I "postgres.exe">NUL
if "%ERRORLEVEL%"=="0" (
tasklist /fi "ImageName eq postgres.exe" /fo csv
echo VDog Processes still running
exit /B 1
)

REM Backup local ServerArchive with 7-zip
"%7ZIP%" u -t7z -r %OUTFILE% %SERVERARCHIVE%
if NOT "%ERRORLEVEL%"=="0" (
echo Could not zip server archive
exit /B %ERRORLEVEL%
)

if "%REMOTEARCHIVE%" == "" GOTO startms
REM Backup remote server archive with 7-zip
"%7ZIP%" u -t7z -r %OUTFILE% %REMOTEARCHIVE%
if NOT "%ERRORLEVEL%"=="0" (
echo Could not zip remote archive
exit /B %ERRORLEVEL%
)

:startms
net start "VDog MasterService"
if NOT "%ERRORLEVEL%"=="0" (
echo Could not start server
exit /B %ERRORLEVEL%
)

echo "success"
pause

相关主题