任务计划+批处理实现异地文件备份
系统异地备份方案建议书
ERP系统异地备份方案建议书目录ERP系统异地备份方案建议书 (1)1. 项目背景与需求 (1)2. 异地备份方案设计 (1)2.1. 物理拓扑图 (2)2.2. VPN远程接入 (2)2.3. 数据库备份 (2)2.4. ERP系统文件备份 (4)2.5. 切换到备份服务器 (4)2.6. 恢复到生产服务器 (4)附:实施步骤清单 (5)1.项目背景与需求目前客户的工作区域包括A区和B区,两个区域都已经通过100M光纤连接到了Internet,所部署的防火墙也支持VPN接入功能。
客户的ERP系统部署在A区的同一台服务器上,这台服务器承载了WEB服务和SQL Server 2005数据库,一旦该服务器宕机,整个ERP系统将不可用。
整体网络图如下所示:现在客户提出在B区对ERP系统进行异地备份。
具体要求为:1.在B区增加一台服务器作为A区生产系统的备份服务器。
2.当生产服务器出现问题时能够切换到备用服务器上,保证ERP系统能够继续运行。
2.异地备份方案设计因为是异地备份,首先需要考虑的就是远程数据传输的问题,目前A、B两区都通过100M 光纤连接到Internet,带宽满足数据传输的要求。
当备份数据通过Internet传输时,面临被监听、截取的风险,为了避免这种风险,我们必须采用加密传输的方式。
鉴于客户部署的防火墙支持VPN功能,我们可以充分利用原有设备,建立VPN加密隧道,让备份数据通过隧道传输,这样可以保证数据传输的安全。
对于SQL Server数据库的备份,我们选用事务日志复制的方式,针对ERP系统使用的数据库进行发布订阅,在B区的备份服务器上保存一份数据库副本,并与生产服务器实时同步。
至于ERP系统文件,我们则通过Windows的计划任务,定时复制到备份服务器上。
2.1.物理拓扑图整个ERP系统备份方案的物理拓扑图如下:需要增加的硬件为一台备份服务器,推荐配置为:2.2.VPN远程接入首先在A区防火墙上启用VPN接入功能,在B区的备份服务器上安装VPN客户端,通过VPN拨号连接到A区内部局域网。
异地备份技术解决方案
异地备份技术解决方案数据异地备份技术解决方案背景:经2016-5-10香港品质保证审查,审查老师提出可改进项报告。
现我司只有本地备份,基于这一点,报告提出请关注包括金碟K3系统在内的数据异地备份问题。
技术解决:1、手工备份.每天或者定期通过人员手工操作将数据库资料备份到指定硬盘,并将硬盘指定安全、保密地方存放2、自动备份通过NAS 的网络备份软件进行自动备份,减少了人工干预出错的几率,提高了备份的可靠性及可扩展性。
如上图所示,利用一台备份终端,在备份终端安装有DiskStation Manager6.1主件(Server 端),其他服务器则安装备份代理(Client 端),可有效减轻管理人员的工作,简化备份恢复操作流程。
在备份服务器实施备份恢复策略后,可以对ERP 系统、文件系统、数据库轻松备份,甚至是操作系统的祼机恢复。
祼机恢复允许服务器从灾难性的故障中快速、轻松地恢复过来,不需要重新安装操作系统,从而快速确保数据的完整性与可用性。
在这里我们推荐群晖NAS(DS1817),具体配置参数如下:产品类型网络存储接口RJ-451GbE网络孔:4(支持LinkAggregation/故障移转)USB3.0端口:4eSATA端口:2硬盘盘位磁盘槽数量:8最大存储容量最大内部总储存容量:80TB(10TB HDDx8)(容量会随RAID种类而异)处理器处理器型号:英特尔Atom处理器处理器架构:64-bit处理器频率:四核心2.4GHz硬件加密引擎(AES-NI)产品内存系统内存:2GB DDR3预安装内存模块:2GB(1x2GB)内存插槽总数:2内存可扩充至:16GB(8GBx2)图片正面:图片背面:两种备份模式优缺点:手工备份:缺点在于效率低,频烦的手工操作导致出错率提高。
优点在于费用低。
自动备份:缺点费用高.优点通过NAS的网络备份软件进行自动备份,减少了人工干预出错的几率,提高了备份的可靠性及可扩展性.效率高.建议:一旦出现异常情况,如硬盘破坏、服务器宕机、人为因素等原因引起数据丢失.避免手工备份导致的出错及可靠性或者其它因素造成备份不成功,无法恢复数据,导致正常业务无法进行,给公司造成不可估量损失,这里建议选择自动备份。
Svn在Windows下实现自动全量增量备份和异地备份汇总
SVN在Windows下实现自动全量增量备份和异地备份1SVN备份介绍1.1SVN备份内容SVN在Windows下的自动备份实现,包括:1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);2)SVN增量备份(每日备份1次,由windows计划来调度执行);1.2SVN备份流程上述2类备份分别进行的流程如下:1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。
异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用FileZilla_Server、serverU或者简单ftp软件进行搭建。
4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。
1.3SVN还原功能可以进行还原所有版本库2SVN备份BAT设计1.1全备份BAT1)SVN的全备份,AllBackUp.bat:Begin@echo offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\全备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部全量备份版本库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf ( ::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmpecho %time:~0,8% %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo ---------------------------------->> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 用户权限信息备份成功!echo %time:~0,8% 用户权限信息备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 全部版本库备份成功!echo %time:~0,8% 全部版本库备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.logAllBackupByFtpgoto end:Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN的全备份进行FTP上传,AllBackupByFtp.bat@echo offREM ======设置区Start================================set ftpUser=svnset ftpPass=svnbackupset ftpIP=192.168.1.22set ftpPort=2016REM 指定从FTP下载下来的文件存放到本机哪个目录set ftpFolder=/全备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\全备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToFilePath=%SvnBackupFolder%.rarREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLogFilePath=%SvnBackupRoot%\BackUp.logREM FTP命令执行文件缓存set ftpFile=%cd%\TempFTP.txt>"%ftpFile%" (echo,open %ftpIP% %ftpPort%echo,%ftpUser%echo,%ftpPass%echo cd "%ftpFolder%"echo prompt offecho binecho put %rarToFilePath%echo put %bakupLogFilePath%echo bye)set Path=%Path%;%rarExePath%set logFilePath=%SvnBackupRoot%\ftpUp.logREM ======设置区End ================================echo ===================%date% 执行异地版本库全量备份开始================= >> %logFilePath%if not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logFilePath%WinRAR.exe a -ep1 -k -r -s -ibck %rarToFilePath% %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarToFilePath% >> %logFilePath%echo %time:~0,8% 备份压缩继续上传FTP开始... >> %logFilePath%ftp -v -i -s:"%ftpFile%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:%ftpFolder% >> %logFilePath%del /q /s /f %rarToFilePath%echo. >> %logFilePath%goto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logFilePath%echo %time:~0,8% 备份失败! >> %logFilePath%echo. >> %logFilePath%echo 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.echo 程序执行结束!1.2增量备份BAT1)SVN数据库的增量备份,IncreBackUp.bat::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisionsrem if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1if not exist %REPOS_LAST_REVERSION_DIRECTORY%mkdir %REPOS_LAST_REVERSION_DIRECTORY%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::设置LastRevisions备份目录set REPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisions if not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部版本库备份.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf (::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (::判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份if exist %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt (::读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for /f %%k in (%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt) do if %%k lss %%j (echo.echo 开始备份版本库%%~ni……::取得该版本库本次备份的起始版本号set version=%%kset /a version=!version!+1::增量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi --revision !version!:head --incremental > %BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmpecho %%~ni: !version!-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmp! )) else (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp echo %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::将本次版本库备份时的最新版本信息写入文件保存echo %%j> %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txtecho %%j> %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt )::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo.echo 用户权限信息备份成功!echo.echo 全部版本库备份成功!IncreBackupByFtpgoto end:Error1echo.echo 提示:echo 上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序; echo 或者,不基于上次备份重新执行备份!echo 重新备份?(Y/N)set /p input=if %input%==Y (mkdir %REPOS_LAST_REVERSION_DIRECTORY%goto Begin) else (goto End):Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN数据的增量备份的FTP上传,IncreBackupByFtp.bat@echo offREM ======设置区Start================================set ftpUser=svnset ftpPass=svnbackupset ftpIP=192.168.1.22set ftpPort=2016REM 指定从FTP下载下来的文件存放到本机哪个目录set ftpFolder=/增量备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\增量备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToFilePath=%SvnBackupFolder%.rarREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLogFilePath=%SvnBackupRoot%\BackUp.logREM FTP命令执行文件缓存set ftpFile=%cd%\TempFTP.txt>"%ftpFile%" (echo,open %ftpIP% %ftpPort%echo,%ftpUser%echo,%ftpPass%echo cd "%ftpFolder%"echo prompt offecho binecho put %rarToFilePath%echo put %bakupLogFilePath%echo bye)set Path=%Path%;%rarExePath%set logFilePath=%SvnBackupRoot%\ftpUp.logREM ======设置区End ================================echo ===================%date% 执行异地版本库增量备份开始.=================== >> %logFilePath%if not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logFilePath%WinRAR.exe a -ep1 -k -r -s -ibck %rarToFilePath% %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarToFilePath% >> %logFilePath%echo %time:~0,8% 备份压缩继续上传FTP开始... >> %logFilePath%ftp -v -i -s:"%ftpFile%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:%ftpFolder% >> %logFilePath%del /q /s /f %rarToFilePath%echo. >> %logFilePath%goto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logFilePath%echo %time:~0,8% 备份失败! >> %logFilePath%echo. >> %logFilePath%echo 提示:3SVN还原BAT设计SVN的还原LoadBackUp.bat@echo offecho 正在准备还原所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% goto Error::还原所有版本库echo ===================%date% %time:~0,8%:执行版本库执行还原操作=================== >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 还原的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\SvnLoad.log::将所有保存版本库备份的文件夹名写入tmpdir /b %REPOS_BACKUP_ROOT%\*.dmp > folderName.tmp::依次操作tmp文件中包含的文件夹for /f %%h in (folderName.tmp) do (::将所有版本库文件名写入tmpdir /b /a-d %REPOS_BACKUP_ROOT%\%%h\*.dmp > fileName.tmp::依次操作tmp文件中包含的备份文件for /f %%i in (fileName.tmp) do (::处理备份文件名,以取得版本库名和相应的版本号for /f "tokens=1,2* delims=-" %%j in ("%%~ni") do (echo.echo 开始还原版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l……::版本库根目录不存在和版本库名相同名字的文件夹则创建一个if not exist %REPOS_ROOT%\%%j (mkdir %REPOS_ROOT%\%%j)::版本库根目录中该文件夹不是版本库,则创建一个if not exist %REPOS_ROOT%\%%j\conf\svnserve.conf (%SVN_CMD%\svnadmin create %REPOS_ROOT%\%%j)::还原备份%SVN_CMD%\svnadmin load %REPOS_ROOT%\%%j < %REPOS_BACKUP_ROOT%\%%h\%%i echo %%j: %%k-%%l >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l还原成功!)))::删除临时文件del fileName.tmpdel folderName.tmpecho.echo 全部版本库还原成功!goto end:Errorecho.echo 版本库备份目录%REPOS_BACKUP_ROOT%不存在,请确认后重新运行程序! goto End:End。
浅析企业数据库备份方式和批处理实现自动异地备份
档模 式只能恢复数据库到最近的备份点 。生产 环境 下,强烈建议采用归档模式 ;正在开发和
调试 的数据库可 以采用非归档模式 。实 际使用 备份 以来 有 变化 的那 些数 据块 。空 间有效 的
1 常用数据库备份方式
1 . 1 S Q L S e r v e r 数据库的备份 S QL S e  ̄e r 数 据 库 的 备份 主 要 有 两种 方 式:一是在直接拷 贝数据库数据文件和 日志文 件,二是通过系统提供的备份数据库功能。 1 . 1 . 1直接拷贝方式 使用卸下数据库 的命令 :S p d e t a c h d b数
统的核心就是数据库 。建设一个实时数据灾备 系统的成本非常高, 考虑到投入产 出比的问题 ,
一
据库为2 0 1 0年 l 1 月2 6日 2 2时 1 6分 生 成 的
空间,在数据库的转储 ,表空间 的迁移方面有 着相 当灵 活的应 用。做为 中小 企业 的 DB A, 使用 E XP命令进 行数据 库备 份,也是 惯用 的
备 份文 件 。本方 法 与 B a c k u p d a t a b a s e方式 其 实类似 ,只是通过数据库 维护计划 自动按设定
的周 期 去 备 份 而 己 。
方式 。需要指 出的是,通 过 e x p 转储数据 实现
的备份 ,采用 的也是联机方 式,如 果在转储过 程 中有数据写入 ,还 原时可 能会 出现不可预料
【 关键 词】数据 库备份 批 处理 异地备份
会 自动 生成 形如 t e s t d b 2 0 1 0 1 1 2 6 2 2 1 6 . B AK
存成批处理文件,并添加 到 wi n d o ws的 “ 任务
的备份文件 ,从文件 名中我们可 以分析出该数 计划 ”中,该法可 以按照需要导 出某个表或表 随着 公 司信 息化 的发展 ,各类 业务 普遍 使用管理信息系统来管理业务数据 ,而信息系
Svn在Windows下实现自动全量增量备份和异地备份
SVN在Windows下实现自动全量增量备份和异地备份1SVN备份介绍1.1SVN备份内容SVN在Windows下的自动备份实现,包括:1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);2)SVN增量备份(每日备份1次,由windows计划来调度执行);1.2SVN备份流程上述2类备份分别进行的流程如下:1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。
异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用、serverU或者简单ftp软件进行搭建。
4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。
1.3SVN还原功能可以进行还原所有版本库2SVN备份BAT设计1.1全备份BAT1)SVN的全备份,AllBackUp.bat:Begin@echo offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\全备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部全量备份版本库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf ( ::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmpecho %time:~0,8% %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo ---------------------------------->> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 用户权限信息备份成功!echo %time:~0,8% 用户权限信息备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log echo.echo 全部版本库备份成功!echo %time:~0,8% 全部版本库备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.logAllBackupByFtpgoto end:Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN的全备份进行FTP上传,AllBackupBy@echo offREM ======设置区Start================================setsetset .1.22setREM 指定从FTP下载下来的文件存放到本机哪个目录set 全备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\全备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLog\BackUp.logREM FTP命令执行文件缓存set \Temp>"%" (echo,open % %echo,%echo,%echo cd "%"echo prompt offecho binecho put %rarToecho put %bakupLogecho bye)set Path=%Path%;%rarExePath%set log\REM ======设置区End ================================echo ===================%date% 执行异地版本库全量备份开始================= >> %logif not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logWinRAR.exe a -ep1 -k -r -s -ibck %rarTo %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarTo >> %logecho %time:~0,8% 备份压缩继续上传FTP开始... >> %log-i -s:"%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:% >> %logdel /q /s /f %rarToecho. >> %loggoto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logecho %time:~0,8% 备份失败! >> %logecho. >> %logecho 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.echo 程序执行结束!1.2增量备份BAT1)SVN数据库的增量备份,IncreBackUp.batif not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%::获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisionsrem if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1if not exist %REPOS_LAST_REVERSION_DIRECTORY%mkdir %REPOS_LAST_REVERSION_DIRECTORY%::设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:~0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%::设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%::设置LastRevisions备份目录set REPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisions if not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%::备份所有版本库::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号echo ===================%date% %time:~0,8%:执行全部版本库备份.=================== >> %REPOS_BACKUP_ROOT%\BackUp.logecho 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log::读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %%i in (.) do if exist %%i\conf\svnserve.conf (::将当前版本库的最新版本信息写入tmp文件%SVN_CMD%\svnlook youngest %%~fi > %%~ni_last_revision.tmp::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %%j in (%%~ni_last_revision.tmp) do if %%j gtr 0 (::判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份if exist %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt (::读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for /f %%k in (%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt) do if %%k lss %%j (echo.echo 开始备份版本库%%~ni……::取得该版本库本次备份的起始版本号set version=%%kset /a version=!version!+1::增量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi --revision !version!:head --incremental > %BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmpecho %%~ni: !version!-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!version!-%%j.dmp! )) else (echo.echo 开始备份版本库%%~ni……::全量备份版本库%SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp echo %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.logecho 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!)::将本次版本库备份时的最新版本信息写入文件保存echo %%j> %REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txtecho %%j> %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt )::删除临时文件del %%~ni_last_revision.tmp)echo.echo 开始备份用户权限信息……xcopy /y %REPOS_ROOT%\authz %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\authz-windows %REPOS_USER_INFO_DIRECTORY%xcopy /y %REPOS_ROOT%\htpasswd %REPOS_USER_INFO_DIRECTORY%echo.echo 用户权限信息备份成功!echo.echo 全部版本库备份成功!IncreBackupByFtpgoto end:Error1echo.echo 提示:echo 上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序; echo 或者,不基于上次备份重新执行备份!echo 重新备份?(Y/N)set /p input=if %input%==Y (mkdir %REPOS_LAST_REVERSION_DIRECTORY%goto Begin) else (goto End):Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN数据的增量备份的FTP上传,IncreBackupBy@echo offREM ======设置区Start================================setsetset .1.22setREM 指定从FTP下载下来的文件存放到本机哪个目录set 增量备份REM 本地需要备份的根目录set SvnBackupRoot=F:\[SvnBackup]\增量备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%\%date:~0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToREM RAR执行文件的路径set rarExePath="C:\Program Files\WinRAR\"REM RAR执行文件的路径set bakupLog\BackUp.logREM FTP命令执行文件缓存set \Temp>"%" (echo,open % %echo,%echo,%echo cd "%"echo prompt offecho binecho put %rarToecho put %bakupLogecho bye)set Path=%Path%;%rarExePath%set log\REM ======设置区End ================================echo ===================%date% 执行异地版本库增量备份开始.=================== >> %logif not exist %SvnBackupFolder% goto Error1echo %time:~0,8% 备份压缩开始... >> %logWinRAR.exe a -ep1 -k -r -s -ibck %rarTo %SvnBackupFolder%echo %time:~0,8% 备份压缩成功,压缩的文件路径为:%rarTo >> %logecho %time:~0,8% 备份压缩继续上传FTP开始... >> %log-i -s:"%"echo %time:~0,8% 上传FTP成功,上传FTP目录为:% >> %logdel /q /s /f %rarToecho. >> %loggoto end:Error1echo.echo %time:~0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! >> %logecho %time:~0,8% 备份失败! >> %logecho. >> %logecho 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.3SVN还原BAT设计SVN的还原LoadBackUp.bat@echo offecho 正在准备还原所有版本库……echo.::设置SVN命令目录set SVN_CMD="E:\VisualSVN Server\bin"::设置所有版本库根目录set REPOS_ROOT=D:\Repositories::设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:\[SvnBackup]\增量备份if not exist %REPOS_BACKUP_ROOT% goto Error::还原所有版本库echo ===================%date% %time:~0,8%:执行版本库执行还原操作=================== >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 还原的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\SvnLoad.log::将所有保存版本库备份的文件夹名写入tmpdir /b %REPOS_BACKUP_ROOT%\*.dmp > folderName.tmp::依次操作tmp文件中包含的文件夹for /f %%h in (folderName.tmp) do (::将所有版本库文件名写入tmpdir /b /a-d %REPOS_BACKUP_ROOT%\%%h\*.dmp >::依次操作tmp文件中包含的备份文件for /f %%i in () do (::处理备份文件名,以取得版本库名和相应的版本号for /f "tokens=1,2* delims=-" %%j in ("%%~ni") do (echo.echo 开始还原版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l……::版本库根目录不存在和版本库名相同名字的文件夹则创建一个if not exist %REPOS_ROOT%\%%j (mkdir %REPOS_ROOT%\%%j)::版本库根目录中该文件夹不是版本库,则创建一个if not exist %REPOS_ROOT%\%%j\conf\svnserve.conf (%SVN_CMD%\svnadmin create %REPOS_ROOT%\%%j)::还原备份%SVN_CMD%\svnadmin load %REPOS_ROOT%\%%j < %REPOS_BACKUP_ROOT%\%%h\%%i echo %%j: %%k-%%l >> %REPOS_BACKUP_ROOT%\SvnLoad.logecho 版本库%REPOS_BACKUP_ROOT%\%%h\%%j-%%k-%%l还原成功!)))::删除临时文件deldel folderName.tmpecho.echo 全部版本库还原成功!goto end:Errorecho.echo 版本库备份目录%REPOS_BACKUP_ROOT%不存在,请确认后重新运行程序! goto End:End。
用友数据自动批处理备份命令制作教程
巧用批命令实现局域网用友数据异地备份
一、目的:为了有效保存数据,在服务器硬盘故障的情况下,依然可以轻松获得已备份的数据。
二、假定:
1、服务器IP地址192.168.0.77
2、用友软件系统管理中的设置备份计划设置数据保存路经为D:\用友数据。
3、把服务器上的D盘用友数据备份到某台客户机上的D:\用友数据备份文件夹下。
三、具体操作:
1、用记事本写入: xcopy \\192.168.0.77\d$\用友数
据\*.* /s d:\用友数据备份 /y
2、保存后,改后缀为.bat的文件。
3、通过客户机自带的任务计划来设置自动运行此后缀为.bat
的文件。
补充:
“计划任务程序“窗口提示:
“已创建新任务,但可能不能运行,因为无法设置账户信息指定的错误是:
0x80070005:拒绝访问。
请试着使用“任务”的浏览按钮来定位应用程序“。
解决办法:
这有两种可能,一是系统中的“Task Scheduler”服务没有启动,可在运行中键入“services.msc”,查看“Task Scheduler”服务是否被设置成了“已禁用”,若是,只要双击它将启动类型改为“自动”,重新设定一个计划任务就可以执行了。
二是如果你当前账户设置了自动登录,而其登录密码又为空,也有可能导致任务计划不能按时执行,在XP专业版中,需要运行“gpedit.msc”来编辑组策略:展开“计算机配置→Windows 设置→安全设置→本地计算机策略→安全选项”;双击右侧的“账户:使用空白密码的本地账户只允许进行控制台登录”项,在弹出对话框中选择“已禁用”。
数据异地备份方案
数据异地备份方案1. 引言数据备份是保证数据安全和可恢复性的关键措施之一。
在企业和个人日常的数据管理过程中,由于各种原因,比如硬件故障、自然灾害、人为失误等,导致数据的丢失或损坏成为一个常见的问题。
为了保证数据的安全性,异地备份成为了一种重要的备份策略。
本文将介绍一种有效的数据异地备份方案,旨在让用户在数据丢失的情况下能及时恢复数据。
2. 方案概述数据异地备份是指将数据备份到与原始数据位于不同地理位置的存储介质上。
该方案的关键目标是实现数据的安全性、可靠性和可恢复性。
下面是该方案的一些基本原则和步骤:2.1 原则•多重备份: 备份数据需要在不同的位置存储多份副本,确保备份的可靠性和安全性。
•数据加密: 对备份的数据进行加密是重要的一步,以保护数据的隐私和安全性。
•定期备份: 为了保证备份的实效性,需要定期执行备份操作,确保备份数据是最新的。
2.2 步骤1.选择备份存储介质: 选择一种适合的备份存储介质,比如云存储服务、外部硬盘或网络存储设备等。
2.数据分析和划分: 对需要备份的数据进行分析,根据数据的重要性和敏感性进行合理的划分。
3.备份策略规划: 制定合理的备份策略,包括备份频率、备份时间、增量备份还是全量备份等。
4.数据加密和压缩: 对备份数据进行加密和压缩,以确保数据的安全性和存储效率。
5.备份操作执行: 执行备份操作,将数据备份到指定的存储介质上。
6.备份验证和监控: 验证备份数据的完整性和可恢复性,并监控备份过程中的异常情况。
7.定期检查和更新: 定期检查备份存储介质的状态,并根据需要进行更新和维护。
3. 备份存储介质选择数据备份的存储介质选择是关键的一步。
以下是几种常见的备份存储介质及其特点:•云存储服务: 云存储服务提供了高可靠性、高安全性的数据存储方案。
用户可以选择主流云服务提供商(如AWS、Azure、Google Cloud等)的备份服务,将数据备份到其云服务器上。
云存储服务具有数据冗余和备份的特性,能够有效保障数据的安全性和可靠性。
异地备份
低成本的异地数据备份解决方案当今的社会是一个信息化、数字化的社会,以往用传统方式保存的文档、图片、影音资料如今都被数字化,保存在电脑的硬盘上。
数字化使我们的保存资料一下子变得简单方便。
正是这样简单易行的方式,造成了每个人的电脑上都有大量的数据,而电脑使用者希望能对自己的关键数据进行备份。
传统的备份方式是在整个公司内布置一台备份服务器,再通过LAN将每个人的数据集中,然后备份。
但是由于用户众多,数据十分分散,往往造成数据没有被全部备份。
这样轻则是用户数据丢失,重则会给公司带来经济上的损失。
这样的问题在每一个公司中都可能出现。
对那些跨地区、跨城市甚至是跨国的企业来说,就更有挑战性。
如何集中不同地点的关键数据是企业面临的一个最大难题。
现在有些软硬件厂家提出了一些解决方案来解决这个难题,最早提出的就是SAN解决方案。
具体措施是在公司总部建立一套SAN,利用光纤和各个地方的分公司连接,将数据从分公司汇总到总部的数据中心,然后再执行备份工作。
这种方式是性能最高的一种方式,数据通过光纤经由交换机直接到达存储设备。
但是,要达到如此高的性能需要大量的投资,这是一般中小企业不能承受的,而且建立一套SAN 除了需要大量的资金,还需要重新培训系统管理人员。
学习管理SAN是一个复杂的过程,对管理员的要求也更高。
另外,还有一种流行的方案是利用NAS设备。
在总部安装一台NAS,分公司也安装一台NAS,各公司通过网络连接,利用NAS上的镜像功能,将数据迅速从本地复制到异地。
利用TCP/IP传输数据是一种很成熟、廉价的方式。
每个企业都有自己的网络,不需要在网络架设上面再做投资,而且管理员对设备的管理知识的学习不需要很长的时间。
但是,NAS 设备的数据管理性不够强,扩充性也不尽人意,而且传输的效率也不是很高。
如何在性能和价格之间寻求一个平衡点,是现代企业面对的问题。
新基科技的Z-BOX 和SAN-Genie正是针对用户的此种需求设计的。
在局域网内通过批处理备份
数据库在局域网内备份
在局域网通过批处理和任务计划自动备份到另一台服务器
101.138.3.167为软件服务器A;
101.138.4.167为备份服务器B;
在B服务器E盘下建立名为:”copybak”的文件夹,并设置为共享;
在A服务器运行里输入:\\101.138.4.167,打开B服务器的网络位置,找到共享文件夹,右键点击共享文件夹,映射网络驱动器X;
要求:要从服务器A的D:\bak文件夹拷贝到服务器B的X:\copybak ;
在A的D盘下建立copy.bat文件,用记事本打开,内容为:
echo off
rd X:\copybak\ /s /q
md X:\copybak
xcopy D:\bak\*.* X:\copybak\ /e
意思是删除copybak所有文件,包括copybak文件夹,然后创建copybak。
然后复制bak文件夹所有文件,包含空文件夹到copybak中。
然后建立任务计划
Win2003在开始-附件-系统工具-任务计划-添加任务计划,注意要勾选上“仅在登陆后运行”;
Win2008R2在管理工具-任务计划程序,
创建任务,设置好触发器(时间)和操作(事件)即可;
创建后一定要记得测试,以及在计算机未登录时也测试一下,防止计划不运行。
服务器数据异地备份-bat脚本-定时备份-计划任务
1.生产环境的数据每天备份,然后异地备份到测试环境1)创建测试环境存储数据的文件件,以ftpfile为例,共享该文件夹;2)在生产环境映射到该文件夹\\测试ip\ftpfile,创建好会出现相应的盘符Z;3)创建一个备份和拷贝的bat文件,放到c盘备份exp hsta/hsta@orcl file=D:\backup\hsta_backup_%date:~0,4%%date:~5,2%%date: ~8,2%.dmp full=y拷贝xcopy d:\backup\*.* z:\/s/h/d/y (把d盘backup下的文件,拷贝到Z盘,这个拷贝是增量的。
可以d:\backup\*.dmp,只拷贝dmp文件)4)创建每天的计划任务,按下图顺序,然后确定。
2.生产环境的数据每天备份,然后异地备份到测试环境,并且把数据恢复到测试环境1)计划任务同上,在测试环境做,bat文件是把估值生产环境的数据先备份到测试,然后删除测试用户和表空间,然后创建测试表空间和用户,再导入从生产导出的数据的过程@Echo offSET FA=FASET FA_CS=FA_CSSET USER=hsfaSET USER_CS=sysSET PWD=hsfa_0601SET PWD_CS=oracleSET SID=hsfaSET SID_CS=hsfapdb_csSET EXPDATE=%date:~0,10%SET BAK=%FA%_%EXPDATE%.dmpSET LOG=%FA%_%EXPDATE%.logSET LOG_CS=%FA_CS%_%EXPDATE%.logSET DATAPATH=D:\gzzjqs\backupexp %USER%/%PWD%@%SID% FILE="%DATAPATH%\%BAK%" log="%DATAPAT H%\%LOG%" RECORDLENGTH=65535 DIRECT=Ysqlplus %USER_CS%/%PWD_CS%@%SID_CS% as sysdba @D:\gzzjqs\FA_BAK\reco ver.sqlimp %USER%/%PWD%@%SID_CS% FILE="%DATAPATH%\%BAK%" log="%DATA PATH%\%LOG_CS%" fromuser=hsfa touser=hsfa【recover.sql是:drop user hsfa cascade;Create user hsfa Identified by hsfa_0601Default tablespace tbs_hsfaTemporary tablespace temp;Grant connect,resource to hsfa;Grant create table,create view to hsfa;Grant debug connect session to hsfa;Grant dba to hsfa;revoke unlimited tablespace from hsfa;alter user hsfa quota unlimited on tbs_hsfa;exit;】3.扩展====================================================== ===========================forfiles /p E:\backup /m *.dmp /d -5 /c "cmd /c echo deleting @file ... && del /f @ path"-------删除E盘backup文件夹下5天前的dmp文件====================================================== ===========================xcopy E:\backup\*.dmp z:\/s/h/d/y-------------拷贝====================================================== ===========================删除在C盘backup目录下最后修改日期在10天前的文件====================================================== ===========================forfiles /p "c:\backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"====================================================== ===========================复制当前日期的文件echo %date%set nian=%date:~0,4%set yue=%date:~5,2%set ri=%date:~8,2%xcopy c:\1\*.* d:\2\/s/e/d:%yue%-%ri%-%nian%/y。
Sql server 数据库简单异地备份
Sql server 数据库简单异地备份Sql Server 数据是目前广泛使用的数据库,而其自带的备份功能,通常只能备份在本机磁盘,这对于想异地备份的用户来讲不免是个小遗憾。
对此介绍使用DOS批处理命令(注意扩展名使用 .cmd )进行异地备份的简单方法。
以下介绍了二种方法,将sql server 定时备份的数据库文件通过共享磁盘再次备份到另一台电脑或同一台电脑的另个文件夹中(从安全来讲,最好是另一块硬盘)。
可将以下命令写入批处理文件中,然后通过系统的任务计划来定时调用执行,以实现文件的异地备份。
方法说明通常先通过SQL Server 的备份功能将数据库文件备份到某个文件夹中中,并根据需要保存多次备份文件。
异地备份操作说明:1、将path1(Sql Server 数据库备份文件夹) 文件夹中有而path2 文件中没有的文件备份到文件夹path2中。
2、将path2 文件夹中有而Path1 文件夹中没有的文件删除。
3、运行时将该批处理文件存放在Path1 文件夹中并通过Windows任务计划运行。
4、文件名中不要有空格。
方法1,会生产临时文件,备份*.bak文件@echo offRem 以下path1 为原文件夹,通常为SQL SERVER自动备份数据库存放的文件夹Rem path2 为异地备份目标文件夹,可以是一个网络共享文件夹set path1=e:\02set path2=e:\03dir /b %path1%\*.bak >f1.txtdir /b %path2%\*.bak >f2.txtfor /f %%i in ('findstr /i . f1.txt 2^>nul') do if not exist %path2%\%%i (copy ".\%%i" "%path2%")for /f %%i in ('findstr /i . f2.txt 2^>nul') do if not exist ".\%%i" (del "%path2%\%%i") pause方法2,不产生过程文件,备份*.bak 文件,批处理文件可放在任何文件夹中但path1、path2 要存在并有读写权。
利用批处理实现数据库的自动异地备份
@e c h o o f
d a= % D a t e : 0 , 4% 一 % Da t e : ’5 ,2 % 一 %
Da t e: 一8. 2% %
R E M建立一个文本文件 a . t x t , 写入 l z r P 命令
删除 , 最好 由管 理员定 期在 月末 或者 年末 手工操 作 , 这样 才更 安全 、 更灵 活 、 更有 保 障 。
参考文献 :
置每天 2 3 : 5 O 调用执行。具体操作过程与前文添加
自动 执行 压缩 文件 的做 法一 致 。
方法 二 : F T P传 送 方式。在服 务 器 B上安 装 S e r v — U , 并创建 账户 u s e r — d b , 密码 为 p w d , 具有 E
O. 2\ a d mi n i s t r a t o r
( 3 ) 将B A T 文件添加至 W I N OW D S 任务计划 , 设 置每天 2 3 : 5 0 调用执行。具体操作过程与前文添加 自 动执行压缩文件的做法一致。
R E M 将源 盘文 件拷 贝到 目的服务 器
x c o p y%s 叫I c e % %d e s t % / v/ y/ z
e c h o p r o mp t > > a. t x t
d = % Da t e : 一0 ,4% 一 % D a t e : ’ 5,2 % 一 %
Da t e: 一8, 2% %
e c h o p u t E:\D B—B K \l y j w %如 % . r a r>>
盘操作 权 限 。然 后 在 服 务 器 A 上 写 批 处 理 命 令 传
异地备份解决方案
异地备份解决方案引言在当今数字化时代,数据的重要性变得越来越突出。
对于企业和个人来说,数据的安全性和可靠性非常关键。
然而,突发事件如火灾、地震、洪水等可能对数据中心造成严重的破坏,导致数据丢失或无法访问的风险。
为了解决这个问题,异地备份成为了一种常见的解决方案。
什么是异地备份?异地备份是指将数据备份复制到一个离主数据中心相距较远的地方存储。
通常,备份数据存储在地理位置距离主数据中心数百或数千公里的备份服务器上。
这样,当主数据中心发生灾难性事件导致数据无法恢复时,可以从备份服务器上恢复数据,从而降低数据丢失的风险。
异地备份解决方案的目标异地备份解决方案的主要目标是确保数据的持久性、安全性和可恢复性。
以下是一个完善的异地备份解决方案应该具备的目标:1.数据持久性:备份数据应该能够长期保存,并且不受地理位置的限制。
2.数据安全性:备份数据应该能够受到强大的加密和访问控制机制的保护,以防止未经授权的访问。
3.数据可恢复性:备份数据应该能够在主数据中心发生灾难性事件后快速恢复,以确保业务的连续性和可用性。
异地备份解决方案的组成部分一个完善的异地备份解决方案通常由以下几个关键组成部分组成:1.主数据中心:主数据中心是数据的源头,负责数据的生成、存储和处理。
它通常位于企业或个人的办公场所。
2.异地备份服务器:异地备份服务器是备份数据的目标,通常位于主数据中心相距较远的地方。
它负责接收、存储和保护备份数据。
3.数据传输通道:数据传输通道用于将主数据中心的数据传输到异地备份服务器。
这通常基于网络传输,可以使用传统的互联网、局域网、广域网或专用线路等方式。
4.数据加密和压缩:为了保护备份数据的安全性和降低数据传输的成本,通常需要对备份数据进行加密和压缩处理。
加密可以确保数据在传输过程中不会被篡改或窃取,而压缩可以减少数据传输时间和带宽占用。
5.数据恢复机制:当主数据中心发生灾难性事件导致数据无法恢复时,需要通过数据恢复机制从异地备份服务器上恢复数据。
windows计划任务如何设置自动备份,计划任务设置异地备份方法
windows计划任务如何设置自动异地备份?对于重要数据,我们除了本地备份之外,一般还会设置异地备份,进一步提高容灾能力,那么具体如何实现呢?1、新建一个文本文档,输入:net use \\net_host_ip_address\ipc$ password/user:usernamexcopy /e /H "C:\backup" "\\10.144.129.17\share_dir\"其中:net_host_ip_address:提供共享目录的主机的ip地址(或者主机名)password:能够访问共享目录的用户名username:访问共享目录的用户名根据实际情况修改为自己的参数。
2、其中C:\backup是需要备份的文件夹,\\10.144.129.17\share_dir\是远程服务器的共享文件夹地址,这里是用来作为备份存储的路径,设置完成后保存。
3、在该文本文档上方点击右键,在弹出的菜单中选中重命名,把后缀修改为bat,在任意空白处点击一下,在弹出的窗口中点击确定。
4、依次点击开始—windows管理工具—任务计划程序。
5、点击创建任务,根据提示输入新任务的名称和描述。
6、依次点击触发器—新建,设置该计划的执行时间以及执行频率,设置完成后点击确定。
7、依次点击操作—新建,在操作中选中启动程序,在下方点击浏览,选中刚刚新建的脚本,然后依次点击确定返回即可。
8、另外我们还可以通过一些专业的备份软件来设置备份,下面小编以大势至服务器备份软件为例进行介绍。
百度下载该系统,安装后返回电脑桌面找到快捷方式,双击打开,根据提示输入帐号和密码,点击确定进入。
9、点击新增计划,在源备份路径后点击浏览,选中需要备份的文件夹,点击确定。
10、在备份目标路径中输入远程服务器共享文件夹路径,点击添加,根据提示输入帐号和密码,点击确定。
11、点击备份开始时间,设置备份开始的日期和时间。
批处理的备份的命令
net use \\192.168.0.1 /delete
另存为“备份.cmd”或者“备份.bat”。
mlh为用户名,123为密码。(mlh用户应具有192.168.0.1\update\backup可写入权限)
双击“备份.cmd”测试备份成功
3、打开192.168.0.2打开控制面板-任务计划-添加任务计划,添加E:\ 备份.cmd,执行为每天21:00,在添加本机的用户名和密码,把“备份.cmd”添加到任务计划OK
用批处理实现异地数据备份
我们平时在服务器上会用备份软件或者数据库维护计划来备份我们的数据库,在重装系统或者数据库损坏时用来恢复。但是当遇到硬盘崩溃、自然灾害等一些不可抗力的破坏时,我们怎么办?今天就来教大家用批处理为192.168.0.2,备份到电脑192.168.0.1。在192.168.0.1设一个共享文件夹update\backup ,权限要可以写入;
2、192.168.0.2电脑的备份文件夹是E:\backup,已写入备份文件(数据库可用维护计划写入),在E盘新建记事本,写批处理文件
@echo off
net use \\192.168.0.1 "123" /user:"mlh"
xcopy E:\backup \\192.168.0.1\update\backup /e /h /i /y
第二天来检查192.168.0.1\update\backup文件夹,就可以看到192.168.0.2 E:\backup下的文件了。
至此,异地备份成功。
cmd批处理命令异地备份文件数据
cmd命令异地备份文件数据
在日常运维过程中,经常需要将多个文件夹目录下的文件进行备份操作,此时可以创建cmd批处理命令的方式进行自动备份,步骤如下:
在备份数据源主机Windows系统中创建文件backup.bat(注意:文件的后缀是.bat)
一、将以下命令拷贝到backup.bat文件中并且加入到任务中:
::关闭显示
@echo off
::获取当前日期时间
set datetimevalue=%date:~0,4%%date:~5,2%%date:~8,2%%Time:~0,2%%Time:~3,2% ::源
set source=D:\SourceFolder\*
echo %source%
::目标
set target=D:\TargetFolder\%datetimevalue%\
::如果存储地址是异地备份可以设置如下(注意:异地设备必须开启文件目录的共享并且有写入权限):
::set target=\\192.168.1.11\TargetFolder\%datetimevalue%\
echo %target%
::创建目标文件夹目录
mkdir %target%
xcopy %source% %target% /s /e /y
::暂停
pause
::退出
Exit
二、加入计划任务程序中定期执行
1、创建基本任务
2、填写定时任务的名字
3、选择触发的时间,默认每天运行:
4、
5、单击“下一步”
6、程序填写cmd.exe,因为bat文件要通过cmd运行,参数中除了添加bat文件所在的绝对路径外,要写上/c这个参数
7、单击“下一步”,定时任务的创建完成。
异地备份方案
3.符合国家相关法律法规要求,确保数据安全合规。
三、方案设计
1.备份策略
(1)全量备份:定期对关键数据进行全量备份,确保备份数据的完整性。
(2)增量备份:在两次全量备份之间,对发生变更的数据进行增量备份,减少备份所需的时间和存储空间。
(3)差异备份:在两次全量备份之间,对发生变更的数据进行差异备份,降低备份复杂度。
异地备份方案
第1篇
异地备份方案
一、背景
随着信息化建设的不断深入,各类业务系统产生的数据量呈爆炸式增长,数据的安全性、可靠性成为企业关注的焦点。为了确保关键数据的安全,降低因自然灾害、人为破坏等因素导致的数据丢失风险,制定一套合法合规的异地备份方案势在必行。
二、目标
1.确保关键数据在异地得到有效备份,降低数据丢失风险。
2.部署备份存储介质、备份传输设备及备份软件。
3.配置备份任务,实现自动化备份。
4.监控备份过程,确保备份任务按计划执行。
5.定期进行备份恢复测试,验证备份数据的完整性和可用性。
6.不断优化备份策略,根据业务发展调整备份方案。
六、异地备份中心建设
1.选址:选择地理位置偏远、自然灾害较少的地区作为备份中心。
2.按照实施方案,分阶段、分步骤推进备份工作。
3.对备份过程中出现的问题进行及时调整和优化,确保备份方案的有效性。
五、总结
本异地备份方案旨在确保关键数据的安全,降低数据丢失风险。通过制定合理的备份策略、备份频率、备份存储介质和备份传输等措施,实现数据的有效备份。同时,定期进行备份恢复测试,确保备份数据的完整性和可用性。本方案符合国家相关法律法规要求,为企业的数据安全提供有力保障。
异地备份
异地备份将数据在另外的地方实时产生一份可用的副本,此副本的使用不需要做数据恢复,可以将副本立即投入使用。
这就是异地备份。
异地备份的数据复制目前有如下实现方式:基于主机。
基于主机的数据复制技术,可以不考虑存储系统的同构问题,只要保持主机是相同的操作系统即可,而目前也存在支持异构主机之间的数据复制软件,如BakBone NetVault Replicator就可以支持异构服务器之间的数据复制,可以支持跨越广域网的远程实时复制。
缺点是需要占用一点主机资源。
基于存储系统。
利用存储系统提供的数据复制软件,复制的数据流通过存储系统之间传递,和主机无关。
这种方式的优势是数据复制不占用主机资源,不足之处是需要灾备中心的存储系统和生产中心的存储系统有严格的兼容性要求,一般需要来自同一个厂家的存储系统,这样对用户的灾备中心的存储系统的选型带来了限制。
基于光纤交换机。
这项技术正在发展中,利用光纤交换机的新功能,或者利用管理软件控制光纤交换机,对存储系统进行虚拟化,然后管理软件对管理的虚拟存储池进行卷管理、卷复制、卷镜像等技术,来实现数据的远程复制。
比较典型的有Storag-age,Falcon等。
基于应用的数据复制。
这项技术有一定局限性,都是针对具体的应用。
主要利用数据库自身提供的复制模块来完成,比如OracleDataGuard,Sybase Replication 等。
灾难备份解决方案的分析及选择在推行计算机应用的过程中,银行已深深体会到系统可用性对银行业务的重要性。
在保证到本地机房的高可用性之外,他们还认识到:对于意外引起的包括自然灾害、设备损毁等灾难性事件,仍然需要有相应的保护措施,以保障业务系统的连续运行,从而获得良好的企业形象,保证社会的正常金融秩序。
事实上,对灾难进行预防建设是危机管理的一部分。
据一项美国的研究报告显示,在灾害之后,如果无法在14 天内恢复资讯作业,有75%的公司业务会完全停顿,43%再也无法重新开业,因而有20%的企业在两年之内被迫宣告破产。
文件异地自动备份的方法
.
.
t s e Im( hm & ” p ssl =T e是 否使 用 S L e c a s ues) r ’ mt ” e S t s e Im( hm & ” p onci t o t =6 连 接服 务器 的 e c a s cnet ni u” mt o me ) 0’
.
I m( hm t s e a& ”eds g) e c s ui ”=2’ 用 网络上 的 S P服 务器 n n 使 MT
1 5 ‘— 3 - 。 _ —
t .l s xt o e c
U dt’ 新设 置 pa 更 e
EndW i h t
C O. n 发 送 邮件 D S d’ e ( 这 个 脚 本 摘 自 网 上 博 客 :
h t : f l n . lg 5 co c m/ 4 0 0 3 7 t # l p i wa gb o . 1 t . o 2 7 0  ̄3 7 ) 1
( 接第 1 1 ) 上 3页
三 、利用 “ 任务 计划 ”程 序 自动 发送 E al m i 日志
而不 是本 地 的 S P服务 器 MT
.
I r hma ” pevr =” p16 o ’ P服 务器 t ns e & s sre” s . . m”S e (c mt ) mt 2 t MT
二 极管 焊反 电阻焊 错位 电容焊 错位
1 4
6 虚 焊 1 5 2% 1 整 个班 级 实训 结束 时 ,其一 次成 功率 达 到 5 人/1 ,占总 2 7人 人数 的 7 %,虽然 虚 焊的情 况 还在 所难 免 ,但 虚焊 的焊 点数 日大 3 幅下 降 ,通过 自主补 焊或 在老 师 指 点下局 部 焊 点补焊 ,较 快 地完
用批处理文件自动备份文件及文件夹,并自动删除n天前的文件
⽤批处理⽂件⾃动备份⽂件及⽂件夹,并⾃动删除n天前的⽂件下是备份的批处理,添加到"计划任务"中,设定时间⾃动运⾏复制代码代码如下:@echo offrem 格式化⽇期rem date出来的⽇期是"2006-02-22 星期三",不能直接拿来使⽤,所以应该先格式化⼀下rem 变成我们想要的。
date:~0,4的意思是从0开始截取4个字符set d=%date:~0,4%%date:~5,2%%date:~8,2%rem 设定压缩程序路径,这⾥⽤的是WINRAR的rar.exe进⾏打包的set path=C:\Program Files\WinRARrem 设定要备份的⽬录set srcDir=D:\databascrem 设定备份⽂件所在⽬录set dstDir=E:\temp\backuprem 设定备份⽂件的前缀,⽬前为temp,前缀为backupset webPrefix=rem 如果⽂件不存在,开始备份if not exist %dstDir%%webPrefix%%d%.rar start Rar a -r %dstDir%%webPrefix%%d%.rar %srcDir%@echo on以下是删除N天前备份⽂件的批处理,注:在windows2003下,如XP下因为没有forfiles.exe,未测试拷贝2003的⽂件到XP的system32⽬录删除在C盘backup⽬录下最后修改⽇期在10天前的⽂件=================================================================================forfiles /p "c:\backup" /d -10 /c "cmd /c echo deleting @file ... && del /f @path"=================================================================================以下是复制某天前⽂件到其它位置的批处理要把在C盘根⽬录下最后修改⽇期⼤于或等于2007年7⽉1⽇的⽂件复制到D盘根⽬录下=================================================================================forfiles /p "c:\" /d "2007-7-1" /c "cmd /c copy @path d:\"Windows Server 2003内置的命令⾏⽂件,适合于XP以上系统⽰例:forfiles /m *.bkf /d -28 /c "cmd /c del @file /f"删除当前⽬录下28天以前的扩展名为bkf⽂件(以当前系统时间为基准)forfiles ⾃动删除7天前⽂件 delete2008-09-12 15:01⽤forfiles.exe试试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思路:
1、首先,本地文件备份,压缩成rar。
需要安装压缩工具,本人使用winrar,安装路径为C:\Program Files\WinRAR\winrar.exe
2、异地备份,通过FTP实现
3、存贮空间有限,任务计划删除
------------------------------------------------我是淫贱的分割线--------------------------------------
容-灾-容-灾,所以要做备份,本次需要将文件夹“xiemen”所有文件及目录全部备份
1、在D盘建立一个备份用的文件夹命名为xiemen_back,建立一个txt文档保持成rar_bak.bat,放在
d:\rar_bak.bat,把下面命令复制粘贴进去:
echo off
echo 压缩文件进行备份中...
C:\"Program Files"\WinRAR\winrar.exe a D:\xiemen_bak\xiemen.rar D:\xiemen
echo 压缩完成
echo
上面的意思是使用C盘下XXX压缩工具,将“xiemen”文件夹备份成xiemen.rar放到D:\xiemen_bak\目录,"Program Files"用引号因为bat命令里文件名有空格需要引号引起来
添加到任务计划,文件比较大,选个人少的时间,半夜3点执行d:\rar_bak.bat,即每天凌晨3点进行压缩
2、建立一个用做备份的FTP帐户,目录指到D:\xiemen_bak,权限只读就OK了。
3、在另外一台机,新建txt文档保存为ftp_bak.bat,把下面命令复制粘贴进去:
ftp -n -s:1.txt
4、建立一个文档保存为1.txt,把下面复制粘贴进去:
User backup
1234
cd database
mget *
y
y
y
y
y
y
y
Bye
Quit
Exit
上面3、4意思用FTP打开,User后面是备份FTP的帐户,1234是密码,mget *将目录下的所有文件下载(注意命令不能打开子目录,所以只是文件不是下载文件夹),是否覆盖所以很多y=yes
添加到计划任务,大文件备份一般不需要很频繁,所以添加到任务计划,每周日23:40分进行
5、备份文件起码要保存14天吧,那是留最后的2个文件,把之前的删除,又建立一个BAT文档,复制粘贴:
@echo off&setlocal EnableDelayedExpansion
::取2天之前的日期.set _tian=13下面这句中的13代表天数.
set "_tian=13"
>tmptmp.vbs echo wscript.echo dateadd("d",-%_tian%,date)
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo tmptmp.vbs') do (
set "y=%%i"&set "m=%%j"&set "d=%%k"
)
if %m% LSS 10 set "m=0%m%"
if %d% LSS 10 set "d=0%d%"
set "rq=%y%-%m%-%d%"
echo.&echo 注意:即将删除%rq% 以前建立的文件
::判断文件
for /f "delims=" %%a in ('dir/b/a-d e:\xiemen_bak\*.rar') do (
set "a=0"
for /f "skip=4 delims=" %%b in ('dir/tc "e:\xiemen_bak\%%a"') do ( set /a "a+=1"
if !a! equ 1 (
set "var=%%b"
for /f "tokens=1 delims= " %%c in ("!var!") do set "str=%%c"
if !str! lss !rq! del /q "e:\xiemen_bak\%%a"
)))
del/q temtem.vbs
pause
意思删除e:\xiemen_bak文件夹下的13天前的rar文件.。