情况如下:
1.有一台数据库服务器A,安装了sql server。此服务器仅有一块硬盘。
2.另一台服务器B,未安装sql server。
问题是:
考虑到安全问题,数据库服务器仅有一块硬盘,万一硬盘发生问题,所有资料全没。目标是能够进行数据的备份,是否能将数据库服务器A中的数据定期(每天)备份到服务器B的硬盘当中。在需要的时候再从B恢复到A中。
是否能够做到?如何做到?需要再购买一套sql server吗?价格多少?

解决方案 »

  1.   

    是否能够做到?如何做到?需要再购买一套sql server吗?价格多少?
    -------------------------------------------------------------------------------------------------------------------
    可以做到,添加网络备份设备,通过存储过程实现备份操作并交由作业(JOB)调度,不需要另外购买SQL Server。
      

  2.   

    你说的是什么设备,多少钱,不是比sql server还贵吧。
      

  3.   

    --SQL SERVER 可以跨服务器备份的。
    --只要做好网络映射即可!
    --备份数据库方法很多--有完全备份、差异备份、日志备份、文件组的备份--不同的备份方式可以恢复到不同的时间点数据。看你对备份的需求有多严格。--以下为完全备份方式.-- ====================================================
    -- 备份某个实例上的所有数据库
    -- ====================================================
    DECLARE @BkPath nvarchar(256), @sql nvarchar(4000)
    -- 设置备份目录
    SET @BkPath=N'E:\'
    +CAST(SERVERPROPERTY(N'ServerName') as sysname)
    +N'\'SET @sql=N'md '+QUOTENAME(@BkPath, N'"')
    EXEC master.dbo.xp_cmdshell @sqlSET @sql=N'
    IF N''?'' = N''tempdb''
    RETURN
    RAISERROR(N''Backup Database: ?'',10,1) WITH NOWAIT
    BACKUP DATABASE [?] TO DISK=N'
    +QUOTENAME(@BkPath+N'?.bak',N'''')
    +N' WITH FORMAT, STATS=10'
    EXEC sp_msforeachdb @sql
      

  4.   

    如果是实现简单的数据备份的话,就不用新买SQL SERVER了.
    1.在B服务器建共享目录如Backup.给这个目录everyone读写的权限.2.让A服务器的启动帐户为Administrator(不能用本地系统帐户)3.建立一个Job.每天运行如下备份代码:
    declare @filepath varchar(8000)
    declare @strsql varchar(8000)
    set @filepath='\\服务器B\backup\basic_full_'+convert(char(10),getdate(),120)+'.bak'
    set @strsql='backup database basic to disk='''+@filepath+''''
    exec(@strsql)--这样每天会生成一个basic_full_日期.bak的备份文件.
      

  5.   

    netcoder(朱二) 
    SQL Server实现远程自动备份远程备份的关键是权限,既
    实际例子:
    环境:
        机器A: Windows 2000+SQL Server 2000 (IP地址为:192.168.0.3)
        机器B: Windows 2000 (IP地址为:192.168.0.4)
    要求:
        每天8:00,将SQL Server上的数据库northwind备份到机器B上准备工作:
        在机器B上建立共享文件夹back,注意赋予EveryOne组改写的权限
    步骤:
         为了交流的方便,我写了一个尽量简单的备份存储过程,读者可以按需要完善
    declare @url varchar(256),@user varchar(256), @password varchar(256)
    set @url='\\192.168.0.162\back'
    set @user='ee'
    set @password='121314'declare @str varchar(8000) 
    set @str='master..xp_cmdshell ''net use '+@url+' '+@password + ' /user:'+@user+''''
    print @str
    --使用net use 建立与远程机器的连接
    exec('master..xp_cmdshell ''net use '+@url+' '+@password + ' /user:'+@user+'''')
      

  6.   

    zlp321002
    能否简单一点,比如一个sql server自带的工具就可以实现?
    本人对sql server的知识还非常浅薄。
      

  7.   

    mschen
    1.网络并不能保证安全,所以共享可能会产生安全问题
    2.数据库内容每天增加量比较大,如果每天生成一个全部数据库的映像,没几天就会把硬盘装满。
      

  8.   

    1.在B服务器建共享目录如Backup.给这个目录everyone读写的权限.2.让A服务器的启动帐户为Administrator(不能用本地系统帐户)3.建立一个Job.每天运行如下备份代码:
    declare @filepath varchar(8000)
    declare @strsql varchar(8000)
    set @filepath='\\服务器B\backup\basic_full_'+convert(char(10),getdate(),120)+'.bak'
    set @strsql='backup database basic to disk='''+@filepath+''''
    exec(@strsql)--这样每天会生成一个basic_full_日期.bak的备份文件
    这个真是太好了,简直是救了我。
    我栽就栽在使用了系统账户来启动。
    谢谢发光的星星!