zoukankan      html  css  js  c++  java
  • 关于SQL异地备份的方法

     
               最近公司对服务器依赖越来越严重了,机房两台服务器,一台挂了一套餐饮系统、进销存系统,另一台挂了一套OA系统(老总的心血!),考虑到最近社会不太和谐,小偷泛滥,遂特别担心服务器上的数据安全,虽然做了本地备份,但在可恶的小偷面前~~~所以得赶紧做一下NetworkBacup比较妥当安全!

    想了一个方案和网上的几个方案参考一下:

    方案一:SQL自带的数据库备份计划


    一:基本思路
    1:要实现异地备份,必须使用域用户帐号来启动SQL Server服务以及SQL Server Agent服务,因为本地系统帐户无法访问网络。
    2:在异地机器中建立一个与SQL Server服务器中启动SQL Server服务的域用户帐号同名帐号,且密码保持相同。在异地机器中建立一个共享文件夹,并设置合适权限。
    注意:新建帐号针对的是工作组模式,如果是基于域模式,那就无须再建帐号
       3:在SQL Server服务器中建立异地备份的维护计划,在“完全备份”和“事务日志备份”中,使用输入异地共享文件夹的UNC路径。
    4:配置好维护计划中其它设置。
     
      上面表述可能不太直观,下面以实际实验来演示如何做异地备份。实验网络模型很简单,如下图:    
                 
    二:异地备份的演示
    1:在SQL Server服务器中以域用户帐户启动SQL Server服务以及SQL Server Agent服务。
    本实验中直接使用administrator帐户,可以根据实际环境切换其它域用户帐户。
                 
     
        2:在文件备份服务器中建立一个共享文件夹,共享权限中删除everyone用户,加入administrator用户,权限设置如下图。
               
     
        3:在SQL Server服务器中,打开企业管理器,新建数据库维护计划:
     
                 
     
      4:在维护计划向导中,选择计划备份的数据库,设置好数据库优化信息和检查完整性等步骤。
    5:在向导的“指定数据库备份计划”设置好调度计划。
    6:在“指定备份磁盘目录”界面,手动输入文件备份服务器共享文件夹UNC路径。
                          
     
             7:在“事务日志备份计划”界面,根据实际环境决定如何备份。
    8:按向导设置好其它步骤,完成异地备份维护计划。
     
    三:测试异地备份是否成功。
    1:检查共享文件夹中备份文件是否存在。
                       
     
    2:如果没有备份成功,请查看SQL Server日志,并检查权限设置以及用户名和密码是否完全一致,或者重新启动两台电脑!


    方案二:采用文件同步软件、FTP等同步源服务器的数据库备份文件至备份机

    方案三:采用SQL定时作业

    举例:
    --建立与YNiang的连接,其中garfield是登录YNiang的密码
    Exec master..xp_cmdshell 'net use \\YNiang\Backupgarfield /User:yy_domain\Administrator'

    --备份数据库miao,YNiang的共享目录backup要完全共享控制
    Backup Database [miao] to Disk = '\\YNiang\Backup\miao.bak'

    --断开YNiang的连接

    Exec master..xp_cmdshell 'net use \\YNiang\Backup /delete'


    方案三:


    1:在目标机器上建共享文件夹:remotebak,并使某用户(如管理员)有写权限,示例administrator,123456。

    2:在源机器用命令方式建驱动器映射:

       xp_cmdshell 'net use z: \\目标机器IP\remotebak "123456" /user:目标机器IP\administrator'

    3:每天自动备份(把以下代码放在JOB里,设定每天定时执行)

       declare @shotname varchar(50),@newtime varchar(50),@sql varchar(8000set @newtime=convert(varchar(50),getdate(),120)
    set @oldtime = convert(varchar(50),dateadd(dd,-10,getdate()),120)

    select @shotname='sharewin'+left(@newtime,4)+substring(@newtime,6,2)+substring(@newtime,9,2)
    set @sql = 'backup database sharewin to disk = '+'''z:\'+@shotname +'.bak'''

    exec(@sql)
    4:备份完成后删除映射:

     xp_cmdshell 'net use z: /delete'

    转载连接:http://hi.baidu.com/%CB%AE%B0%B6%D4%C2%B9%E2/blog/item/8c036651c646f7561038c299.html

           http://alligator.blog.51cto.com/36993/112844

    --------------------------------------------------

    以上方案本人测试过,都可行,

    我采用了两种异地备份方法,1)本地局域网内共享文件夹备份(局域网内异地备份),2)方案二的 异地ftp服务器备份(互联网异地备份)

    ----------------------------------------------

  • 相关阅读:
    【BZOJ 4581】【Usaco2016 Open】Field Reduction
    【BZOJ 4582】【Usaco2016 Open】Diamond Collector
    【BZOJ 4580】【Usaco2016 Open】248
    【BZOJ 3754】Tree之最小方差树
    【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
    【51Nod 1622】【算法马拉松 19C】集合对
    【51Nod 1616】【算法马拉松 19B】最小集合
    【51Nod 1674】【算法马拉松 19A】区间的价值 V2
    【BZOJ 2541】【Vijos 1366】【CTSC 2000】冰原探险
    【BZOJ 1065】【Vijos 1826】【NOI 2008】奥运物流
  • 原文地址:https://www.cnblogs.com/liubaolongcool/p/2565494.html
Copyright © 2011-2022 走看看